# BRC-20

### Important Links:

Domo's initial Twitter Thread\
<https://twitter.com/domodata/status/1634247606262964228>

Domo's Gitbook:\
<https://domo-2.gitbook.io/brc-20-experiment/>

## BRC-20: An Experimental Standard

BRC-20 is an experimental protocol aimed at developing off-chain balance states on the Bitcoin network using a protocol called Ordinals.

> :warning: **Disclaimer:** Read every word if you decide to test. These will be worthless. Use at your own risk.

### Key Features

* Facilitates creation and management of balances on Bitcoin.
* Encourages exploration of alternative designs and optimizations.
* Provides Deploy, Mint, and Transfer functions.
* Open to improvements and enhancements from the community.

### Functions

#### Deploy

Initializes the BRC-20 but doesn't affect the state.

```json
{
  "p": "brc-20",
  "op": "deploy",
  "tick": "ordi",
  "max": "21000000",
  "lim": "1000"
}
```

#### Mint

Provides the initial balance to the owner of the mint function inscription.

```json
{
  "p": "brc-20",
  "op": "mint",
  "tick": "ordi",
  "amt": "1000"
}
```

#### Transfer

Decreases the balance of the sender and increases that of the receiver.

```json
{
  "p": "brc-20",
  "op": "transfer",
  "tick": "ordi",
  "amt": "100"
}
```

### Balance Management

* To get a balance, deploy your own or mint from existing deployments.
* For transferring balances, inscribe the transfer function to an ordinal compatible wallet, ensuring that the transfer inscription details are valid.

#### Validity of Transfer Function

* A valid transfer function is required for transferring a balance.
* Validity depends on whether the inscription amount doesn't exceed the available balance when inscribed.
* If a user no longer wishes to transfer their transfer function, they can simply transfer the transfer function inscription to themselves to restore their available balance to the overall balance.

### Important Notes

* Do not send inscriptions to non-ordinal compatible wallet taproot addresses.
* Ensure transfer inscriptions are only used once.
* Minting transfer inscription to oneself first is necessary to prevent others from spending your balance.
* The system is limited to a maximum supply that cannot exceed the uint64\_max and the number of decimals cannot exceed 18.

### Open to Improvements

This protocol is open to improvements and design enhancements by anyone. The goal is to keep exploring the potential possibilities of Ordinals and establish a universally accepted standard in the future.


---

# 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://patches-1.gitbook.io/ordinals-standards-discussions/ordinals-standards-proposals/brc-20.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.
