Paste an extrinsic
Hex of a full signed (or unsigned) Quantus extrinsic — grab one from the Live blocks tab, the Chain Console, or a block explorer. Everything is decoded locally; nothing leaves your browser.
Samples are generated locally in your browser with fresh ML-DSA keypairs and labeled as lab samples — they are never broadcast.
Summary
Byte map
Anatomy
Call arguments
Signature verification
Re-derives the exact SignedPayload the runtime checks — call ‖ era ‖ nonce ‖ tip ‖ metadataHashMode ‖ specVersion ‖ txVersion ‖ genesisHash ‖ eraBirthHash, blake2-256 hashed when over 256 bytes — and verifies the ML-DSA signature under the chain's QUANTUS_EXTRINSIC context. Uses the extrinsic currently loaded in the Decode tab.
How verification works
- The decoder re-slices the exact call and era bytes from your pasted hex — no re-encoding, so the payload is byte-identical to what the signer signed.
- It rebuilds SignedPayload with the runtime's extension order (verified against runtime/src/lib.rs and sp-runtime).
- The payload is blake2-256 hashed iff it exceeds 256 bytes — the same rule the runtime applies.
- The ML-DSA signature is checked against the embedded public key with FIPS-204 context QUANTUS_EXTRINSIC. A forged or tampered extrinsic fails here.
Live block scanner
Connects to a Quantus node over WebSocket, pulls the latest finalized block, and runs every extrinsic through the local decoder. Default endpoint is the public RPC documented for the Mempool Desk.
Verified call reference
Every pallet index, call index, and argument layout the decoder understands — read from Quantus-Network/chain source (rev 482c5b9, 2026-09-30). Quantus ships custom pallet forks, so upstream Substrate defaults were not assumed.