psbt について
Bitcoin L1のPSBTワークフロー向けコマンドラインスキルです。手数料を見積もり、アンロック済みウォレットで入力に署名し、署名済みトランザクションをネットワークへ送信します。
主な機能
- 01速度別の手数料見積もり
- 02P2WPKHまたはTaproot鍵で署名
- 03署名する入力の選択
- 04署名済み入力の即時確定
- 05mempool.space経由でブロードキャスト
活用シーン
- 01PSBTのネットワーク手数料の見積もり
- 02マルチパーティ取引の入力への署名
- 03署名済みBitcoin取引のブロードキャスト
MCP 対応
入力情報では、PSBTはMCPツール `psbt_create_ordinal_buy` で作成できるとされています。このスキル自体はコマンドラインで実行します。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aibtcdev/ skills --skill psbtインストール後、Claude Code で/psbtを入力して読み込まれたか確認します。
同梱ファイルAGENT.mdpsbt.ts
詳細
PSBT スキル
Bitcoin L1 上で PSBT(部分署名済み Bitcoin トランザクション)の構築および署名操作を行います。PSBT を使用すると、Ordinals マーケットプレイスでの購入など、ブロードキャスト前に買い手と売り手の両方が署名する必要がある複数者署名のワークフローを実現できます。
- estimate-fee — PSBT の構造に基づいて、読み取り専用で手数料を見積もります。
- sign — アクティブなロック解除済みウォレットを使用して、1 つ以上の PSBT 入力に署名します(P2WPKH または Taproot キー)。
- broadcast — 署名が完了した PSBT を最終化し、mempool.space 経由で Bitcoin ネットワークにブロードキャストします。
使用方法
bun run psbt/psbt.ts <subcommand> [options]
サブコマンド
estimate-fee
指定された PSBT のネットワーク手数料を satoshi 単位で見積もります。トランザクション構造を解析し、vsize に基づいて高速、中速、低速の各手数料ティアの見積もりを算出します。
bun run psbt/psbt.ts estimate-fee --psbt <base64>
オプション:
--psbt <base64>(必須)— base64 形式の PSBT
出力:
{
"network": "mainnet",
"vsize": 253,
"inputsLength": 2,
"outputsLength": 3,
"feeEstimates": {
"fast": { "satPerVb": 12, "totalSats": 3036 },
"medium": { "satPerVb": 6, "totalSats": 1518 },
"slow": { "satPerVb": 2, "totalSats": 506 }
},
"currentFeeSats": "1200"
}
sign
アクティブなウォレットの BTC 秘密鍵(P2WPKH および/または Taproot)を使用して PSBT の入力に署名します。このサブコマンドを呼び出す前に、ウォレットのロックを解除しておく必要があります。
bun run psbt/psbt.ts sign --psbt <base64>
オプション:
--psbt <base64>(必須)— 署名する base64 形式の PSBT--inputs <indexes>(任意)— 署名する入力インデックスをカンマ区切りで指定します(省略した場合、署名可能なすべての入力に署名します)--finalize(任意)— 署名した入力をただちに最終化します(デフォルト:false)
出力:
{
"success": true,
"network": "mainnet",
"signedInputs": [1, 2],
"finalizedInputs": [],
"skippedInputs": [{ "index": 0, "reason": "no matching key for this input" }],
"psbtBase64": "<updated-base64>"
}
broadcast
署名が完了した PSBT を最終化し、mempool.space 経由で Bitcoin ネットワークにブロードキャストします。
bun run psbt/psbt.ts broadcast --psbt <base64>
オプション:
--psbt <base64>(必須)— 署名が完了した base64 形式の PSBT
出力:
{
"success": true,
"network": "mainnet",
"txid": "abc123...",
"explorerUrl": "https://mempool.space/tx/abc123...",
"txHex": "0200..."
}
注意事項
signを呼び出す前に、bun run wallet/wallet.ts unlockでウォレットのロックを解除する必要があります。- Ordinals 購入用 PSBT(MCP ツール
psbt_create_ordinal_buyで構築)の場合、入力インデックス 0 は売り手のインスクリプション UTXO です。買い手の入力はインデックス 1 から始まります。売り手でない限り、買い手の入力(インデックス 1 以降)のみ署名してください。 broadcastはtx.finalize()を呼び出します。すべての入力に署名が完了していない場合、エラーが発生します。estimate-feeの手数料見積もりは、PSBT の現在の vsize に基づきます。未署名のサイズではなく、署名済みトランザクションのサイズを反映します。
コメント
Markdown 対応