進階
錢包 RPC
Bitcoin Core 錢包相關 RPC 命令,包括地址生成、交易建立和簽名。
18 分鐘
錢包管理
Bitcoin Core 支持多錢包模式,每個錢包是獨立的密鑰和交易數據庫。 新版本使用描述符錢包(Descriptor Wallet),提供更好的備份和恢復能力。
創建與加載錢包
# 創建新錢包 bitcoin-cli createwallet "mywallet" # 創建描述符錢包(推薦) bitcoin-cli createwallet "mywallet" false false "" false true # 加載已有錢包 bitcoin-cli loadwallet "mywallet" # 卸載錢包 bitcoin-cli unloadwallet "mywallet" # 列出已加載的錢包 bitcoin-cli listwallets
錢包信息
# 獲取錢包信息
bitcoin-cli getwalletinfo
# 返回範例
{
"walletname": "mywallet",
"walletversion": 169900,
"format": "sqlite",
"balance": 0.01234567,
"unconfirmed_balance": 0.00000000,
"immature_balance": 0.00000000,
"txcount": 42,
"keypoolsize": 1000,
"paytxfee": 0.00000000,
"private_keys_enabled": true,
"avoid_reuse": false,
"scanning": false,
"descriptors": true
} 地址管理
生成地址
# 生成新地址(預設類型) bitcoin-cli getnewaddress # 指定地址類型 bitcoin-cli getnewaddress "" "legacy" # P2PKH (1...) bitcoin-cli getnewaddress "" "p2sh-segwit" # P2SH-P2WPKH (3...) bitcoin-cli getnewaddress "" "bech32" # P2WPKH (bc1q...) bitcoin-cli getnewaddress "" "bech32m" # P2TR (bc1p...) # 帶標籤 bitcoin-cli getnewaddress "savings" "bech32m" # 生成找零地址 bitcoin-cli getrawchangeaddress "bech32m"
地址信息
# 獲取地址信息 bitcoin-cli getaddressinfo "bc1q..." # 驗證地址 bitcoin-cli validateaddress "bc1q..." # 列出地址分組 bitcoin-cli listlabels # 獲取標籤下的地址 bitcoin-cli getaddressesbylabel "savings"
查看餘額與 UTXO
# 獲取總餘額 bitcoin-cli getbalance # 獲取各地址餘額(已棄用,改用 listunspent) bitcoin-cli getbalances # 列出未花費輸出 bitcoin-cli listunspent # 過濾 UTXO bitcoin-cli listunspent 6 9999999 '["bc1q..."]' # 特定地址 bitcoin-cli listunspent 1 9999999 '[]' true # 包含不安全的 bitcoin-cli listunspent 0 # 包含未確認的
發送交易
簡單發送
# 發送到地址
bitcoin-cli sendtoaddress "bc1q..." 0.001
# 帶手續費率
bitcoin-cli sendtoaddress "bc1q..." 0.001 "" "" false true 6 "unset" null false 10
# 發送給多個接收者
bitcoin-cli sendmany "" '{"bc1q...":0.001,"bc1p...":0.002}' 原始交易(完全控制)
# 1. 創建原始交易
bitcoin-cli createrawtransaction \
'[{"txid":"...","vout":0}]' \
'{"bc1q...":0.001,"bc1q...(change)":0.0089}'
# 2. 簽名交易
bitcoin-cli signrawtransactionwithwallet "<hex>"
# 3. 廣播交易
bitcoin-cli sendrawtransaction "<signed_hex>" PSBT 工作流程(推薦)
# 1. 創建 PSBT
bitcoin-cli walletcreatefundedpsbt \
'[]' \
'{"bc1q...":0.001}' \
0 \
'{"fee_rate":10}'
# 2. 簽名 PSBT
bitcoin-cli walletprocesspsbt "<psbt>"
# 3. 完成 PSBT
bitcoin-cli finalizepsbt "<psbt>"
# 4. 廣播
bitcoin-cli sendrawtransaction "<hex>" 提示: PSBT(部分簽名的比特幣交易)是多簽和硬體錢包整合的標準格式。 詳見 BIP-174。
交易歷史
# 列出所有交易 bitcoin-cli listtransactions # 限制數量 bitcoin-cli listtransactions "*" 10 # 最近 10 筆 # 獲取特定交易 bitcoin-cli gettransaction "<txid>" # 列出最近收到的 bitcoin-cli listreceivedbyaddress
手續費管理
# 設定錢包預設手續費
bitcoin-cli settxfee 0.00001 # BTC/kB
# 估算手續費
bitcoin-cli estimatesmartfee 6 # 6 區塊確認
bitcoin-cli estimatesmartfee 1 # 下一區塊
# RBF 加速交易
bitcoin-cli bumpfee "<txid>"
bitcoin-cli bumpfee "<txid>" '{"fee_rate":20}' 錢包備份與恢復
# 備份錢包
bitcoin-cli backupwallet "/path/to/backup.dat"
# 導出所有私鑰(僅限傳統錢包)
bitcoin-cli dumpwallet "/path/to/keys.txt"
# 導入私鑰
bitcoin-cli importprivkey "<wif>"
# 導出描述符
bitcoin-cli listdescriptors true # 包含私鑰
# 導入描述符
bitcoin-cli importdescriptors '[{"desc":"...","timestamp":"now"}]' 常用命令速查
| 命令 | 說明 |
|---|---|
| getnewaddress | 生成新地址 |
| getbalance | 獲取餘額 |
| listunspent | 列出 UTXO |
| sendtoaddress | 發送比特幣 |
| listtransactions | 交易歷史 |
| walletpassphrase | 解鎖加密錢包 |
| encryptwallet | 加密錢包 |
完整文檔:
使用 bitcoin-cli help <命令> 查看每個命令的詳細參數說明。
已複製連結