Bitcoin 生トランザクションデコーダー

生トランザクションの hex または PSBT を貼り付けてください。すべての output はアドレスと金額に変換され、input アドレスはアンロックデータから導出され、txid、vsize、weight はローカルで計算されます。

署名済みでも未署名でも構いません。デコードはブラウザ内で実行され、どこにも送信されないため、これから署名する未署名トランザクションでも安全です。
例:

ブラウザ内で JavaScript によりデコードされます。アドレスがアップロードまたは保存されることはありません。

生の Bitcoin トランザクションとは

生の Bitcoin トランザクションは、version、input(前の txid と output インデックス、scriptSig、sequence)、output(satoshi 単位の金額と scriptPubKey)、任意の SegWit witness データ、locktime を hex でシリアライズしたものです。txid は witness データを除いたシリアライズのダブル SHA-256 で、PSBT(BIP-174)は未署名トランザクションを署名者に必要なメタデータと一緒に包んだものです。

結果の読み方

Output スクリプトの種類

種類scriptPubKey のパターンアドレス支出データ
P2PKHOP_DUP OP_HASH160 <20 bytes> OP_EQUALVERIFY OP_CHECKSIG1…scriptSig: 署名 + 公開鍵
P2SHOP_HASH160 <20 bytes> OP_EQUAL3…scriptSig の末尾が redeem script
P2WPKHOP_0 <20 bytes>bc1q…(42 文字)witness: 署名、公開鍵
P2WSHOP_0 <32 bytes>bc1q…(62 文字)witness の末尾が witness script
P2TROP_1 <32 bytes>bc1p…witness: 64 バイトの署名(キーパス)
OP_RETURNOP_RETURN <data>なし、使用不可該当なし

具体例: weight と vsize

P2WPKH の input 1 つと P2WPKH の output 2 つを持つトランザクションは、非 witness データが 113 バイト(version、input、output 2 つ、locktime)、witness データが約 110 バイト(marker、flag、72 バイトの署名、33 バイトの公開鍵)です。weight = 113 × 4 + 110 = 562 weight unit なので、vsize = ⌈562 ÷ 4⌉ = 141 vbytes です。10 sat/vB なら手数料は 1,410 sats です。同じ支払いをレガシーの P2PKH input から行うと約 226 バイトで、すべてフル weight で数えられ 226 vbytes になります。

生の hex の入手先

Bitcoin Core: getrawtransaction <txid> または createrawtransaction。Electrum と Sparrow: トランザクションを hex としてエクスポート。エクスプローラー: mempool.space と blockstream.info は /api/tx/<txid>/hex を提供しています。ハードウェアウォレットは署名を求められた PSBT を表示します。

アドレス単体の検証はBitcoin アドレスバリデーター、bech32 文字列の確認はbech32 デコーダーで行えます。

よくある質問

txid はどう計算されますか?

SegWit の marker と witness データを除いてシリアライズしたトランザクションのダブル SHA-256 を、バイト順を逆にして表示したものです。wtxid は witness を含む完全なシリアライズをハッシュします。どちらもノードに接続せずこのページで計算されます。

input のアドレスが表示されないのはなぜですか?

Taproot のキーパス支出は witness に署名しか含まず、公開鍵は使用される側の output にあり、このトランザクションには含まれません。非標準スクリプトも生の hex のまま残されます。その他の一般的な種類(P2PKH、P2SH でラップした SegWit、ネイティブ SegWit、マルチシグの redeem script)はすべて導出されます。

vsize とは何で、なぜ重要なのですか?

仮想サイズは weight ÷ 4 を切り上げたもので、手数料は仮想バイト単位で見積もられます。witness のバイトは 4 分の 1 として数えられるため、同じバイト長なら SegWit トランザクションのほうがレガシーより安くなります。

PSBT をデコードできますか?

はい。デコーダーは PSBT(バージョン 0)のグローバルマップを読み、未署名トランザクションを抽出してデコードします。部分署名やその他の input ごとのデータは解釈しません。

RBF とは何で、デコーダーはどう検出しますか?

Replace-by-fee(BIP-125)は、送信者が未確認のトランザクションをより高い手数料で再ブロードキャストできる仕組みです。少なくとも 1 つの input の sequence 番号が 0xfffffffe 未満のときにシグナルされます。デコーダーはすべての input の sequence を読み取り、シグナルをフラグ表示します。

Litecoin やテストネットに対応していますか?

ドロップダウンでネットワークを選んでください。変わるのはアドレスのプレフィックスだけです(1/3/bc1 → L/M/ltc1 または m/n/2/tb1)。トランザクションの形式は同一です。