# brc-20 examples

Please understand that this is an experimental standard, and know how it works before testing. Use at your own risk. Examples of balance changing events. Wallets tested with: Xverse.

#### Regular Examples <a href="#mint-1-ordi-to-yourself" id="mint-1-ordi-to-yourself"></a>

#### Mint 1 "ordi" to yourself <a href="#mint-1-ordi-to-yourself" id="mint-1-ordi-to-yourself"></a>

**ordi has already reached its maximum supply, example for demonstration purposes only.**

* Minter populates mint function with required information

{ "p": "brc-20", "op": "mint", "tick": "ordi", "amt": "1" }

* Inscribe the function to your own ordinal enabled wallet taproot address. **Make sure not using inscription service that mints to itself first.**
* You now have 1 "ordi"

| User   | Balance at start | Balance at end |
| ------ | ---------------- | -------------- |
| Minter | 0                | 1              |

#### Transfer 500 "ordi" to Satoshi's wallet <a href="#transfer-500-ordi-to-satoshis-wallet" id="transfer-500-ordi-to-satoshis-wallet"></a>

Satoshi wallet just an example. Can send to any ordinal compatible taproot address.

* Populate transfer function with required information

{ "p": "brc-20", "op": "transfer", "tick": "ordi", "amt": "500" }

* Inscribe the function to your own ordinal enabled wallets taproot address that holds the balance. **Make sure not using inscription service that mints to itself first. Some ordinal wallets generate a different address each time, make sure to send to the address that holds the balance.**
* Send the inscription from your wallet to Satoshi's ordinal enabled wallets taproot address (if he had one).
* Satoshi now has 500 "ordi"

| User    | Balance at start | Balance at end |
| ------- | ---------------- | -------------- |
| Sender  | 500              | 0              |
| Satoshi | 0                | 500            |

### VERY EXPERIMENTAL EXAMPLES, USE AT YOUR OWN RISK <a href="#very-experimental-examples-use-at-your-own-risk" id="very-experimental-examples-use-at-your-own-risk"></a>

#### Trade 250 "ordi" for 1 sat via escrow <a href="#trade-250-ordi-for-1-sat-via-escrow" id="trade-250-ordi-for-1-sat-via-escrow"></a>

**Do not recommend trading until trusted balance state index tool is available. As it stands there is no easy way of accurately checking if the seller has a valid balance. Escrow trust/error risks should also be considered.**

* Seller populates transfer function with required information

{ "p": "brc-20", "op": "transfer", "tick": "ordi", "amt": "250" }

* Seller inscribes the function to their own ordinal enabled wallet taproot address that holds the balance. **Make sure not using inscription service that mints to itself first. Some ordinal wallets generate a different address each time, make sure to send to the address that holds the balance.**
* Seller sends the inscription from their wallet to the escrows taproot address.
* Escrow checks **balance state index tool** to check their wallet has a valid balance
* Buyer sends 1 sat to escrows bitcoin address
* Escrow now has 1 sat and 250 "ordi"
* Escrow populate transfer function with required information

{ "p": "brc-20", "op": "transfer", "tick": "ordi", "amt": "250" }

* Escrow inscribes the function to their own ordinal enabled wallet taproot address that holds the balance. **Make sure not using inscription service that mints to itself first. Some ordinal wallets generate a different address each time, make sure to send to the address that holds the balance.**
* Escrow sends the inscription from their wallet to the buyers taproot address.
* Escrow sends 1 sat to sellers bitcoin address
* Buyer now has 250 "ordi"

| User   | Balance at start | Balance at end |
| ------ | ---------------- | -------------- |
| Seller | 250              | 0              |
| Buyer  | 0                | 250            |

#### Trade 250 "ordi" for 1 wei via emblem vault <a href="#trade-250-ordi-for-1-wei-via-emblem-vault" id="trade-250-ordi-for-1-wei-via-emblem-vault"></a>

**Do not recommend trading until trusted balance state index tool is available. As it stands there is no easy way of accurately checking if the emblem vault has a valid balance.**

* Seller populates transfer function with required information

{ "p": "brc-20", "op": "transfer", "tick": "ordi", "amt": "250" }

* Seller inscribes the function to their own ordinal enabled wallet taproot address that holds the balance. **Make sure not using inscription service that mints to itself first. Some ordinal wallets generate a different address each time, make sure to send to the address that holds the balance.**
* Seller creates emblem vault and populates title / description with transfer function details
* Seller mints the emblem vault
* Seller sends the inscription from their wallet to the emblem vaults taproot address.
* Emblem vault now has 250 "ordi"
* Seller lists emblem vault for 1 wei
* Buyer checks **balance state index tool** to check if emblem vault has valid balance
* Buyer buys emblem vault for 1 wei
* Buyer now has control of emblem vault. **If buyer wants to move balance from emblem vault**, buyer unlocks vault.
* Buyer imports private keys to an ordinal compatible wallet
* Buyer populates transfer function with required information

{ "p": "brc-20", "op": "transfer", "tick": "ordi", "amt": "250" }

* Buyer inscribes the function to the imported ordinal enabled wallet taproot address that holds the balance. **Make sure not using inscription service that mints to itself first. Some ordinal wallets generate a different address each time, make sure to send to the address that holds the balance.**
* Buyer sends the inscription from their wallet to the desired destinations taproot address.
* Desired destination now has 250 "ordi"

| User   | Balance at start | Balance at end |
| ------ | ---------------- | -------------- |
| Seller | 250              | 0              |
| Buyer  | 0                | 250            |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bitcoints.org/brc-20-examples.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
