比特币区块高度查询工具:一键导出任意地址余额CSV
比特币区块高度查询工具:一键导出任意地址余额CSV
为什么需要区块高度与余额批量导出
链上数据公开,却分散在区块、交易、输出三层结构里。手动翻浏览器,只能看到单地址当前余额,无法回溯某一高度的快照,更无法把几百个地址的余额一次性装进表格。做审计、对账、空投快照、税务申报的人,常被这一步卡住。把区块高度、地址、余额三栏对齐成CSV,是后续跑脚本、做透视、交报表的前提。
工具定位:只干两件事
第一,输入任意区块高度,工具立即回放当时状态,给出那一刻的UTXO集合;第二,粘贴一批地址,点击导出,三秒内生成标准CSV,列名固定为height,address,balance_sat,单位聪,不带千位分隔符,方便直接丢进Excel或Python pandas。
技术实现:本地节点+索引裁剪
团队跑的是自建Bitcoin Core,开了txindex=1,同时写了一个轻量中间层,把区块高度映射到disk上的blk*.dat偏移量。查询时,只加载该高度的UTXO哈希表,不 replay 全链,硬盘I/O压到最低。对外提供HTTPS接口,返回JSON,也提供/stream路径,流式输出CSV行,内存占用恒定在30 MB以内,哪怕一次查五万个地址也不会把浏览器卡死。
使用流程:四步零配置
1. 打开网页,唯一输入框里填区块高度,支持最新高度自动回显,也可手动改。2. 把地址粘到下方文本区,一行一个,支持P2PKH、P2SH、Bech32、Taproot四种格式混排,自动识别。3. 点“导出CSV”,浏览器立即下载。4. 打开表格,balance_sat列除以1e8,就是BTC数量,全程不用注册,不碰私钥,不请求额外权限。
数据精度与一致性保证
工具读取的是本地节点回滚最少的确认块,高度一旦锁定,UTXO集合就冻结,不受重组影响。每一行余额都经过两次校验:第一次用gettxout接口拿未花费输出,第二次用自建索引重新累加,双通道数值必须相等才会写进CSV。若出现不匹配,接口直接报error,不会给脏数据。
速度实测
在千兆带宽、16线程服务器上,导出一千个地址,高度回退至六十万区间,CSV生成耗时1.8秒;五万个地址,耗时12.4秒,文件体积11 MB。浏览器端接收采用流式下载,用户无需等待全表生成即可开始保存,对网速低于50 Mbps的环境依旧友好。
隐私与合规
查询日志只保留高度与地址哈希,24小时后清库,不记录IP与User-Agent。对外接口加了频率限制:同一IP每十秒最多一次请求,超出返回429,防止批量爬取。源代码已放GitHub,供任何人编译验证,节点与脚本都可跑在完全离线的机器上,满足对隐私极端敏感的用户。
常见疑问
问:高度填错怎么办?答:重新输入正确高度再导一次即可,旧CSV自行覆盖。问:地址里有空格或Tab?答:前端自动过滤空白字符,无需手动清理。问:能否一次导出整个钱包的余额历史?答:目前只支持单高度快照,多高度需求可写脚本循环调用,高度步长自行控制,接口返回格式不变。
进阶玩法
把CSV拖进Google Sheets,用公式=SUMIF(A:A,选中高度,C:C)/1e8,可直接算出该高度下地址池总BTC。再配时间戳列,可画余额变化折线。开发者也可把接口嵌进Python,三行代码就能拉回整张表:
import requests,csv,io
r=requests.post(‘https://tool.example.com/stream’,json={‘height’:750000,’addresses’:[‘bc1…’]})
csv.reader(io.StringIO(r.text))
无需API Key,不限语言,零依赖。
下载与更新通道
网页版永久免费,源码仓库每周同步Core最新稳定版,若节点升级导致字段变更,工具会在区块高度滞后超过二时自动暂停服务,前端给出提示,防止用户拿到错位数据。更新记录公开可见,确保任何时候导出的CSV都与链上真实状态一致。
比特币链上数据没有撤回键,CSV里每一行都是那一刻的终局。工具把“查得到”变成“拿得走”,省下的时间拿去验证下一笔交易,或者干脆关掉电脑出门。链不会因为谁多看一眼而变慢,但操作的人可以轻松一点。