如何使用 Ordinals API 在 Bitcoin 网络上开发 Web3 应用
![如何使用 Ordinals API 在 Bitcoin 网络上开发 Web3 应用](https://static001.geekbang.org/infoq/2e/2e1abe54d9e0e59efd2f5ac7197e9ced.jpeg)
随着 Ordinals 铭文生态的崛起,比特币网络迎来了一场意料之外的变革,大幅提升了链上的交易频率和活跃度。随着越来越多的用户和开发者涌入这一生态系统,Bitcoin 网络的交易量和矿工收益显著增加,推动了整个区块链领域的技术进步和市场发展。Ordinals 的崛起不仅彰显了 NFT 市场的潜力,更揭示了 Bitcoin 在去中心化数字资产领域的新可能性。
根据 NFTScan 数据显示,截至 6 月 28 日,Bitcoin 网络上铸造的 Ordinals 铭文(NFT 资产) 72,389,094 枚,共产生了 524,774,887 条链上交互记录,有过交互的钱包地址 2,630,322 个,共累计交易额 73,192.92 btc,目前市值 8,868.51btc 。
Ordinals NFTScan:https://btc.nftscan.com/
![](https://static001.geekbang.org/infoq/34/344fdd44e6f6459747fd60094c9bbe3f.png)
创建 NFTScan 开发者账号
在开始使用 NFTScan API 之前,首先需要访问开发者网站并创建一个账户。前往 NFTScan 官方网站点击 NFTScan API “Sign Up”按钮进行注册。
https://developer.nftscan.com/user/signup
![](https://static001.geekbang.org/infoq/eb/eb519c19e6af3b9fbd9ffdecb5696244.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
登录后在 Dashboard(面板)上找到自己独有的 API KAY,将其复制。访问 API 文档,将自己的 API KEY 输进 API 文档的相应位置。根据文档的指引,就可以开始使用 API 服务了。在 API 文档中,开发者可以找到多种可供选择的接口模式,根据需求来选择最合适的接口。
![](https://static001.geekbang.org/infoq/f0/f0231e2323aa5d447fa2b907e88393ec.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
在 Dashboard 中,开发人员还可以查看自己 API 使用情况的统计数据,帮助记录历史使用数据。不仅如此,NFTScan 还为每位注册开发者提供 1M CU 的 API 调用服务,用于请求所有的 NFT API 接口,并且 CU 永不过期,用完为止!
查看 Ordinals API 文档
在成功注册开发者账号获取 API Key 后,需要查看 NFTScan API 文档。API 文档包含了所有可以使用的 API 端点和参数,以及如何构建请求和处理响应的详细信息。请认真阅读 API 文档,并确保理解如何使用 API 来获取您需要的数据。NFTScan API 服务致力于帮助开发者改善获取 NFT 数据分析体验。
NFTScan 目前拥有全网最大最全的 NFT Collection 库,已支持 Ethereum、Solana、BNBChain、Bitcoin、Mint 等 24 条区块链的 NFT 全量数据,所涵盖的 NFT 数据全、种类丰富,提供一整套的接口来获得 ERC721、ERC1155、ERC404、ERC6551 资产以及交易、项目、市场统计等信息,现在支持 60 多个针对 EVM 兼容链的公共接口,以及针对 Solana、Aptos、Bitcoin、TON 的一批相同模型的接口,很大程度上满足了开发者索引多种类型的 NFT 数据的需求。
![](https://static001.geekbang.org/infoq/47/47d46d4362ecc5ea5b01f2d8e5e93dd9.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
Ordinals API 模型
主要包括了以下三个模型接口,包括里面一些 API 核心的字段的整体介绍和说明,方便开发者知道怎么去获取数据利用这些信息服务于自己正在构建的 Dapp 服务。
Assets API:"Assets"是 NFT 中最关键的数据字段,用于唯一标识和描述数字资产。开发者可以通过提取链上 NFT 的"Assets"数据来获取全面的了解,并构建相关应用。"Assets"对象提供了数字资产的唯一标识以及其整个生命周期的数据,为开发者理解和应用 NFT 提供了基础。
Transactions API:交易模型代表了区块链上一个 NFT 资产的全量交易数据,为开发者提供 NFT 的完整生命周期交易信息。包括 NFT 的 mint、转移、销售、和其他交易活动,为开发者提供了深入了解 Ordinals 在 Bitcoin 生态系统中的流动和演变过程的机会。NFTScan 不断地汇总来自各个区块链网络的 NFT 交易市场和相关交易合约信息,目前 NFTScan 已收录用于追踪和了解 NFT 市场的动态,同时也有助于开发者构建基于 NFT 的应用程序和工具。
Collections API:NFTScan 获取与 NFT Collections 相关的描述、社交媒体及其他基本信息等链下数据。NFTScan 通过各个区块链网络中最主流的 NFT 市场提供的 API 获取这些信息。此外当前地板价信息是基于 NFT 市场的订单信息的集中式数据,也是通过 API 可获取的。
![](https://static001.geekbang.org/infoq/3b/3b9742413f62867e9b2d9dd18cdf0f45.png)
1/ Retrieve Assets 系列
Get NFTs by account(通过钱包地址检索 NFT)
Get minted NFTs by account(检索该钱包地址的 Mint 的 NFT)
Get NFTs by collection(通过 collection 名称检索 NFT,并按 inscription_id 升序排序)
Get single NFT(检索单个 NFT)
Get NFTs by output(按输出获取 NFT)
Get cursed inscriptions(该接口返回一组被诅咒的铭文 NFT,NFT 按 inscription_number 升序排序)
这里我们通过 Get cursed inscriptions,接口路径为“/btc/assets/cursed/inscription”来检索一组被诅咒的铭文 NFT 的详情信息,查询参数包括 cursor / limit / show_attribute 作为选择,一些被成功刻录的铭文没有被索引器分配序号而无法被检索,即被称为「诅咒铭文」。NFTScan 同样对其数据进行整合收录,方便开发者们使用。
![](https://static001.geekbang.org/infoq/2e/2ed83b9daa946b5f41ab1220f7a2ceed.png)
2/ Retrieve Transactions 系列
Get transactions by account(该接口返回钱包地址的 NFT 交易列表)
Get transactions by inscription ID(该接口主要通过检索 BTC NFT 的铭文 ID(inscription ID)
Get transactions by collection(该接口返回某个 collection 的交易列表,交易按时间戳降序排序)
Search transactions(该接口返回在请求正文中应用搜索过滤器来返回 Ordinals 交易列表)
这里我们通过 Get transactions by inscription ID 接口,接口路径为:“/btc/transactions/{inscription_id}”,检索 inscription ID 为 6fb976ab49dcec017f1e201e84395983204ae1a7c2abf7ced0a85d692e442799i0 的交易记录,查询参数字段可供选择包括 event_type(交易事件类型):Mint/Transfer 使用 ';'用来分隔多个事件。
![](https://static001.geekbang.org/infoq/27/27361cc339b23fe5c5da17e11672fac2.png)
3/ Retrieve Collections 系列
Get an NFT collection(根据 Collection 名称查询详情)
Search NFT collections(此接口通过在请求正文中应用搜索过滤器来返回集合列表的信息。集合按 create_block_number 升序排序)
这里我们通过接口 Get an NFT collection “//btc/collections/{collection}” 检索 Collection 名称为 Bitcoin Frogs 的详情信息:
![](https://static001.geekbang.org/infoq/5c/5c4940e0eca8d437e2135fd2fc5964b2.png)
构建相关 NFT API 请求
一旦在 NFTScan 的 API 文档中找到所需的 Ordinals API 接口和参数后,开发者可以使用选择的编程语言编写 API 请求代码,设定 API 端点和请求参数,并使用 HTTP 请求库发送请求,处理 API 响应数据。例如,在 Python 中,可以使用 requests 库发送 GET 请求,设定 API 端点和请求头,并根据需要配置请求参数,最后处理并打印响应数据。
这里我们使用 Get an NFT collection “//btc/collections/{collection}” 检索 Collection 名称为 Bitcoin Frogs 的详情信息,HTTP GET 请求访问 NFTScan 的 API 接口,使用 Python 的 requests 库,可以这样构建请求:
评论