关于 Alchemy 的 Optimism NFT API 你需要知道的一切
作者 Mrig
NFT 集合正在 Optimism 上快速增长,越来越多的开发者在该网络上构建新的 NFT 应用。这些开发者需要 NFT API 来查询网络并获取 NFT 元数据,以满足用户的数据请求。如果没有合适的 NFT API,对单个开发者来说,索引和查询 NFT 元数据会成为一项耗费大量时间和资源的工作。
了解如何使用 Alchemy 的 Optimism NFT API 开始构建 NFT 工具、市场、应用等。
Optimism 的 NFT 生态系统
Optimism 是一个 L2(第 2 层)Ethereum 扩容方案,运行在乐观 rollup 基础设施之上。乐观 rollup 通过在链下执行交易来减轻 Ethereum 的负担,从而提供更高的交易吞吐量并降低 gas 费用。乐观 rollup 将多笔交易打包为单笔交易,并将其发回 Ethereum 进行验证,从而提升网络的可扩展性。
Optimism 内置的可扩展性使其成为开发 NFT 项目的理想方案。借助 Optimism 的高速交易和低廉费用,用户在玩 NFT 游戏或交易收藏品时能获得更好的体验。
根据 Optimism NFTScan 网站的数据,Optimism 上有超过 100 万个 NFT 资产,分布在 23.8 万个 NFT 钱包中,开发者需要合适的工具集来构建 NFT 协议并处理大量 NFT。Alchemy 的 Optimism NFT API 正是开发者在 Optimism 生态系统中构建 NFT 项目所需的主要工具。
什么是 Optimism NFT API?
Optimism NFT API 帮助开发者即时从 L2 网络获取信息。借助 Optimism NFT API,开发者可以读取区块/交易数据、执行智能合约、查询链上信息,并将数据存储到链上。
Alchemy 为开发者提供多链 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 提供了以下作为 NFT 垃圾过滤器的 API 端点:
- isSpamForContract - 检查智能合约是否为垃圾 NFT。开发者还可以筛选合约地址,检查垃圾 NFT 的持有者。
- getSpamContracts - 返回特定网络中垃圾 ERC-721 和 ERC-1155 智能合约的列表。
开发者可以使用 Alchemy 的垃圾过滤器发送垃圾 NFT 进行销毁,或标记发送垃圾 NFT 的钱包地址。截至 2022 年 8 月,Alchemy NFT API 已将 5,000 个智能合约标记为垃圾 NFT。
Alchemy 使用以下标准来识别垃圾 NFT:
- 违反 ERC-721 和 ERC-1155 代币标准
- 在代币转移过程中违反代币标准
- 向蜜罐地址(如 vitalik.eth)铸造代币
- 提供关于代币总供应量的虚假数据
图片尺寸调整
NFT 需要不同的图片尺寸以适配缩略图、智能手机、桌面设备和平板设备的视口。开发者可以通过更改 URL、加入任意高度和宽度像素组合来创建对应的宽高比,从而调整 Alchemy 托管的 NFT 图片尺寸。因此,Alchemy 让 NFT 开发者更容易调整图片尺寸。
NFT 错误
尽管 Alchemy 的 NFT API 能返回大部分 NFT 元数据,但在以下情况下无法满足请求:
- Token does not exist - Alchemy 使用 token ID 调用 tokenURI/uri 方法,但智能合约无法识别该 ID。这意味着该代币尚未铸造,或者根本不存在。
- Malformed token URI - tokenURI/uri 返回“格式错误”或无效的网址,因此无法访问该网址以返回元数据。
- Failed to get token URI - 当 token ID 未返回任何元数据(即使该代币确实存在)时出现的通用错误信息。
- Token URI returns a non-200 response code - 当网址返回“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 - 获取某个 token 在 Optimism 上的持有者
- getOwnersForCollection - 获取某个 NFT 集合在 Optimism 上的持有者
- 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 进行构建:
- 选择包管理器 - 使用 npm 或 yarn 之类的包管理器
- 设置代码仓库 - 打开终端,通过命令行为快速入门脚本创建新的代码仓库
- 选择库 - 安装 Alchemy SDK 以与 Optimism NFT API 交互
虽然开发者也可以使用 Fetch 和 Axios,但开始使用 Optimism NFT API 最快捷的方式是使用 Alchemy 的 SDK,因为它在 WebSocket 支持、重试机制等方面提供了更好的功能,还有许多其他优势。
使用 Alchemy 打造最佳的 Optimism NFT API
据彭博社报道,在 2021 年的牛市期间,NFT 市场规模一度超过 400 亿美元。尽管 NFT 领域目前正经历一段艰难的熊市,但 NFT 技术在未来仍然具有巨大的增长潜力。
因此,建设者需要合适的 NFT 开发者工具,才能在可扩展的 Optimism 网络上构建自己的 NFT 应用。在 Alchemy 上创建免费账户,使用 Alchemy 免费的 NFT API 开始构建 NFT 应用。
相关概览

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


