比特币RPC API中文手册

区块链API
GetBestBlockHash/获取链头区块哈希 GetBlock/获取指定哈希的区块 GetBlockChainInfo/获取区块链当前状态 GetBlockCount/获取区块数量 GetBlockHash/获取指定高度区块的哈希 GetBlockHeader/获取指定哈希区块头 GetChainTips/获取全部链头区块 GetDifficulty/获取出块难度 GetMemPoolAncestors GetMemPoolDescendants GetMemPoolEntry GetMemPoolInfo/获取交易池信息 GetRawMemPool/获取交易池详情 GetTxOut/获取交易输出信息 GetTxOutProof/获取交易在区块中的证据 GetTxOutSetInfo/获取交易输出集信息 PreciousBlock PruneBlockChain VerifyChain/校验本地区块 VerifyTxOutProof
节点控制API
GetRpcInfo/获取rpc服务器信息 Help Stop/关闭节点软件
区块构造与挖矿API
Generate/挖矿出块 GenerateToAddress/挖矿出块并奖励指定地址 GetBlockTemplate GetMiningInfo/获取挖矿信息 GetNetworkHashPS/获取全网哈希生成速率 PrioritiseTransaction SubmitBlock/提交区块
P2P网络通信API
AddNode ClearBanned DisconnectNode GetAddedNodeInfo GetConnectionCount GetNetTotals GetNetworkInfo GetPeerInfo ListBanned Ping SetBan SetNetworkActive
裸交易相关API
CreateRawTransaction/创建裸交易 FundRawTransaction/充值裸交易 DecodeRawTransaction/解码裸交易 DecodeScript/解码脚本 GetRawTransaction/获取指定裸交易 SendRawTransaction/广播裸交易 SignRawTransaction/签名裸交易
工具类
CreateMultiSig/创建多签地址与脚本 EstimateFee EstimatePriority GetMemoryInfo/获取内存利用信息 ValidateAddress/验证地址有效性 VerifyMessage/验证消息签名
钱包相关
AbandonTransaction/废弃交易 AddWitnessAddress/添加隔离见证地址 AddMultiSigAddress/添加多签地址 BackupWallet/备份钱包文件 BumpFee/提高交易手续费 DumpPrivKey/导出指定私钥 DumpWallet/导出钱包文件 EncryptWallet/加密钱包 GetAccountAddress/获取指定账户当前地址 GetAccount/获取指定地址所述账户 GetAddressesByAccount GetBalance/查询钱包余额 GetNewAddress/生成新地址 GetRawChangeAddress/生成新找零地址 GetReceivedByAccount GetReceivedByAddress/查询指定地址收币数量 GetTransaction/查询指定交易 GetUnconfirmedBalance/查询钱包未确认余额 GetWalletInfo/获取钱包信息 ImportAddress/导入地址 ImportMulti ImportPrunedFunds ImportPrivKey/导入私钥 ImportWallet/导入钱包转储文件 KeyPoolRefill/预填充密钥池 ListAccounts ListAddressGroupings/按地址分组查询余额 ListLockUnspent/获取锁定状态UTXO ListReceivedByAccount ListReceivedByAddress/按地址统计收币数量 ListSinceBlock/查询指定区块后发生的钱包交易 ListTransactions/查询最近发生的钱包交易 ListUnspent/查询钱包UTXO LockUnspent/锁定或解锁指定的UTXO Move RemovePrunedFunds SendFrom SendMany SendToAddress/向指定地址发送比特币 SetAccount SetTxFee/设置交易手续费率 SignMessage/签名消息 SignMessageWithPrivKey/用指定私钥签名消息 WalletLock/锁定钱包 WalletPassphrase/解锁钱包 WalletPassphraseChange/修改钱包密码

ValidateAddress/验证地址有效性

validateaddress调用返回指定比特币地址的相关信息。

参数

  • Address:地址

返回值

validateaddress调用返回关于指定地址的信息,其结构如下:

  • isvalid:是否有效
  • address:地址
  • scriptPubKey:公钥脚本
  • ismine:是否属于节点钱包
  • iswatchonly:是否watch-only地址
  • isscript:是否P2SH地址
  • script:P2SH地址的赎回脚本类型,可以是:
    • pubkey:P2PK脚本
      • pubkeyhash:P2PKH脚本
      • multisig:多重签名脚本
      • nonstandard:非标脚本
  • hex:P2SH地址对应的赎回脚本,仅对P2SH地址有效
  • addresses:P2SH脚本使用的地址数组
  • sigrequired:P2SH脚本需要的签名数量
  • pubkey:地址对应的公钥
  • iscompressed:公钥是否压缩格式
  • account:关联的钱包账户
  • hdkeypath:层级确定性密钥路径
  • hdmasterkeyid:层级确定性主密钥id

示例代码

下面的命令验证一个P2PKH地址:

~$ bitcoin-cli validateaddress 17fshh33qUze2yifiJ2sXgijSMzJ2KNEwu

输出结果如下:

{
    "isvalid": true,
    "address": "17fshh33qUze2yifiJ2sXgijSMzJ2KNEwu",
    "scriptPubKey": "76a914492ae280d70af33acf0ae7cd329b961e65e9cbd888ac",
    "ismine": true,
    "iswatchonly": false,
    "isscript": false,
    "pubkey": "0312eeb9ae5f14c3cf43cece11134af860c2ef7d775060e3a578ceec888acada31",
    "iscompressed": true,
    "account": "Test"
}

下面的命令验证一个多重签名的P2SH地址:

~$ bitcoin-cli -testnet validateaddress 2MyVxxgNBk5zHRPRY2iVjGRJHYZEp1pMCSq

输出结果如下:

{
    "isvalid" : true,
    "address" : "2MyVxxgNBk5zHRPRY2iVjGRJHYZEp1pMCSq",
    "ismine" : true,
    "iswatchonly" : false,
    "isscript" : true,
    "script" : "multisig",
    "hex" : "522103ede722780d27b05f0b1169efc90fa15a601a32fc6c3295114500c586831b6aaf2102ecd2d250a76d204011de6bc365a56033b9b3a149f679bc17205555d3c2b2854f21022d609d2f0d359e5bc0e5d0ea20ff9f5d3396cb5b1906aa9c56a0e7b5edc0c5d553ae",
    "addresses" : [
        "mjbLRSidW1MY8oubvs4SMEnHNFXxCcoehQ",
        "mo1vzGwCzWqteip29vGWWW6MsEBREuzW94",
        "mt17cV37fBqZsnMmrHnGCm9pM28R1kQdMG"
    ],
    "sigsrequired" : 2,
    "account" : "test account"
}