SATDUST

Bitcoin Mainnet

SATDUST

DUST-20 — each SATDUST locks 546 sats in a UTXO on L1.

More supply only after milestones and holder votes. Contributors whitelist mints first.

UTXO inventory built for BTC L1 swap

DUST-20 shapes a UTXO-native token: each accepted mint binds the asset to a fixed carrier of real sats. That SATDUST is swap inventory on Bitcoin L1 — spendable liquidity, not an empty indexer balance.

At mint, the BTC that backs the token must actually sit in the same output that carries it — 546 sats locked in that UTXO, not an indexer IOU. Afterward, moving SATDUST is mostly a normal Bitcoin spend of that UTXO, not a separate transfer inscription.


L1 swap architecture

Pool UTXOs, AMM curve, concurrent fills

01

Pool UTXO control

The pool holds BTC and SATDUST carrier UTXOs under a declared control path. Swaps spend and recreate those outputs atomically — inventory stays on L1, visible in the UTXO set.

02

AMM pricing curve

Price moves with every swap. A constant-product style curve (reserves stay on x·y = k) sets how much you get — the rule is fixed, the quote is not.

03

Concurrency

Parallel intents contend for the same pool UTXOs. Reservation, conflict drop, and retry keep fills serializable on L1 without freezing the whole market on one mempool race.


Mint path

Inscribe. Build the UTXO. Indexer says yes — or it never counted.

Bitcoin mainnet tx
   │
   ▼
Inscription (commit → reveal)
   │  dust-20 mint JSON
   ▼
Mint UTXO
   │  value == declared sats
   │  inscription offset == 0
   ▼
Indexer accept
   → SATDUST + spendable sats
   ▼
Transfer = spend that UTXO
  1. 1. Mint JSON — ticker, amount, and required sats.
  2. 2. Reveal — creates the 546-sat UTXO with the inscription at offset 0.
  3. 3. Acceptance — wrong sats or offset can confirm on Bitcoin and still fail as DUST.

Deploy

Supply and sats per token, locked once

SATDUST: 54,600 × 546 sats = 29,811,600 sats total.

{
  "p": "dust-20",
  "op": "deploy",
  "tick": "SATDUST",
  "supply": "54600",
  "unit_sats": "546",
  "max_sats": "29811600",
  "lim_sats": "546"
}
FieldValueMeaning
pdust-20Protocol
tickSATDUSTTicker (case ignored)
supply54600Max SATDUST
unit_sats546Sats per SATDUST
max_sats29811600supply × unit_sats
lim_sats546Per-mint sats cap

Transfer

Spend the UTXO. The asset moves with it.

No separate transfer inscription — and no op:transfer. You spend the carrier UTXO like any other Bitcoin output; the token moves with those sats. Mint price only on /mint. Swap migrates when the first mint batch completes.


Verify

A mint counts only if all of this holds

Prove
  1. Mainnet tx confirms
  2. Inscription is dust-20 / mint / SATDUST
  3. Amount × unit_sats equals declared sats
  4. UTXO value matches those sats
  5. Inscription offset is 0
  6. Deploy exists; supply not exceeded
  7. Indexer accepts
DUST-20 v1.1.0 · Bitcoin mainnet · Experimental. Not Bitcoin consensus; indexer-dependent.