跳至内容
0%

关于 Alchemy 的 Optimism NFT API,你需要了解的一切

作者 Mrig

发布于 2022年10月20日3 分钟阅读

NFT 系列在 Optimism 上持续增长,越来越多的开发者在该网络上构建新的 NFT 应用。这些开发者需要 NFT API 来查询网络并获取 NFT 元数据,以满足用户的数据请求。如果没有合适的 NFT API,索引和查询 NFT 元数据对个人开发者来说会是一个耗费时间和资源的过程。

了解如何使用 Alchemy 的 Optimism NFT API 开始构建 NFT 工具、市场、应用等。

Optimism 的 NFT 生态系统

Optimism 是一个 L2(第二层)Ethereum 扩容方案,运行在 optimistic rollup 基础设施 上。Optimistic rollup 通过在链下执行交易来减轻 Ethereum 的负担,从而提供更高的交易吞吐量和更低的 gas 费用。Optimistic rollup 将多笔交易打包成一笔交易,发送回 Ethereum 进行验证,从而提升网络的可扩展性。

Optimism 内置的可扩展性使其成为开发 NFT 项目的理想方案。凭借 Optimism 的高速交易和低廉费用,用户在玩 NFT 游戏 或交易收藏品时能获得更好的体验。

根据 Optimism NFTScan 网站的数据,Optimism 上有超过 100 万个 NFT 资产,分布在 238K 个 NFT 钱包中,开发者需要合适的工具集来构建 NFT 协议并处理大量的 NFT 交互。Alchemy 的 Optimism NFT API 是开发者为 Optimism 生态系统构建 NFT 项目所需要的主要工具。

什么是 Optimism NFT API?

Optimism NFT API 帮助开发者即时从 L2 网络获取信息。使用 Optimism NFT API,开发者可以读取区块/交易数据、执行智能合约、查询链上信息,以及将数据存储到链上。

Alchemy 为开发者提供了 multichain NFT API,使用 JSON-RPC 标准 API 与 Optimism 的去中心化节点基础设施交互。Alchemy 的 Optimism NFT API 让开发者能够获得更高的请求吞吐量、增加并发请求数量,并使用免费的数据存档、日志以及各自的使用指标。此外,该方案支持所有遵循 ERC-721 和 ERC-1155 标准的 NFT,以及部分早于 Ethereum 标准化 NFT 合约出现的 NFT。

开发者还可以通过多种代码路径访问大量 NFT 及其元数据。Alchemy 的 Optimism NFT API 能够处理 JSON、SVG、UTF-8 格式的链上或链下 NFT、Pinata 等 IPFS 网关,以及 Base64 编码的图片。

开发者可以将 Alchemy 的 NFT API 用于以下用途:

  • 向用户展示 NFT
  • 开发 NFT 市场
  • 设计 NFT 分析协议
  • 构建 NFT 游戏应用
  • 验证 NFT 所有权

Optimism NFT API 是如何工作的?

Alchemy 的 Optimism NFT API 通过以下机制实现高性能功能:图片缓存、垃圾信息过滤、图片尺寸调整以及清晰的错误描述。

图片缓存

开发者通常需要与 IPFS 等去中心化存储提供商以及第三方服务器交互,以访问 NFT 媒体文件。然而,他们会遇到较长的加载时间和超时错误。

Alchemy 通过使用 Cloudinary 缓存 NFT 图片,提供了加载快速、响应迅速的低延迟方案。因此,Alchemy 可以从自己的缓存中向开发者提供 NFT URL,从而减少响应时间。

垃圾信息过滤

不受欢迎的垃圾 NFT 可能导致诈骗,并影响 NFT 市场、画廊或分析平台的用户体验。开发者通常需要读取并解析各个智能合约才能获取 NFT 元数据以过滤垃圾 NFT。为了简化这一过程,Alchemy 提供了以下 API 端点作为 NFT 垃圾信息过滤器:

  • isSpamForContract - 检测垃圾 NFT 智能合约。开发者还可以过滤合约地址,以检测垃圾 NFT 的持有者。
  • getSpamContracts - 返回特定网络上垃圾 ERC-721 和 ERC-1155 智能合约的列表。

开发者可以使用 Alchemy 的垃圾信息过滤器,将垃圾 NFT 发送销毁,或标记发送垃圾 NFT 的钱包地址。截至 2022 年 8 月,Alchemy NFT API 已标记出 5,000 个垃圾 NFT 智能合约。

Alchemy 使用以下标准来识别垃圾 NFT:

  1. 违反 ERC-721 和 ERC-1155 代币标准
  2. 在代币转移过程中违反代币标准
  3. 向 vitalik.eth 等蜜罐地址铸造代币
  4. 提供关于代币总供应量的虚假数据

图片尺寸调整

NFT 需要不同的图片尺寸,用于缩略图、智能手机、桌面端和平板端视口。开发者可以通过修改 URL 来调整 Alchemy 托管的 NFT 的尺寸,包括任意高度和宽度像素的组合,以创建相应的宽高比。因此,Alchemy 使图片尺寸调整对 NFT 开发者来说更加简便。

NFT 错误

尽管 Alchemy 的 NFT API 能返回大部分 NFT 元数据,但在以下情况下无法完成请求:

  • Token does not exist - Alchemy 使用代币 ID 调用 tokenURI/uri 方法,但智能合约无法识别该 ID。这要么表示该代币尚未铸造,要么表示该代币不存在。
  • Malformed token URI - tokenURI/uri 返回了“格式错误”或无效的网站地址,因此无法访问该网站以返回元数据。
  • Failed to get token URI - 当代币 ID 未返回任何元数据时的通用错误信息,即使该代币确实存在。
  • Token URI returns a non-200 response code - 当 URI 返回“502 Bad Gateway”信息时会显示此错误,原因是网站宕机或对 Alchemy 服务器进行了限流。
  • Throttled token URI - 此错误返回“429 Too Many Requests”信息,表示 Alchemy 请求元数据过于频繁,因而被限流。
  • Contract does not have any code - 当某个代币地址在区块链网络上没有对应的智能合约代码时,会显示此错误。
  • Contract returned a broken token URI, do not retry - 当 tokenURI 没有响应时会显示此错误信息,原因可能是该网站 URL 不存在,或缺少 DNS 配置。

Optimism NFT API 支持的方法

Alchemy 的 Optimism NFT API 通过以下几类 NFT API 端点帮助开发者构建 Optimism NFT 应用:

Optimism NFT 所有权与代币门控

  • getNFTs - 获取某个钱包所拥有的 Optimism NFT
  • getOwnersForToken - 获取某个代币的 Optimism 持有者
  • getOwnersForCollection - 获取某个系列的 Optimism NFT 持有者
  • isHolderOfCollection - 检查某个 Optimism 钱包是否持有某个 NFT
  • getNFTsForCollection - 获取某个 Optimism NFT 系列中的 NFT

Optimism NFT 元数据

  • getNFTMetadata - 获取 Optimism NFT 元数据
  • getContractMetadata - 获取 Optimism NFT 智能合约元数据

Optimism NFT API 示例

Alchemy 的 getNFTs 是一个用途广泛的 NFT API 端点,开发者可以在多种 NFT 协议中使用它。要了解 getNFTs API 端点的具体工作方式,请参考以下示例。

1. Optimism 代币门控

当开发者构建一个 NFT 市场时,他们会设计一个用户主页,展示该用户所拥有的 NFT。开发者可以使用 Optimism NFT 代币门控工具 isHolderOfCollection,从特定钱包地址中获取 NFT,判断该地址是否持有指定系列中的某个代币。

2. Optimism NFT 分析工具

稀有度排名网站或聚合器等 NFT 分析工具需要 NFT 元数据来创建列表并获取交易数据。开发者可以使用 Optimism NFT 元数据 API getNFTMetadata,检索 NFT 分析工具所使用的链上元数据。

3. Optimism NFT 空投名单

某个 NFT 项目雇佣开发者,向特定 NFT 的持有者空投新的 NFT。如果没有 API,开发者就必须解析整个区块链来追踪 NFT 资产的所有权。而借助 Alchemy 的 Optimism NFT 系列 API getOwnersForToken,开发者可以即时识别持有者并生成空投名单。当用户想要将特定 NFT 设为个人资料图片时,开发者也可以使用此 API 来验证资产所有权。

如何开始使用 Optimism NFT API 进行构建

与其自行运行 Optimism 节点,不如直接在 Alchemy 上创建一个私有 Optimism 节点,然后按照以下三个简单步骤,即可开始使用 Alchemy 的 Optimism NFT API 进行构建:

  1. 选择包管理器 - 使用 npm 或 yarn 等包管理器
  2. 设置代码仓库 - 打开终端,通过命令行为快速入门脚本创建一个新的代码仓库
  3. 选择一个库 - 使用 Fetch、Axios 或其他标准 HTTP 库与 Optimism NFT API 交互

开发者可以直接使用 Fetch 或 Axios 调用 Optimism NFT API。有关当前端点示例和支持方法,请参阅 Alchemy 的文档。

使用 Alchemy 打造最好的 Optimism NFT API

根据 Bloomberg 的数据,在 2021 年的牛市期间,NFT 市场规模超过了 400 亿美元。尽管 NFT 领域目前正处于艰难的熊市阶段,但 NFT 技术在未来仍具有巨大的增长潜力。

因此,构建者将需要合适的 NFT 开发者工具,在可扩展的 Optimism 网络上创建自己的 NFT 应用。在 Alchemy 上创建一个免费账户,开始使用 Alchemy 的免费 NFT API 构建 NFT 应用。

Background gradient

构建区块链应用

Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。