Managing BRC20s

The BRC-20 Token Standard

The BRC-20 token standard introduces an experimental approach to creating fungible tokens on the Bitcoin blockchain. Unlike the well-known ERC-20 standard used on Ethereum, BRC-20 tokens utilize ordinal inscriptions instead of relying on smart contracts. Instead, users can associate tokens with specific satoshis by storing a script file directly on the Bitcoin blockchain. The functionality of BRC-20 tokens involves deploying, minting, and transferring tokens by embedding JSON data into ordinal inscriptions.

The purpose of BRC-20 is to demonstrate the creation of off-chain balance states using inscriptions. In simpler terms, it replicates the concept of having a fungible token standard on Bitcoin Ordinals. Although the underlying mechanism may seem complex, it essentially involves a text file ordinal inscription that contains a tick representing the token's balance.

How BRC-20 Tokens Works

Basically we have 3 phases for the creation of a BRC20 token:

  1. Deploy (creation of BRC20 token)

  2. Mint (generation of the amount of tokens)

  3. Transfer (allows transfer from a sender to the recipient)

Deployment/mint/transfer is an inscription, i.e. the addition of metadata to a transaction. The saved data is in the ".JSON" format so it is text. This text will be inserted in the inscription and it will be seen as a normal transaction by the Bitcoin protocol.

When the deployment/mint/transfer function is confirmed by the network, the creator of the token receives at his own address (e.g. Asigna multisig safe address) the corresponding ordinal inscription with following metadata for each function:

Deploy: { "p": "brc-20", "op": "deploy", "tick": "publish0xtoken", "max": "2100000", "lim": "1000" } Mint: { "p": "brc-20", "op": "mint", "tick": "publish0xtoken", "amt": "1000" } Transfer: { "p": "brc-20", "op": "transfer", "tick": "ordi", "amt": "10" }

Deploy and Mint BRC-20 Tokens

As an example, for deployment and mint of BRC-20 tokens on the Bitcoin Testnet, we will use https://testnet.inscribable.xyz/. For deployment and mint of BRC-20 tokens on the Bitcoin Mainnet, you can use https://unisat.io/inscribe with similar deployment/mint flow.

Deploy

To deploy your own token:

➱ Navigate to https://testnet.inscribable.xyz/ in your web browser. ➱ Click on the BRC-20 tab, then on the Deploy tab.

➱ Choose fee rate, provide receiving address (Asigna multisig safe address), a tick of 4 symbols max, case-insensitive, max supply, and limit per mint.

➱ Click on the "Proceed to Inscribe BRC20" button.

➱ Pay for the inscription order.

Once the payment process is completed, you can locate a newly created mint inscription in the Collectibles tab and a newly added BRC-20 token with 0 balance in the BRC-20 tab of your Asigna multisig safe.

Mint

You can mint an existing token, or mint your own token, deployed in previous steps:

➱ Navigate to https://testnet.inscribable.xyz/ in your web browser. ➱ Click on the BRC-20 tab, then on the Mint tab.

➱ Choose fee rate, provide receiving address (Asigna multisig safe address), a tick of 4 symbols max, case-insensitive, amount.

➱ Click on the "Proceed to Inscribe BRC20" button.

➱ Pay for the inscription order.

Once the payment process is completed, you can locate a newly created mint inscription in the Collectibles tab and the BRC-20 token with minted amount in the BRC-20 tab of your Asigna multisig safe.

Transfer BRC-20 Tokens

To complete a BRC-20 transfer, You must first initiate an inscription, generating a unique inscription ID.

To initiate a transfer inscription:

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

Choose available BRC-20 Token: On the main safe page locate BRC-20 tab and choose available BRC-20 Token by clicking on it.

Create a transfer inscription: Click "Transfer" button.

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

➱ Choose fee.

➱ Pay for the inscription order with address or with your Asigna multisig safe.

In case you choose to pay with Asigna multisig safe, be ready to confirm the creation of transaction in your connected wallet.

➱ Locate this transaction in the Activity -> Queue tab and click on the "Execute" button to start broadcasting of the transaction.

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

To send BRC-20 Token:

Locate transferable amount: On the main safe page locate BRC-20 section and choose inscribed in previous steps BRC-20 Token by clicking on it.

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.

Send BRC-20 Token: Click "Send" button.

➱ Add receiving address, choose fee.

➱ Review and confirm.

➱ Confirm the creation of transaction in your connected wallet.

➱ Locate this transaction in the Activity -> Queue tab and click on the "Execute" button to start broadcasting of the transaction.

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.

To cancel transfer:

Locate transferable amount: On the main safe page locate BRC-20 section and choose inscribed in previous steps BRC-20 Token by clicking on it.

Cancel transfer of BRC-20 Token: Click "Cancel" button.

➱ Choose fee.

➱ Confirm the creation of transaction in your connected wallet.

➱ Locate this transaction in the Activity -> Queue tab and click on the "Execute" button to start broadcasting of the transaction.

Last updated