# BRC-20s

### What Are BRC-20 Tokens?

**BRC-20** is an experimental token standard on Bitcoin that enables the creation and transfer of **fungible tokens**, inspired by Ethereum's ERC-20. It was introduced by a pseudonymous developer **Domo** in March 2023 and is built **on top of the Ordinals protocol**, using inscriptions to record token metadata.

Unlike native UTXO-based solutions (like Runes), BRC-20 relies on **off-chain indexers** to track balances and token states, as Bitcoin itself does not have smart contracts or internal token logic.

#### 🔧 How It Works

* BRC-20 uses **Ordinals inscriptions** to embed JSON files into Bitcoin transactions.
* There are three main operations:
  * **Deploy**: Create a new token with a name, max supply, and mint limit.
  * **Mint**: Generate token units up to the defined limit.
  * **Transfer**: Send tokens to another wallet by inscribing a transfer request.
* All actions are written as **text-based JSON** in **inscriptions**, not smart contracts.

#### 💡 Key Features

* **Built on Ordinals**: BRC-20 is an extension of the inscription system.
* **Not native to Bitcoin**: Depends on external indexers to function.
* **No on-chain state**: Token balances exist only through interpretation of inscriptions.
* **Fungible only**: Unlike classic Ordinals (NFTs), BRC-20 is meant for interchangeable tokens.

#### :x: Limitations

* **No native validation**: Bitcoin nodes do not understand BRC-20; rules are enforced off-chain.
* **Indexer dependence**: Token balances and state vary depending on which indexer is used.
* **Scalability concerns**: Heavy inscription usage can increase network congestion and fees.

BRC-20 showed that token experiments are possible on Bitcoin using Ordinals, but it is a **non-native workaround** that highlights the limitations of scripting on Bitcoin — and ultimately inspired more robust alternatives like **Runes**.

{% hint style="success" %}
For deployment, mint and trade of BRC-20s you can use [UniSat](https://unisat.io/inscribe).
{% endhint %}

### Create Transfer Inscription

{% hint style="warning" %}
Before transferring BRC-20s, you must first create a **transfer inscription,** where you define the transferable amount of tokens.
{% endhint %}

#### ➱ **Open the Asigna multisig app**

Navigate to the Asigna multisig app in your web browser: <https://btc.asigna.io/>

#### ➱ **Select the Vault**

On the homepage page select the Vault and open it by clicking the Vault preview card.&#x20;

#### ➱ **Access BRC-20s**

Navigate to the **Assets** section -> **BRC-20** tab, where you will find a list of the available **BRC-20 Tokens**.&#x20;

<figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2F5QmPMXi6xfwDn2X0ExoX%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%201.21.04%20PM.png?alt=media&#x26;token=207e00a2-c54b-4bbd-bba9-1dbf2a066287" alt=""><figcaption></figcaption></figure>

#### ➱ **Create a Transfer Inscription**

Select BRC-20 token for transfer and click **Send** button. In the appeared window click **Transfer** button.

<figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2F7lOccWSyULJptGHcBprJ%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%201.34.35%20PM.png?alt=media&#x26;token=e77b875e-ddae-4a39-897b-f26f815b4155" alt=""><figcaption></figcaption></figure>

Input the amount of BRC-20 token, you prefer to send. After the transfer inscription is created, this amount will be converted from available balance to transferable balance. Click **Next**.

<figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2F5EvkLjBKkahIlV0Xjuzo%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%201.37.02%20PM.png?alt=media&#x26;token=3b6e6375-aa5f-4bc2-9a9b-c0e358eb826e" alt=""><figcaption></figcaption></figure>

Choose from the **recommended fee options** or input a **custom fee**.

<figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2F0x7n8iYlkkSexretbjt8%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%201.45.36%20PM.png?alt=media&#x26;token=56f5c89c-dfed-4125-a5ee-b7db0365f021" alt=""><figcaption></figcaption></figure>

**➱ Payment Review and Confirmation**

There are two ways to pay for the **transfer inscription**:

1. With external wallet. Send the required amount to the provided address.

   <figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2F2AiCMJsOCp0UVGQeAtlQ%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%201.49.57%20PM.png?alt=media&#x26;token=67d9f1c1-7ce8-466f-b138-835cdeff95c9" alt=""><figcaption></figcaption></figure>
2. With Your Vault. Click **Pay with Vault** tab, then click **Next** button.

   <figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2Fj8gFlsyf0ovubG4KZwcI%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%201.50.06%20PM.png?alt=media&#x26;token=700b992f-1cdf-4e86-a764-12cc79cf43c0" alt=""><figcaption></figcaption></figure>

   Choose from the **recommended fee options** or input a **custom fee**, click **Confirm** button and confirm the transaction in the connected wallet.<br>

   <figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2Fr67il7EVDmjknEZnJmP5%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%201.54.42%20PM.png?alt=media&#x26;token=0b7a0055-109c-44d9-ba48-8473673dc0c9" alt=""><figcaption></figcaption></figure>

**➱ Transaction Execution**

Before the transaction is executed, it must be **signed by the required number of Vault owners**. Once the confirmation threshold is reached, locate this transaction in the **Transactions** section -> **Queue** tab and click the **Execute** button to start broadcasting of the transaction.

<figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2FZj9V7mvKeQgeCEFRINeb%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%203.11.59%20PM.png?alt=media&#x26;token=dae5cf22-3953-43d2-9f70-1287f082a8dc" alt=""><figcaption></figcaption></figure>

Wait for the transaction to be processed on the Bitcoin blockchain. Once the new transfer inscription is ready and available in your wallet in the Ordinals tab, proceed with the next step.

### Transfer BRC-20 Token

#### ➱ **Locate transferable amount:**&#x20;

Navigate to the previously inscribed BRC-20 token and click **Send** button. Locate the transfer inscription and click **Send** button.

{% hint style="info" %}
Transferable inscription allows to send only previously inscribed BRC-20 token amount as one transaction. This amount cannot be divided in several transfers with amounts that differ from the inscribed amount.
{% endhint %}

<figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2F5Z7Czr6KmjOFeLFK1aae%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%205.47.25%20PM.png?alt=media&#x26;token=71dbc109-cc59-40c9-adad-6994fce8cd67" alt=""><figcaption></figcaption></figure>

Add recipient address, choose from the **recommended fee options** or input a **custom fee**.

<figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2FF9uh0346ipub5jPTvCb5%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%205.48.59%20PM.png?alt=media&#x26;token=66e53e33-c5fb-4ac3-9a6d-b9368c156308" alt=""><figcaption></figcaption></figure>

<figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2FPOH93zImfElUOfh5EUQJ%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%205.49.08%20PM.png?alt=media&#x26;token=ce6cb7bf-e44a-4c80-98db-3381b2aa3c21" alt=""><figcaption></figcaption></figure>

**➱ Transaction Review and Confirmation**

Once the fee is set, you'll be able to **review** the transaction details. If everything is correct, click **Confirm** button and confirm the transaction in the connected wallet.

<figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2FM7caKWDTEMDYtQSJP6Nl%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%205.49.22%20PM.png?alt=media&#x26;token=7d5a0136-75b6-4722-af5f-bbb679f4157d" alt=""><figcaption></figcaption></figure>

**➱ Transaction Execution**

Before the transaction is executed, it must be **signed by the required number of Vault owners**. Once the confirmation threshold is reached, locate this transaction in the **Transactions** section -> **Queue** tab and click the **Execute** button to start broadcasting of the transaction.

<figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2FTGdcEszt5UrOeUDWIY71%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%205.49.43%20PM.png?alt=media&#x26;token=c01be791-2481-4eef-9f6d-b310bbf85510" alt=""><figcaption></figcaption></figure>

### Cancel Transfer Inscription

If you consider that the created transfer inscription of BRC-20 token is wrong or not relevant anymore, you can cancel it. In this case, the inscription will be marked as expired one, and BRC-20 tokens converted back from transferable to available balance.

#### ➱ **Locate transferable amount:**&#x20;

Navigate to the previously inscribed BRC-20 token and click **Send** button. Locate the transfer inscription and click **Cancel** button.

<figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2FajHNOBL4UQktXNyDI1L3%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%205.47.25%20PM.png?alt=media&#x26;token=680a0698-2a25-4e28-bf63-3bb4aa20b099" alt=""><figcaption></figcaption></figure>

**➱ Cancel Confirmation**

If everything is correct, click **Next** button.

<figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2FQQtLGTtjdxTQLArQAXPA%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%205.55.20%20PM.png?alt=media&#x26;token=7380e1e0-6996-468f-8130-2317415b440d" alt=""><figcaption></figcaption></figure>

Choose from the **recommended fee options** or input a **custom fee,** click **Confirm** button and confirm the transaction in the connected wallet.

<figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2FtWu4xdzEjAeNE3C6nZjH%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%205.55.28%20PM.png?alt=media&#x26;token=600b9e9a-084a-49c2-a7ad-0cc15dac42a7" alt=""><figcaption></figcaption></figure>

**➱ Transaction Execution**

Before the transaction is executed, it must be **signed by the required number of Vault owners**. Once the confirmation threshold is reached, locate this transaction in the **Transactions** section -> **Queue** tab and click the **Execute** button to start broadcasting of the transaction.

<figure><img src="https://254144762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLmUskow6Yg0G4jQRE0Lf%2Fuploads%2Fl8PuZv16nxZ5qWecDuef%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-04-11%20%D0%B2%205.55.50%20PM.png?alt=media&#x26;token=85f77171-7854-4fd9-8fd1-2c6d868c30c9" alt=""><figcaption></figcaption></figure>
