什么是 OpenSea API?
作者 Alchemy Team
NFT 简介
NFT,即非同质化代币,是区块链上可证明独一无二的数字资产。自诞生以来,这一资产类别已扩展到图片、视频、音频格式的收藏品、游戏道具、数字艺术品、活动门票、域名,甚至实物资产的所有权记录。其应用场景仍在不断增长。
NFT 大多与 Ethereum 区块链绑定,依赖 ERC-721 与 ERC-1155 代币标准,如果基于后者构建,还可以实现半同质化——即代币在铸造时可交换/同质化,但兑换后变得不可交换/非同质化。半同质化代币的例子包括演唱会门票、礼品券和优惠券。近期还出现了关于“灵魂绑定”NFT 的讨论,这类 NFT 在获取后不可转让,可用于验证个人身份、确认活动出席情况,以及在去中心化组织(DAO)中持有基于参与度分配的治理权。灵魂绑定 NFT 的作用在于将 NFT 领域拓展到当前因二级市场可交易性而主导的社交信号与financial激励之外。
与此同时,随着 NFT 买卖市场持续增长,成为 Web3 领域中占比越来越大的部分——截至 2021 年底交易量已超过 410 亿美元——开发者们纷纷涌入这一领域,在这一独特的资产类别之上进行构建。
NFT 为应用开发者和智能合约开发者都提供了独特的机会。无论你所构建的项目是否需要直接与区块链交互,一项重要需求都是能够访问 NFT 生态系统的索引,获取关于所有权、合集与事件的详细信息。对于智能合约开发者来说,同样有价值的是通过支持 NFT 买卖的功能来构建原生 NFT 市场的能力。
OpenSea 作为 NFT 及其他数字资产领域领先的点对点市场,通过其 API 与 SDK 满足了这些关键的开发者需求——这套工具集易于集成和使用,目前已经是大多数处理 NFT 的主流应用的基础支撑。但如此大部分市场依赖这样一个中心化系统并非没有问题,尤其是近期 OpenSea 平台出现了可靠性问题,而 OpenSea API 也存在若干可行的替代方案。
什么是 OpenSea?
OpenSea 是一个面向数字商品的横向点对点市场,允许用户买卖及拍卖 NFT、稀有数字物品和加密收藏品。对开发者而言,OpenSea 为 NFT 领域的应用提供了广泛的集成与工具支持。他们索引并提供了规模最大的 NFT 数据集(自最早的项目上线以来便一直存在),并为热门合集和项目提供二级市场服务。
OpenSea 支持多种广泛使用的代币和链,并在持续扩展这一列表。他们既支持 ERC-721 非同质化代币,也支持 ERC-1155 半同质化代币,并且是一个多链平台,除 Ethereum 外还为 Polygon 和 Klaytn 提供工具支持。
除市场业务外,OpenSea 的 API 平台还为第三方工具提供支持,其 REST API 是 Web3 社区中众多大型项目的基础,例如 MetaMask、Coinbase Wallet 和 Rainbow 等。
OpenSea 的开发者平台
OpenSea 的开发者工具由一个 REST API 和一个软件开发工具包(SDK)组成:API 使开发者能够访问和展示关于 NFT 的元数据;SDK 则在 API 基础上构建,支持直接与区块链交互的开发工作,例如通过数字资产的买卖来创建 NFT 市场。OpenSea 的开发者平台提供了若干关键的附加价值。
通过 API 进行应用开发方面:
- 在前端展示 NFT 及合集的流程简单直接。
- 可访问 OpenSea 数据库中每个资产和合集的交易、所有权及其他详情的元数据。
- 能够监控任意用户钱包中的 NFT 交易,并获取任意用户资产的相关信息。
- 强大的数据管理工具,包括按类别的筛选与统计功能。
- OpenSea 提供全面的文档,便于快速上手使用其 API。
而通过 SDK 进行智能合约交互方面:
- 通过 OpenSea 的交易所合约,可接触到该领域中收藏者与卖家规模最大的社区。
- 能够构建无需部署自有合约、可读写区块链的电商功能。
- 可构建具有丰富功能和付款方式的原生 NFT 买卖市场。
- OpenSea 通过 Royalty Registry 提供内置的版税支持,该机制在各平台间是标准化的。
- OpenSea SDK 文档会定期更新,以符合最新的 Solidity 标准。
1. API 工具
OpenSea API 为 OpenSea 平台上以下几类被索引的模型提供端点:资产(单个 ERC-721/ERC-1155 代币)、NFT 合集、事件、订单、账户以及资产合约。作为 SDK 功能的一部分,订单 API 支持 NFT 订单的获取(GET)和提交(POST)。OpenSea 同时提供 Mainnet 与 Testnet(通过 Ethereum Sepolia 网络)的 API 访问,方便开发者在不花真金白银的情况下进行构建和测试。
部分 API 端点(订单与事件)由 OpenSea 设限以防止滥用。要使用这些端点,可以从 OpenSea 开发者门户申请 API key。
接下来,我们将更详细地介绍 OpenSea 的 API 模型,讨论各自的范围与功能。文末也提供了一些常用端点与 API 调用示例。
1. Contracts
合约是部署在 Ethereum 网络上的智能合约,与单个所有者账户相关联。合约会在预先设定的条款和条件满足时自动执行——在 OpenSea 的场景中,合约存在于 NFT 合集的买卖双方之间,用于执行交易。
2. Assets
资产代表从某个合约中产生的单个代币。资产可以由一个或多个账户拥有,并包含关于该资产的元数据,包括资产 ID、所有者、名称及所属合约等信息,还包括媒体资料(资产所代表的图片 URL)以及创作者自定义的属性。资产是 OpenSea 用来指代 NFT 的说法。
3. Orders
订单是账户提交的关于买入/卖出某资产的意图。它存在于链下,具有类型:出价(bid)或要价(ask)。订单还包含与链上 NFT 匹配所需的元数据。一个订单有两个参与方:maker(挂单方),通过声明卖出或买入/出价某物品的意图,制造流动性并作为交易的先行方;以及 taker(吃单方),通过购买或接受某物品的出价来获取流动性,并作为交易的后行方。订单可以在特定合集内被打包组合。
4. Events
事件代表资产上的一次状态变化,包括转移、售出、铸造等链上事件,以及出价、挂单等链下事件。事件可以是私有的。
5. Accounts
账户通过钱包地址及关联的用户名,代表 OpenSea 市场上的用户。账户可以拥有一个或多个资产,并在订单中充当 maker 或 taker。
6. Collections
合集是一个或多个合约中资产的分组,包含诸如版税信息和社交链接等元数据,并有一位或多位获授权的编辑者。合集完全存在于链下,其关联的元数据包括创作者版税与描述信息。一些热门的 NFT 合集包括 Bored Ape Yacht Club、CryptoPunks 和 Crypto Coven。
一些常用的端点与 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 请求头(X-API-KEY: {KEY})。
-
GET /orders
- 获取订单列表,可通过订单类型或指定的 maker/taker 等选项进行过滤。
完整的 OpenSea API 调用与端点列表可参见这里。
2. SDK 工具
OpenSea 的 SDK 工具是一个 npm 包,面向希望在应用中构建电商功能的 Web 开发者。通过 SDK 这个 JavaScript 库,你可以在无需部署智能合约或搭建后端订单簿的情况下,构建原生的 NFT 买卖市场。
OpenSea 的 SDK 依托于上文介绍的 REST API,并使用 Web3.js(一个广泛使用的 EVM 交互库)来驱动与区块链的交互,从而完成 NFT 订单的创建与执行。
该 SDK 支持诸如获取资产、发起报价、创建挂单及出售物品、运行众售、获取订单、购买物品、接受报价,以及转移物品或代币(赠送)等功能。
它还提供一套进阶功能,包括预约未来的挂单、为其他用户代购物品、批量转移 NFT、创建 NFT 打包组合、使用 ERC-20 代币代替 Ether 付款、创建私人拍卖、与 OpenSea 分成销售费用,以及监听事件。
它易于配置(通过 npm install 即可),并原生集成了 OpenSea 的交易所,可直接创建和完成买卖订单。
你可以在这里安装并了解 OpenSea 的 JavaScript SDK 库的功能。
社区采用情况与观点
OpenSea 的开发者平台已在整个 Web3 社区中获得广泛采用。它已被集成到 Coinbase Wallet、MetaMask、Rainbow、3Box、Opera Wallet、Trust Wallet、Editorial、Balance、CryptoGoods 等产品中,最近还被 Twitter 集成,用于支持 NFT 头像功能。
这种近乎全市场对 OpenSea 中心化 API 索引的依赖已被证明存在问题。最近几周,OpenSea 经历了一系列“数据库故障”,导致多个依赖 OpenSea API 的服务无法显示 NFT。尽管这并不影响底层代币或区块链本身,但在 OpenSea 故障期间,所有依赖 NFT 数据的面向用户的服务都会持续停机。
这些故障引发了进一步的讨论,关注 NFT 领域乃至整个 Web3 生态系统中服务缺乏去中心化的问题。就此而言,目前已有若干项目在朝着不同程度的 NFT 索引去中心化方向努力,但市场上尚无完全去中心化的方案。
无论如何,近期事件表明,开发者在决定是否使用 OpenSea 之前,应该考虑所有主要的 NFT API 提供商。
OpenSea 的替代方案
除 OpenSea 之外,以下介绍几个使用最广泛、功能最全面的 NFT API。需要注意的是,目前尚没有服务能够提供与 OpenSea SDK 等效的 NFT 市场创建及相关功能。
1. Alchemy NFT API
Alchemy 作为一个 Web3 开发基础设施平台,近期宣布推出其 NFT API,可以像 OpenSea 一样访问 ERC-721 和 ERC-1155 的 NFT 元数据。它目前支持在多条区块链上获取 NFT 元数据、查找 NFT 的所有者,以及实时信息更新等功能。Alchemy 的 API 目前在 Ethereum、Polygon 和 Flow 的 Mainnet 上可用,并计划支持包括 Solana 和 Avalanche 在内的更多链,此外还支持 Ethereum 和 Polygon 的 Testnet。目前它已为 Adobe Behance、Shopify、Dapper Labs 以及 SuperRare 等 NFT 平台提供支持。
你可以在这里阅读更多关于 Alchemy NFT API 的信息,并在这里查看文档。
2. NFT port
另一个 NFT API 提供商是 NFTPort,一个 NFT 基础设施平台,支持以下功能:
- 在 Polygon 链上铸造 NFT。
- 部署与 OpenSea 兼容的合约,支持动态 NFT,并计划支持程序化版税管理。
- 对 NFT 数据进行实时索引与缓存,包含链上交易/订单数据。
- 更进阶的 API,包括跨链 NFT 搜索、NFT 推荐以及仿冒 NFT 检测。
你可以在这里阅读更多关于 NFTPort 的信息,并在这里查看文档。
3. Uniswap token lists
对于青睐完全去中心化 NFT 数据索引这一理念的开发者来说,Uniswap 的 Token Lists 介于 OpenSea 那种中心化程度与网络中各个用户在钱包中自行录入、个人整理的 NFT 合集之间,充当了一种折中方案。借助 Uniswap 的方案,社区可以共同参与列出 NFT 合集,从而实现去中心化,并为索引过程增添信任度。
你可以在这里阅读更多关于 Uniswap 尝试进一步去中心化 NFT 接口的信息,并在这里创建你自己的代币列表。
4. 完全去中心化的索引……指日可待?
针对近期的 OpenSea 故障,MetaMask 联合创始人 Dan Finlay 在这里介绍了一些替代对 OpenSea 中心化依赖的方案。
他在文中提出:“更好的方案是让资产检测成为一种以客户端为中心的同意行为。”
通过 EIP-747,MetaMask 已经允许网站向用户的钱包建议自定义资产,由钱包本身充当资产索引,无需任何中心化服务器。看起来,MetaMask 打算将这一功能扩展到 NFT,从而构建一个既完全去中心化、性能也更好的系统。
随着越来越多此类 NFT API 进入市场,开发者获得的选择也越来越多——不仅可以根据自身及项目需求选择合适的去中心化程度,也可以在多个服务提供商之间进行选择,从而减少全市场范围内的故障影响。
结语
OpenSea 面向 NFT 的开发者平台功能强大、全面完善,且易于部署和使用。无论开发者是否希望直接与智能合约交互,它都为想要进入 NFT 领域的开发者提供了丰富的数据读写功能。它是 NFT API 服务市场中领先的提供商,这也是有充分理由的。
虽然 OpenSea 的 API 本身相对可靠,但整个行业对其工具的广泛依赖意味着,一旦它出现故障(正如最近几周所发生的那样),就会拖累大部分 NFT 市场。为了充分降低这一领域的风险,开发者应持续探索多种去中心化与中心化的方案来构建自己的项目,而基础设施提供商也应努力赶上并与 OpenSea 强大的功能集展开竞争。
无论开发者最终选择哪种 API,随着该资产类别周边生态与工具的持续发展,NFT 领域正快速迈向广泛采用和持续创新。现在正是入门 Web3 开发者的绝佳时机!
相关概览

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


