通过 RPC 获取任何比特币地址的余额

·

核心关键词:比特币地址余额、Bitcoin RPC、UTXO 查询、XPub 余额、bb_getAddress

本指南只需三分钟即可让你在 不创建钱包 的情况下,快速查到任一比特币地址的 实时余额、收款金额、支出金额以及最新交易 ID

为什么选择 RPC 而不是 watch-only 钱包?

自建比特币全节点时,最常见的做法是给陌生地址创建 只读钱包 (watch-only)。但弊端随之而来:

为了彻底解决可扩展性问题,QuickNode 推出了 BTC Blockbook JSON-RPC 插件。该插件把索引压力交由后端集群,自己无需再为每个地址建立本地关系表。插件提供 3 组核心方法:

方法功能简述
bb_getUTXOs拉取地址或 XPub 的 未花费交易输出
bb_getXPUB一次返回 XPub 或描述符的 余额与交易历史
bb_getAddress查询单一地址的 余额与按区块高度降序排序的交易

本文专注讲解最常用的 bb_getAddress

👉 点击立即体验一键式比特币节点托管,告别自建繁琐

术语热身:XPub、UTXO、Satoshi

创建你的比特币 RPC 端点

  1. 登录控制台 → 选择 Bitcoin Mainnet
  2. 进入 Marketplace 搜索 Blockbook JSON-RPC Add-on 并勾选,需升级到付费套餐。
  3. 成功创建后复制 HTTPS RPC Endpoint URL

👉 查看当前套餐对比并立刻领取优惠

动手实战:命令行调取 bb_getAddress

打开终端,将下方命令中的 YOUR_RPC_URL 替换为你的 HTTPS endpoint:

curl YOUR_RPC_URL \
  --header 'Content-Type: application/json' \
  --data '
    {
      "method": "bb_getAddress",
      "params": [
        "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
        {
          "page": 1,
          "size": 10,
          "fromHeight": 0,
          "details": "txids"
        }
      ]
    }
  '

结果字段速读

示例输出(经过 jq 美化):

{
  "balance": "7263430323",
  "totalReceived": "7263430323",
  "totalSent": "0",
  "txids": [
    "8b6d6…",
    "77acb…"
  ]
}

浅算一下:balance ÷ 1 亿 ≈ 72.63430323 BTC

DEBUG 小贴士:实时日志

在 QuickNode 控制台的 Logs 页签,可看到每条 RPC 的耗时、返回大小及错误码,调试效率大幅提升。日志保留时长取决于所选套餐。

进阶玩法


常见问题与解答

Q1: 地址不存在会报错吗?
A:不会。接口会把余额、收款、转出均设为 0,并返回空交易列表。

Q2: 请求频率有什么限制?
A:采用 “按套餐 RPS” 限制;需扩容可直接升级套餐,秒级生效,不中断业务。

Q3: Satoshi 与 BTC 如何快速转换?
A:简易除法:Satoshi ÷ 100,000,000 = BTC;反之乘一亿。离线项目可用 sats-to-btc 库一键转换。

Q4: 我能用 JavaScript 吗?
A:当然可以。安装 axios 后,用同参数 POST 即可。Node.js 示例已放在官方文档。

Q5: 支持测试网 Testnet 吗?
A:支持。创建端点时选择 Bitcoin Testnet,其余调用完全一致。
(温馨提示:Testnet 币想多少就有多少,调试时用足“空转”啦)