Tool · Transactions

Transaction decoder

Paste a raw transaction and see what every byte means

Transaction decoder

Paste raw hex: every byte colored and explained

A typical payment: 1 input, 2 outputs (block 130,825) 205 bytes
010000000001015939557091bae792be66f26cbd83fc78f16a690a854109e8a1d115e253812133ab02000000ffffffff02b0359f1100000000225120d7ab02c96a342bdddb5d07b9f3ebd6c04e077ff41418110b9a1e5997439416b200c2eb0b0000000022512062e9da3682aab288392cf7218bafc36287288abb3ce200c5d1a50aa234073b2b01404686c7014749649b25555874c7772ecb7a44e85454893ed5888db11ebcdc82a22d74ce1a1671d02810f5ba1dca3277409e95a653ba9644099f7da26be7a86ba200000000
Hover or focus the bytes, or a row below, to name each field
All 19 fields
FieldBytesValue
Versionversion4@01int32 little-endian. Pearl wallets and pearld coinbases use version 1; relay policy accepts 1-2.
Markermarker1@40x00Segwit marker (BIP-144): says witness data follows the outputs.
Flagflag1@50x01Witness flag; 0x01 is the only value Pearl accepts.
Input countvin.length1@61CompactSize number of inputs.
Previous txidvin[0].txid32@733218153e215d1a1e80941850a696af178fc83bd6cf266be92e7ba9170553959The transaction being spent, stored byte-reversed (internal order); shown here in normal display order.
Output indexvin[0].vout4@39683Which output of that transaction is spent (uint32 LE).
scriptSig lengthvin[0].scriptSig.length1@430Always 0 for non-coinbase inputs in Pearl: every spend uses the witness instead.
Sequencevin[0].sequence4@440xffffffffFinal (0xffffffff): no RBF signal, no relative locktime, and locktime is ignored for this input. Pearl wallets use this.
Output countvout.length1@482CompactSize number of outputs.
Amountvout[0].value8@49295,646,640 grains (2.95646640 PRL)int64 little-endian, in grains (1 PRL = 100,000,000 grains).
Script lengthvout[0].scriptPubKey.length1@5734CompactSize length of the locking script.
Locking scriptvout[0].scriptPubKey34@58prl1p674s9jt2xs4amk6aq7ul867kcp8qwll5zsvpzzu6revewsu5z6eqv9d5z4OP_1 OP_PUSHBYTES_32 <output key Q>: a Taproot output.
Amountvout[1].value8@92200,000,000 grains (2.00000000 PRL)int64 little-endian, in grains (1 PRL = 100,000,000 grains).
Script lengthvout[1].scriptPubKey.length1@10034CompactSize length of the locking script.
Locking scriptvout[1].scriptPubKey34@101prl1pvt5a5d5z42egswfv7uscht7rv2rj3z4m8n3qp3w35592ydq88v4seuhn70OP_1 OP_PUSHBYTES_32 <output key Q>: a Taproot output.
Witness itemswitness[0].length1@1351Number of witness stack items for input 0.
Schnorr signature lengthwitness[0][0].length1@13664CompactSize length of this witness item.
Schnorr signaturewitness[0][0]64@1374686c7014749649b25555874c7772ecb7a44e85454893ed5888db11ebcdc82a22d74ce1a1671d02810f5ba1dca3277409e95a653ba9644099f7da26be7a86ba264-byte BIP-340 signature (R.x ‖ s) with SIGHASH_DEFAULT: a Taproot key-path spend.
Locktimelocktime4@20100: no time lock.
txidSHA256d without witness, reversed

d919e02a4adfd739ceef31d98803f0ddd24e1b1fa67b0fe572cdec42c1b384c9

wtxidSHA256d of everything, reversed

1e7d5c18e8982cd32f03a9c1409bb9c92d39dd4312cfffcf2ce9eb0c74e8ce30

Size
205 B
vsize
154 vB
137 + ⌈68 / 4⌉
Version
1
Locktime
0
Fee
7,915 grains
51.4 grains/vB
Total out
4.9564664 PRL

1 input

#0 Spends

33218153e2…9170553959 : 683

sequence 0xffffffff

  • Schnorr signature 4686c701…e7a86ba2 64 B

2 outputs

#0 2.9564664 PRL Taproot (P2TR, witness v1)

prl1p674s9jt2xs4amk6aq7ul867kcp8qwll5zsvpzzu6revewsu5z6eqv9d5z4

295,646,640 grains

#1 2 PRL Taproot (P2TR, witness v1)

prl1pvt5a5d5z42egswfv7uscht7rv2rj3z4m8n3qp3w35592ydq88v4seuhn70

200,000,000 grains

Runs in your browser · nothing is sent src/lib/tx.ts · real txs from mainnet

What it does

Pick one of eight real mainnet transactions, or paste raw hex from a node (getrawtransaction) or an explorer. The decoder splits it into fields, colors each one, and rebuilds the structure: who is spent, who is paid, and the witness that proves the spend was allowed.

How to read it

  • Hover or focus the bytes (arrow keys walk the fields) and the box under them names the field, its byte range, its value and what it does. Open All fields for the full table; click a row to jump to its bytes.
  • Hover an input or output card and all of its bytes light up together.
  • txid is SHA256d of the transaction without its witness; wtxid includes the witness. Both are shown byte-reversed, the way explorers print them.
  • vsize is the base size plus a quarter of the witness bytes, rounded up. Fees are paid per vbyte.
  • The fee is inputs minus outputs. A raw transaction doesn’t say what its inputs were worth, so the fee is only shown for the built-in examples.

Pearl specifics

  • Only three output types are valid at all: Taproot (prl1p…), P2MR (prl1z…) and OP_RETURN. The decoder flags anything else, which nodes would reject.
  • Spends use the witness only: a Pearl input’s scriptSig is empty except in the coinbase.
  • Pearl counts size in vbytes (limit 1,000,000 per block), not Bitcoin’s weight units. The vsize rule is the same arithmetic.
  • Every coinbase after genesis starts with its block height (BIP-34), and a block with witness data carries a witness commitment in an OP_RETURN output, as in Bitcoin.

Under the hood

Runs entirely in your browser: nothing you paste is sent anywhere. Parsing, txids and sizes come from src/lib/tx.ts, the same parser that draws the byte views across the codex. Its unit tests check every example here against the txid, size and vsize the Pearl Blockbook reports, plus hand-built test vectors with known signatures, control blocks and witness commitments.

Suggested

Up and down arrows move through the results, Enter opens one, Escape closes. Anywhere on the site, slash or Command K opens this search, and the square brackets [ and ] go to the previous and next page.