{"author":{"address":"0x7401a7C392f19d168F9D8781BA86E351ec732B86","user":"https://learnblockchain.cn/people/10111"},"content":{"body":"![IMG_3832.JPG](https://img.learnblockchain.cn/attachments/2024/07/l765leUF66879afa0158c.JPG)\r\n\r\nRunes 与 Ordinals一样，为比特币网络带来了全新的可能性。相比 BRC-20，它提供了更为高效的代币化解决方案。与一些协议的多层次性质不同，Runes 设计优雅简单。通过在交易中使用 OP_RETURN，它促使将代币分配给特定的 UTXO，具有输出索引、代币数量和代币 ID。这种简化的机制不仅易于理解，而且在操作中效率高。\r\n\r\n根据 Bitcoin-runes NFTScan 的数据显示：截至 7 月 5 日，Bitcoin 网络上铸造的 符文共累计交易额 6,498.45 btc，目前市值 33,201,612,224.75 btc，一共发行 Runes 符文 86,850 个，有过交互的钱包地址 1,036,982 个。\r\n\r\n\r\nRunes NFTScan：https\\://btc.nftscan.com/runes​\r\n\r\n\r\n![r1.png](https://img.learnblockchain.cn/attachments/2024/07/WpoWlbGv668799d3b437f.png)\r\n\r\n\r\n**创建 NFTScan 开发者账号**\r\n\r\n在开始使用 NFTScan API 之前，首先需要访问开发者网站并创建一个账户。前往 NFTScan 官方网站点击 NFTScan API “Sign Up”按钮进行注册。\r\n\r\nhttps\\://developer.nftscan.com/user/signup\r\n\r\n\r\n![nn2.png](https://img.learnblockchain.cn/attachments/2024/07/1v20Hsmo668799e015889.png)\r\n\r\n登录后在 Dashboard（面板）上找到自己独有的 API KAY，将其复制。访问 API 文档，将自己的 API KEY 输进 API 文档的相应位置。根据文档的指引，就可以开始使用 API 服务了。在 API 文档中，开发者可以找到多种可供选择的接口模式，根据需求来选择最合适的接口。\r\n\r\n\r\n![8.png](https://img.learnblockchain.cn/attachments/2024/07/o2irFuAD668799ecb4b4d.png)\r\n\r\n在 Dashboard 中，开发人员还可以查看自己 API 使用情况的统计数据，帮助记录历史使用数据。不仅如此，NFTScan 还为每位注册开发者提供 1M CU 的 API 调用服务，用于请求所有的 NFT API 接口，并且 CU 永不过期，用完为止！\r\n\r\n\r\n\r\n**查看** **Runes API 文档**\r\n\r\n\r\n在成功注册开发者账号获取 API Key 后，需要查看 NFTScan API 文档。API 文档包含了所有可以使用的 API 端点和参数，以及如何构建请求和处理响应的详细信息。请认真阅读 API 文档，并确保理解如何使用 API 来获取您需要的数据。NFTScan API 服务致力于帮助开发者改善获取 NFT 数据分析体验。\r\n\r\nNFTScan 目前拥有全网最大最全的 NFT Collection 库，已支持 Ethereum、Solana、BNBChain、Bitcoin、Mint 等 24 条区块链的 NFT 全量数据，所涵盖的 NFT 数据全、种类丰富，提供一整套的接口来获得 ERC721、ERC1155、ERC404、ERC6551 资产以及交易、项目、市场统计等信息，现在支持 60 多个针对 EVM 兼容链的公共接口，以及针对 Solana、Aptos、Bitcoin、TON 的一批相同模型的接口，很大程度上满足了开发者索引多种类型的 NFT 数据的需求。\r\n\r\n\r\n![11.png](https://img.learnblockchain.cn/attachments/2024/07/yD9CcWQe66879a0901f70.png)\r\n\r\n**Ordinals API 模型**\r\n\r\n主要包括了以下三个模型接口，包括里面一些 API 核心的字段的整体介绍和说明，方便开发者知道怎么去获取数据利用这些信息服务于自己正在构建的 Dapp 服务。\r\n\r\n**Assets API**：\"Assets\"是 NFT 中最关键的数据字段，用于唯一标识和描述数字资产。开发者可以通过提取链上 NFT 的\"Assets\"数据来获取全面的了解，并构建相关应用。\"Assets\"对象提供了数字资产的唯一标识以及其整个生命周期的数据，为开发者理解和应用 NFT 提供了基础。\r\n\r\n**Transactions API**：交易模型代表了区块链上一个 NFT 资产的全量交易数据，为开发者提供 NFT 的完整生命周期交易信息。包括 NFT 的 mint、转移、销售、和其他交易活动，为开发者提供了深入了解 **Runes** 在 Bitcoin 生态系统中的流动过程的机会。NFTScan 不断地汇总来自各个区块链网络的 NFT 交易市场和相关交易合约信息，目前 NFTScan 已收录用于追踪和了解 NFT 市场的动态，同时也有助于开发者构建基于 NFT 的应用程序和工具。\r\n\r\n**Collections API**：NFTScan 获取与 NFT Collections 相关的描述、社交媒体及其他基本信息等链下数据。NFTScan 通过各个区块链网络中最主流的 NFT 市场提供的 API 获取这些信息。此外当前地板价信息是基于 NFT 市场的订单信息的集中式数据，也是通过 API 可获取的。\r\n\r\n\r\n![r2.png](https://img.learnblockchain.cn/attachments/2024/07/QHPz8YPx66879a4206e1e.png)\r\n\r\n\r\n**1/ Retrieve Rune 系列**\r\n\r\n* Get a rune（通过符文名称或 ID 检索 Rune 信息）\r\n* Search runes（通过在请求正文中应用搜索过滤器来返回符文列表的信息。符文按照符文编号从小到大的顺序排列。）\r\n\r\n这里我们通过 Get a rune，接口路径为“/btc/rune/{rune}”来检索用于获取关于特定 Rune 的详细信息，路径参数包括 RuneName 或 RuneId 作为选择，这里我们检索符文 DOG•GO•TO•THE•MOON 的详情信息：\r\n\r\n![r3.png](https://img.learnblockchain.cn/attachments/2024/07/qbA2k6pa66879a5d2f468.png)\r\n\r\n**2/ Retrieve Rune Balances 系列**\r\n\r\n* Get owners by rune（返回一组与指定 Rune 相关的持有者信息）\r\n* Get runes by account address（该接口根据账户地址查询该地址拥有的所有 Rune 信息）\r\n* Get single rune by account（该接口返回指定地址拥有指定符文信息）\r\n\r\n这里我们通过 **Get owners by rune** 接口，接口路径为：“/btc/rune/balance/{rune}”，检索符文 DOG•GO•TO•THE•MOON 的持有者信息，查询参数字段可供选择包括 cursor/limit/sort_direction：\r\n\r\n![r4.png](https://img.learnblockchain.cn/attachments/2024/07/MMDrfRKu66879a6fcb5b6.png)\r\n\r\n**3/ Retrieve Rune Transactions 系列**\r\n\r\n* Get rune transactions by account（该接口返回某个帐户地址的符文交易列表，交易按时间戳降序排序。）\r\n* Get transactions by rune（该接口返回某符文交易列表，交易按时间戳降序排序）\r\n* Get transactions by transaction ID（通过在请求正文中应用搜索过滤器来返回符文交易列表。交易按时间戳降序排序）\r\n\r\n这里我们通过接口 Get transactions by rune 接口路径“/btc/rune/transactions/{rune}” ，查询参数可选择交易的事件类型（**Etch/Mint/Transfer/Sale/Burn**），使用 ';' 分隔多个事件。检索 DOG•GO•TO•THE•MOON 的 **Transfer** 类型详情信息：\r\n\r\n![r5.png](https://img.learnblockchain.cn/attachments/2024/07/eKyFT7iR66879a8f84e42.png)\r\n\r\n**构建相关 API 请求**\r\n\r\n一旦在 NFTScan 的 API 文档中找到所需的 Runes API 接口和参数后，开发者可以使用选择的编程语言编写 API 请求代码，设定 API 端点和请求参数，并使用 HTTP 请求库发送请求，处理 API 响应数据。例如，在 Python 中，可以使用 requests 库发送 GET 请求，设定 API 端点和请求头，并根据需要配置请求参数，最后处理并打印响应数据。\r\n\r\n这里我们使用 Get a rune，接口路径为“/btc/rune/{rune}”来检索符文 DOG•GO•TO•THE•MOON 的详情信息，HTTP GET 请求访问 NFTScan 的 API 接口，使用 Python 的 requests 库，可以这样构建请求：\r\n\r\n```\r\nimport requests\r\n\r\n# Define the base URL of the API\r\nbase_url = 'http://api.nftscan.com'\r\n\r\n# Define the identifier for the rune\r\nrune_identifier = 'DOG•GO•TO•THE•MOON'  # This should match the exact identifier used in the API\r\n\r\n# Construct the complete API request URL\r\nurl = f'{base_url}/btc/rune/{rune_identifier}'\r\n\r\n# Send an HTTP GET request and retrieve the response\r\nresponse = requests.get(url)\r\n\r\n# Check the response status code\r\nif response.status_code == 200:\r\n    # Parse the JSON response data\r\n    rune_details = response.json()\r\n    # Handle the rune details as needed, for example, printing them\r\n    print(rune_details)\r\nelse:\r\n    print(f'Error: {response.status_code}')\r\n\r\n```","title":"如何使用 Runes API 在 Bitcoin 网络上开发 Web3 应用"},"history":null,"timestamp":1720163076,"version":1}