Raw transaction decoder
A raw transaction is a byte string with no field names, no delimiters, and no forgiveness. Every explorer and wallet shows you its interpretation of those bytes; this page shows you the bytes themselves, and names each one, for ten chains. Paste a transaction below, or start from one of the examples: the first Bitcoin one is the first Bitcoin payment ever made.
Nothing you paste leaves the page: no server, no analytics, no network request carrying your input anywhere. The page fetches one wasm file and goes quiet; you can verify that in your browser's developer tools.
What you are looking at
The left pane is the transaction exactly as it travels: the decoded bytes of whatever you pasted, hex or base64. The right pane is the same bytes with their meaning attached. Hover any decoded field and the bytes it came from light up, which is the fastest way to internalize a serialization format there is. Nothing here is looked up from a node or an API: addresses are derived, scripts disassembled, and hashes computed from the bytes alone.
That last point is the part worth trusting. A transaction id is not stored in
a transaction; it is a hash of it, and each chain hashes differently. Bitcoin
double-SHA-256s the serialization with witnesses stripped. Ethereum
Keccak-256s the envelope, and the sender is not stored either: the decoder
rebuilds the unsigned payload and recovers the from address from the ECDSA
signature with curve arithmetic. Cardano Blake2b-hashes just the body span.
Sui Blake2b-hashes the BCS bytes under a domain separator. When the id this
page computes matches what your explorer shows, the entire parse checked out
in your tab.
What it covers
Bitcoin: legacy, segwit and taproot serializations, script disassembly, standard template classification with address derivation on mainnet and testnet, witness annotation, BIP 125 and BIP 68 sequence interpretation, coinbase recognition with the BIP 34 height, and size, virtual size and weight.
Ethereum: all five envelopes (legacy with and without EIP-155, EIP-2930, EIP-1559, EIP-4844 blob-carrying, EIP-7702 set code), signed or unsigned, EIP-55 checksummed addresses, access and authorization lists, calldata with known selectors decoded (ERC-20, ERC-4626 vaults, the beacon deposit contract), and sender recovery.
Solana: legacy and v0 messages, account metas derived from the header, and instruction decoding for the System, Stake, Compute Budget and Memo programs, with warnings on authority changes, splits and withdrawals.
Cosmos SDK: one wire format covers Cosmos Hub (ATOM), Celestia (TIA), Osmosis (OSMO), dYdX, Injective (INJ), Sei, Kava, Fetch.ai (FET), Cronos POS (CRO), ZetaChain and every other Cosmos SDK network, because they all sign the same protobuf TxRaw. Staking, distribution, bank and authz messages are decoded by name; anything else fails closed to labeled raw bytes.
NEAR: the Borsh transaction with all eight action types, staking-pool call classification, TGas and NEAR conversions, and warnings on full-access keys and account deletion.
Tron: the protobuf raw_data that gets signed, with txid recomputation, base58check addresses, staking contracts (freeze, unfreeze, votes, withdrawals), TRX transfers, and TRC-20 calldata.
TON: the bag-of-cells container with per-cell structure, root cell hash, wallet v4 external messages and wallet v5 signed request bodies, internal transfers with amounts, friendly addresses, and text comments.
Cardano: a labeled CBOR tree covering inputs, outputs with ADA amounts and address types, fees, certificates (including Conway-era staking), and witness sets, with the transaction hash computed from the body span.
Sui: BCS TransactionData, bare or inside the fullnode’s SenderSignedData envelope, with programmable transaction commands, Move call targets, gas data, and the explorer digest computed from the bytes.
Tezos: forged operation bytes with reveal, transaction, delegation and origination decoded (fees, counters, entrypoints including the staking pseudo-entrypoints), plus the operation hash when a signature is appended.
Under the hood
The decoders are written in Zig and compiled to a 297 KB WebAssembly module,
with no dependencies beyond the Zig standard library: SHA-256, Keccak-256,
Blake2b and the secp256k1 curve arithmetic all come from std.crypto. The
page’s JavaScript moves your input into linear memory and draws the result;
parsing, hashing and signature recovery happen inside the wasm sandbox. The
same Zig code builds a native command line tool, so the exact decoder running
in your tab can also run air-gapped in a recovery drill, where pasting
key-adjacent material into a browser would be the wrong move. Every example
transaction on this page is pinned in the test suite, and where a chain’s
transaction id is computable from the bytes, the tests assert it against
chain data on every build.