DUST-20 REV 1.1.0

DUST-20 documentation

Decoder and conformance runner

Paste a payload. Every rule is checked in your browser.

Protocol
DUST-20Registry id dust20, alias dust-20
Chain
BitcoinNetwork: mainnet
Ownership model
UTXOUnits are carried by satoshis in unspent outputs
Carrier
Inscription + spendDeploy and mint are inscribed; movement is a spend
Decimals
0Balances are whole units only
Document version
1.1.0Revised 2026-09-01
Lifecycle
ExperimentalNot a ratified multi-party standard
Owning repository
bitcoinuniverseio/dust-20Documentation source of truth

D.1 Payload decoder

Paste DUST-20 inscription content. The decoder shows the byte map of the payload, checks every field against the numbered rules with exact integer arithmetic, and explains any rejection in terms of the rule that caused it.

Nothing you paste leaves this page

This tool is a static ES module running in your browser. It makes no network request except to fetch conformance.json from this same origin when you press Run. There is no logging, no analytics, no storage of what you type, and no key handling of any kind. Reading the source is the fastest way to confirm that: assets/tool.js and assets/protocol.js.

Input

Bitcoin mainnet
UTF-8, at most 4096 bytes, a single flat JSON object whose values are all strings.

Resolution context

A mint cannot be checked without the deployment it resolves against, and a mint output value cannot be checked without the real output. Supply them here to exercise rules DUST-6.2, DUST-6.5, DUST-6.6 and DUST-6.7.

D.2 Deploy and mint builders

Derive the arithmetic fields rather than typing them. The builders compute max_sats and sats with exact integers, which is the whole point: a builder that uses floating point produces a payload that looks right and is rejected.

Deploy builder

IDLE

Mint builder

IDLE

D.3 Conformance runner

Run every published test vector against the decoder in this browser. A vector passes when the observed outcome and issue code match the published expectation exactly. The same vectors are asserted by the Node test suite in test/protocol.test.mjs.

Runner

Loads conformance.json from this origin and executes each case with assets/protocol.js. No result is transmitted anywhere.

The full vector list, with the input, the expected outcome, the issue code and the numbered rule each case exercises, is published as static HTML on the test vectors page and as JSON at conformance.json.