> For the complete documentation index, see [llms.txt](https://dust-20.gitbook.io/dust20/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dust-20.gitbook.io/dust20/readme.md).

# DUST-20 EXPERIMENT

### Idea <a href="#idea" id="idea"></a>

Experiment to see if it's possible to improve fungibility on bitcoin. By linking the dust limit (546 sats) to a token unit, bitcoin-native transfers of fungibles should make transfer inscriptions obsolete.

* Create a dust-20 with the deploy function
* Mint an amount of dust-20's with the mint function and proper padding.&#x20;
* Transfer an amount of dust-20 with proper UTXO management.\
  \
  dust-20 balance state can be found by aggregating and tracking "colored" UTXOs.\
  546 sats ("dust limit") is the amount of sats that represent a token unit.\ <br>

  ### Operations <a href="#operations" id="operations"></a>

  #### Deploy dust-20 <a href="#deploy-brc-20" id="deploy-brc-20"></a>

  **dust used for demo purposes in the docs. It has likely reached its max supply.**

  ```
  { 
    "p": "dust-20",
    "op": "deploy",
    "tick": "dust",
    "supply": "1000000",
    "unit_sats": "546",
    "max_sats": "546000000"
  }

  ```

  <br>

  <table><thead><tr><th width="101">KEY</th><th width="137">REQUIRED</th><th>DESCRIPTION</th></tr></thead><tbody><tr><td>p</td><td>yes</td><td>Protocol: Helps other systems identify dust-20 events.</td></tr><tr><td>op</td><td>yes</td><td>Operation: Type of event (Deploy, Mint).</td></tr><tr><td>tick</td><td>yes</td><td>Ticker: identifier of the dust-20, not limited to 4 bytes only.</td></tr><tr><td>supply</td><td>yes</td><td>Max Supply: set max supply of the dust-20.</td></tr><tr><td>unit_sats</td><td>yes</td><td>Unit Sats: the amount of sats representing 1 token unit.</td></tr><tr><td>max_sats</td><td>yes</td><td>Max Sats: supply * unit_sats</td></tr><tr><td>lim_sats</td><td>no</td><td>Limit Sats: Limit Sats per ordinal (eg: unisat's limit of 546*91= 49686 sats)</td></tr></tbody></table>

#### Mint dust-20 <a href="#mint-brc-20" id="mint-brc-20"></a>

**The given example takes into account Unisat's limit of 50000 sats padding per inscription.**\
**WARNING: The inscription sats padding MUST be equivalent to the "sats" value of the mint ordinal.**

```
{ 
  "p": "dust-20",
  "op": "mint",
  "tick": "dust",
  "amt": "91",
  "sats": "49686"
}
```

<table><thead><tr><th width="105">KEY</th><th width="147">REQUIRED</th><th>DESCRIPTION</th></tr></thead><tbody><tr><td>p</td><td>yes</td><td>Protocol: Helps other systems identify dust-20 events.</td></tr><tr><td>op</td><td>yes</td><td>Operation: Type of event (Deploy, Mint).</td></tr><tr><td>tick</td><td>yes</td><td>Ticker: identifier of the dust-20, not limited to 4 bytes only.</td></tr><tr><td>amt</td><td>yes</td><td>Amount: Amount of dust-20 to mint. Must respect lim_sats if specified in the deploy (amt * unit_sats ≤ lim_sats) </td></tr><tr><td>sats</td><td>yes</td><td>Sats padding of the inscription: amt * unit_sats</td></tr></tbody></table>

<figure><img src="/files/JCCy1u5e3Kil97GivkqW" alt=""><figcaption></figcaption></figure>

IMPORTANT!!! When inscribing, Sats In Item must be equivalent to the "sats" value of the mint inscription. \
\
**Transfer dust-20**\
\
A mint inscription locks an amount of sats equivalent to **amt \* unit\_sat** in a new UTXO.\
Those sats become "dyed" with a token. The purpose of a dust-20 indexer / wallet is to track, aggregate and manage those dyed sats and their respective UTXOs to retrieve balance changes.\
\
Let's suppose I have a UTXO mint inscription of 91 tokens with 49686 sats padding.\
To transfer 10 tokens from said UTXO , I would use it to broadcast a transaction that generates:\
\
a 5460 (546 \* 10 ) sats output to a receiver wallet\
a 44226 sats output to myself (49686-5460)\
\
A non-colored UTXO must be used to pay for network fees.\
\
**Development**\
\
<https://x.com/pinkbtcuniverse> is in the process of adopting the protocol with indexer,  merge/split function, deploy/mint/transfers, marketplace, and wallet integration.\
\
index: <https://tapwallet.io/index>\
deploy/mint: <https://tapwallet.io/inscribe/dust20>\
OG pass for 0 fees dust-20 operations: <https://tapwallet.io/launchpad>\
\ <br>
