一、这个 RPC 回答什么问题
钱包里躺着成千上万枚地址,但钱包对一枚地址的”了解”程度并不均匀:有的地址它握有私钥,有的它只认识脚本却花不动,还有的它纯粹是从交易记录里见过一面。getaddressinfo 就是对着单枚地址提问的窗口:把地址贴进去,它返回一份档案,说明这台钱包与这枚地址的真实关系。需要开一门钱包才查得到,查询本身不花钱、不上链。

二、关键字段逐个看
ismine 是最硬的一个答案:为真,说明这台钱包不仅认识这枚地址,还持有对应私钥,钱随时可花。iswatchonly 为真而 ismine 为假,说明钱包只旁观这枚地址的收支——常见于用扩展公钥建的观察钱包,或导入过多签脚本的情形。solvable 回答”这台钱包知不知道这种锁该按什么姿势解”,为真表示它至少认识脚本类型,即便没有密钥也能正确解析和记账;为假则钱包会把它当路人。desc 字段给出的描述符是新版钱包的身份证,从公钥来源到派生结构一句话说清,多签与脚本路径排查时最先看它。labels 是这台钱包给地址贴的标签,为空且 ismine 为假,基本可以判定它不是你的常规收款地址。timestamp 记录密钥池的生成起点,显示 early 时意味着密钥池比当前钱包默认策略更早,可能牵出派生间隙类的找回话题;ischange 提示这枚地址更像找零去向,对清理”钱去哪了”的疑问很关键。iswitness、witness_version 等字段则交代地址的编码类型,把 bc1 系列与脚本层身份对上号。
三、三类典型场景
场景一,找回旧币:多年前的地址突然在交易记录里出现,先查 ismine 与 solvable,再对照 timestamp,判断要不要 rescanblockchain 补扫描。场景二,核对陌生收款:有人声称给你转过账,iswatchonly 加 labels 能快速分辨”我们认识但归别人管”还是”完全素不相识”。场景三,排查找零地址:钱包余额莫名变动时,用 ischange 找出找零地址,再核对对应转账的归属,避免把找零当成被盗线索。
各版本返回字段有过调整,个别早期展示项已被描述符取代,请以所用版本的文档为准。
四、边界与提醒
getaddressinfo 只能回答”这台钱包怎么看这枚地址”,不能回答”这枚地址在全网范围安不安全”。它不校验地址是不是别人正在使用的收款码,也不预测该地址将来收到的钱能不能顺利花掉。查出来 ismine 为真,也不等于这笔钱没有任何托管或脚本约束,多签、时间锁等条件要看脚本本身。
一条实用纪律:把”查地址”当成排查链的第一环而不是最后一环。查到 iswatchonly 为真,继续追描述符归属;查到 solvable 为假,去确认它是否属于别的软件管的钱包。涉及资产的判断请结合转账记录与多重来源交叉确认,遇到异常动向先冻结操作再排查,不要边转边查。本文内容仅供信息参考,不构成投资建议。
五、和邻居命令的搭配
单看 getaddressinfo 有时会得出片面结论,值得搭配三邻居:listunspent 看这枚地址实际沉淀的 UTXO 与确认数,回答”钱在这里躺了多少”;listaddressgroupings 看钱包把哪些地址归为同一笔消费的输入组,理解聚类带来的隐私代价,但注意它只看本机记录,共享地址会误导归组;getreceivedbyaddress 则数”收到过多少”,它不看找零回流也不看归属,和余额不是一回事,三个数字对不上时先怀疑口径而不是账本。把这四问按顺序问完,绝大多数”地址到底怎么回事”的争议都能在十分钟内定性。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。