---
title: "什么是 OpenSea API？"
description: "了解 OpenSea 的 API、其工作原理，以及 Alchemy 的 NFT API 等热门替代方案。"
---

## NFT 简介

NFT，即[非同质化代币](https://opensea.io/blog/guides/non-fungible-tokens/)，是区块链上可证明唯一性的数字项目。自诞生以来，这一资产类别已扩展到包括图像、视频和音频格式的收藏品、游戏道具、数字艺术、活动门票、域名，甚至实体资产的所有权记录。而其应用场景还在不断[增长](https://www.web3.university/article/nft-use-cases)。

NFT 大多与 Ethereum 区块链相关联，依赖于 [ERC-721 与 ERC-1155](https://www.web3.university/article/comparing-erc-721-to-erc-1155) 代币标准。如果基于后者构建，还可以实现[半同质化](https://www.cnbctv18.com/cryptocurrency/what-semi-fungible-tokens-are-and-how-they-are-different-from-nfts-12001832.htm)——即代币在铸造时可交换/同质化，但在赎回后变为不可交换/非同质化。半同质化代币的例子包括演唱会门票、礼品券和优惠券。最近，业内也开始讨论"灵魂绑定"NFT，这类 NFT 一经获得便不可转让，可用于验证个人身份、确认活动出席，以及在[去中心化组织](https://ethereum.org/en/dao/)（[DAO](https://www.alchemy.com/dapps/top/daos)）中持有基于参与度分配的治理权。[灵魂绑定](https://www.alchemy.com/dapps/soulbound) NFT 有望使 NFT 领域摆脱目前因二级市场可交易性而主导的社交信号和金钱激励，从而拓展其应用边界。

与此同时，随着 NFT 买卖市场持续增长，成为 Web3 领域中体量庞大的一部分——截至 2021 年底交易量已超过 410 亿美元——开发者也纷纷涌入这一领域，围绕这一独特资产类别进行构建。

NFT 为应用开发者和智能合约开发者都提供了独特的机会。无论所构建的项目是否需要直接与区块链交互，一项重要需求是能够访问 NFT 生态系统的索引，获取关于所有权、收藏集和事件的详细信息。而对于智能合约开发者来说，通过实现 NFT 买卖功能来构建原生 NFT 交易市场同样具有重要价值。

OpenSea 作为 NFT 及其他数字资产领域领先的点对点交易市场，通过其 [API](https://docs.opensea.io/reference/api-overview) 和 [SDK](https://github.com/ProjectOpenSea/opensea-js/blob/master/README.md) 满足了这些关键的开发者需求。这套工具集易于集成和使用，目前已支撑起大多数处理 NFT 的主流[应用](https://www.alchemy.com/dapps/top/defi-dapps)。但如此大比例的市场依赖这样一个中心化系统，也并非没有问题——尤其是最近 [OpenSea](https://www.alchemy.com/dapps/opensea) 平台出现了可靠性问题，市面上也存在几种可行的 OpenSea API 替代方案。

## 什么是 OpenSea？

OpenSea 是一个面向数字商品的横向、点对点交易市场，允许用户买卖及拍卖 NFT、稀有数字资产和加密收藏品。对开发者而言，OpenSea 为 NFT 领域的应用提供了广泛的集成方案和工具。他们索引并提供了规模最大的 NFT 数据集（自最早的项目上线以来便一直存在），并为热门收藏集和项目充当二级市场。

OpenSea 支持多种广泛使用的代币和链，且仍在积极扩展这一列表。他们同时支持 ERC-721 非同质化代币和 ERC-1155 半同质化代币，并作为多链平台，除 Ethereum 外还为 Polygon 和 Klaytn 提供工具支持。

除交易市场外，OpenSea 的 API 平台还为第三方工具提供支撑，其 REST API 是 Web3 社区中众多大型项目的基础，例如 [MetaMask](https://www.alchemy.com/dapps/metamask)、[Coinbase Wallet](https://www.alchemy.com/dapps/coinbase-wallet) 和 [Rainbow](https://www.alchemy.com/dapps/rainbow-wallet) 等。

## OpenSea 的开发者平台

OpenSea 的开发者工具由两部分组成：一个 REST API，使开发者能够访问并展示 NFT 的元数据；以及一个软件开发工具包（SDK），在 API 基础上构建，用于开发直接与区块链交互的功能，例如通过数字资产买卖来创建 NFT 交易市场。OpenSea 开发者平台提供了以下几项关键价值。

通过 API 进行应用开发：

1. 可直接在前端展示 NFT 及收藏集，流程简单直接。
1. 可访问 OpenSea 数据库中每个资产和收藏集的交易、所有权及其他详细信息的元数据。
1. 能够监控任意用户钱包的 NFT 交易，并获取任意用户资产的相关信息。
1. 强大的数据管理工具，包括按类别的筛选和统计功能。
1. OpenSea 提供完善的[文档](https://docs.opensea.io/reference/api-overview)，方便快速上手使用其 API。

**通过 SDK 进行智能合约交互：**

1. 通过 OpenSea 的交易合约，可接触到该领域内规模最大的收藏者与卖家社区。
1. 能够构建读写区块链的电商功能，而无需部署自己的合约。
1. 可构建原生交易市场，用于 NFT 买卖，支持多种功能和支付结构。
1. OpenSea 通过 Royalty Registry 提供内置版税支持，且该版税标准在各平台间通用。
1. OpenSea [SDK 文档](https://github.com/ProjectOpenSea/opensea-js/blob/master/README.md)会定期更新，以符合最新的 Solidity 标准。

## 1. API 工具

OpenSea API 为其平台上以下已索引的模型提供接口：资产（单个 ERC-721/ERC-1155 代币）、NFT 收藏集、事件、订单、账户和资产合约。作为 SDK 功能的一部分，订单 API 支持 NFT 订单的获取（GET）和提交（POST）。OpenSea 同时提供 Mainnet 和 Testnet（通过 Ethereum Rinkeby 网络）的 API 访问，方便开发者在不花费真实资金的情况下进行构建和测试。

部分 API 端点（订单和事件）由 OpenSea 进行权限限制，以防止滥用。要使用这些端点进行构建，可从 [OpenSea 开发者门户](https://docs.opensea.io/)申请 API key。

接下来，我们将更详细地探讨 OpenSea 的各个 API 模型，讨论各自的范围和功能，并附上常用的端点及 API 调用示例。

### 1. Contracts

Contract 是部署在 Ethereum 网络上的智能合约，与单个所有者账户相关联。合约在预定条款和条件满足时会自动执行——在 OpenSea 的场景中，合约存在于 NFT 收藏集的买卖双方之间，用于执行交易。

## 2. Assets

Asset 代表从某个合约生成的单个代币，可由一个或多个账户所有，并包含每个资产的元数据。这些数据包括资产的 ID、所有者、名称及其所属的合约，还包括媒体信息（该资产所代表的图片 URL）以及创作者定义的属性。Asset 是 OpenSea 对 NFT 的称呼方式。

### 3. Orders

Order 是账户提交的买卖某个资产的意向，存在于链下，类型分为 bid（出价）或 ask（要价）。它还包含与链上 NFT 进行匹配所需的元数据。订单中有两个参与方：**maker**，即提供流动性并通过声明出售或购买/出价意向而在交易中率先行动的一方；以及 **taker**，即获取流动性并通过购买或接受出价而在交易中作为第二方行动的一方。订单可以在特定收藏集内打包。

### 4. Events

Event 代表资产的状态变化，包括转账、销售、铸造等链上事件，以及出价、挂单等链下事件。事件可以设为私密。

### 5. Accounts

Account 通过钱包地址及关联用户名代表 OpenSea 交易市场上的用户，可拥有一个或多个资产，并在订单中充当 maker 或 taker。

### 6. Collections

Collection 是一个或多个合约中资产的分组，包含版税信息和社交链接等元数据，并有一个或多个授权编辑者。Collection 完全存在于链下，与创作者版税、描述等元数据相关联。一些热门的 NFT collection 包括 [Bored Ape Yacht Club](https://opensea.io/collection/boredapeyachtclub)、[CryptoPunks](https://opensea.io/collection/cryptopunks) 和 [Crypto Coven](https://opensea.io/collection/cryptocoven)。

**一些常用的端点及 API 调用包括：**

- GET /assets 根据筛选条件（如 asset_contract_address 或 collection_slug）获取代币列表
- GET /asset/:contract_address/:token_id
  - 获取特定代币的详细信息，包括 ERC-1155 代币的所有者列表以及该代币上所有未平仓订单。

- GET /collections
  - 获取收藏集列表，同时支持如 asset_owner 等筛选选项。

- GET /collections/:slug/stats
  - 获取特定收藏集的统计信息，包括最新的地板价。

- GET /events
  - 根据筛选条件获取事件列表。
  - 需要在请求头中携带 [API key](https://docs.opensea.io/reference/request-an-api-key)（X-API-KEY: \{KEY\}）。

- GET /orders
  - 获取订单列表，可通过订单类型或特定的 maker、taker 进行筛选。

完整的 OpenSea API 调用及端点列表参见[此处](https://docs.opensea.io/reference/api-overview)。

## 2. SDK 工具

OpenSea 的 SDK 工具是一个 npm 包，供希望在应用中构建电商功能的 Web 开发者使用。通过该 SDK 的 JavaScript 库，可以构建原生的 NFT 买卖交易市场，无需部署智能合约或后端订单簿。

OpenSea 的 SDK 以上文介绍的 REST API 为后端支撑，并使用 [Web3.js](https://www.alchemy.com/dapps/web3-js)（一个常用的 EVM 交互库）来驱动与区块链的交互，用于创建和执行 NFT 订单。

该 SDK 支持诸如获取资产、发起报价、创建挂单及出售物品、运行众筹销售、获取订单、购买物品、接受报价，以及转移物品或代币（赠送）等功能。

它还提供一套进阶功能，包括安排未来挂单、为其他用户购买物品、批量转移 NFT、创建 NFT 打包组合、使用 ERC-20 代币代替 Ether 进行支付、创建私密拍卖、与 OpenSea 分享销售手续费，以及监听事件。

该 SDK 易于配置（通过 npm install 即可），并与 OpenSea 的交易所原生集成，可直接创建和执行买卖订单。

可在[此处](https://github.com/ProjectOpenSea/opensea-js/blob/master/README.md)安装并探索 OpenSea JavaScript SDK 库的功能。

## 社区采用情况与观点

OpenSea 的开发者平台已在整个 Web3 社区中获得广泛采用，已集成至 Coinbase Wallet、MetaMask、Rainbow、3Box、Opera Wallet、Trust Wallet、Editorial、Balance、CryptoGoods 等产品中，最近还集成到了 [Twitter](https://help.twitter.com/en/using-twitter/twitter-blue-fragments-folder/nft)，用于支持 NFT 头像功能。

这种几乎覆盖整个市场、对 OpenSea 中心化 API 索引的依赖已经被证明存在问题。最近几周，OpenSea 经历了一系列"[数据库故障](https://status.opensea.io/)"，导致多项依赖 OpenSea API 的服务无法展示 NFT。尽管这并不影响底层代币或区块链本身，但在 OpenSea 故障期间，所有依赖 NFT 数据的面向用户的服务都会持续处于宕机状态。

这些故障引发了[更多讨论](https://www.theverge.com/2022/2/2/22914081/open-sea-nft-marketplace-web3-fundraising-finzer-a16z)，涉及 NFT 领域乃至整个 Web3 生态系统中服务缺乏去中心化的问题。就此而言，目前已有若干项目正在推进不同程度的 NFT 索引去中心化，但市场上尚无完全去中心化的参与者。

不过，最近的事件表明，开发者在决定是否使用 OpenSea 之前，应当考虑所有主要的 NFT API 提供商。

## OpenSea 的替代方案

除 OpenSea 外，以下是几个使用最广泛、功能最完善的 NFT API。需要说明的是，目前尚无服务能够提供与 OpenSea SDK 等价的、用于创建 NFT 交易市场及相关功能的方案。

### 1. Alchemy NFT API

Alchemy 是一个 Web3 开发基础设施平台，近期[宣布](https://x.com/Alchemy/status/1489330992787726338)推出其 NFT API，可像 OpenSea 一样，访问 ERC-721 和 ERC-1155 两种标准的 NFT 元数据。目前该 API 支持获取多条区块链上 NFT 的元数据、查找 NFT 所有者，以及实时信息更新等功能。Alchemy 的 API 目前已在 Ethereum、Polygon 和 Flow 的 Mainnet 上提供支持，并计划支持其他链，首先是 Solana 和 Avalanche，同时也支持 Ethereum 和 Polygon 的 Testnet。目前，该 API 已为 Adobe Behance、Shopify、[Dapper Labs](https://www.alchemy.com/dapps/dapper-labs) 和 [SuperRare](https://www.alchemy.com/dapps/superrare) 等 NFT 平台提供支持。

关于 Alchemy NFT API 的更多信息可参见[此处](https://www.alchemy.com/nft-api)，文档参见[此处](https://www.alchemy.com/docs/reference/nft-api-endpoints/nft-api-endpoints/nft-api-v-2-methods-older-version/get-nf-ts)。

### 2. NFT Port

另一家 NFT API 提供商是 NFTPort，一个 NFT 基础设施平台，支持以下功能：

- 在 Polygon 链上铸造 NFT。
- 部署兼容 OpenSea 的合约，支持动态 NFT，并计划支持程序化版税管理。
- 对 NFT 数据进行实时索引和缓存，包括链上交易/订单数据。
- 更多进阶 API，包括多链 NFT 搜索、NFT 推荐以及仿冒 NFT 检测。

关于 NFTPort 的更多信息可参见[此处](https://www.nftport.xyz/)，文档参见[此处](https://docs.nftport.xyz/docs/nftport/ZG9jOjE5MzA4MjIy-welcome-to-nft-port-the-stripe-for-nf-ts)。

### 3. Uniswap 代币列表

对于青睐完全去中心化 NFT 数据索引理念的开发者来说，[Uniswap](https://www.alchemy.com/dapps/uniswap) 的 Token Lists 在 OpenSea 式的中心化与网络中个人用户自行录入钱包的、个人整理的 NFT 收藏集之间提供了一种折中方案。借助 Uniswap 的方案，社区可以共同参与列出 NFT 收藏集，从而实现去中心化，并为索引过程增加信任度。

关于 Uniswap 进一步推动 NFT 接口去中心化的尝试，可参见[此处](https://uniswap.org/blog/token-lists?utm_source=thenewstack&utm_medium=website&utm_campaign=platform)，并可在[此处](https://tokenlists.org/)创建自己的代币列表。

### 4. 完全去中心化索引……或许即将到来？

针对最近的 OpenSea 故障，MetaMask 创始人之一 Dan Finlay 在[此处](https://medium.com/@danfinlay/what-moxie-missed-on-web3-wallets-8dc572e7f39b#:~:text=Viable%20Alternatives%20to-,the,-Centralized%20NFT%20Index)阐述了一些替代 OpenSea 中心化依赖的方案。

他在文中提出："更好的方案是将资产检测变成一种以客户端为中心的授权行为。"

通过 [EIP-747](https://ethereum-magicians.org/t/eip-747-wallet-watchasset/1048)，MetaMask 已经允许网站向用户钱包推荐自定义资产，钱包本身即成为资产索引，无需任何中心服务器。看起来，MetaMask 打算将此功能扩展至 NFT，从而构建一个完全去中心化、同时性能也更优的系统。

随着越来越多此类 NFT API 进入市场，开发者获得的选择也在不断增加——不仅可以根据自身项目选择最合适的去中心化程度，也可以在这些服务的提供商之间进行选择，从而减少全市场范围的故障。

## 结语

OpenSea 面向 NFT 的开发者平台功能强大、特性全面，且易于部署和使用。对于希望进入 NFT 领域的开发者而言，无论是否需要直接与智能合约交互，它都提供了广泛的数据读写功能。它是 NFT API 服务市场上的领先提供商，这并非没有原因。

尽管 OpenSea 的 API 本身相对可靠，但整个市场对该公司工具的广泛依赖意味着，一旦其出现故障（如最近几周所发生的那样），将会拖累相当一部分 NFT 市场。为充分降低这一领域的风险，开发者应继续探索各种去中心化和中心化的方案来构建自己的项目，而基础设施提供商也应努力赶上并对标 OpenSea 强大的功能集。

无论开发者最终选择哪种 API，随着这一资产类别周边的生态系统和工具持续发展，NFT 领域正快速走向广泛采用与持续创新。现在正是成为 Web3 开发者的最佳时机！
