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 mainnetResolution 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.