ORC-20 is a standard that was developed as an improvement over the BRC-20 standard, aiming to address certain limitations such as security concerns, enhanced flexibility, and leveraging the UTXO model of Bitcoin. What are the notable features of this upgraded version compared to the old standard?

What is ORC-20?

ORC-20 is a standard for tokens running on the Bitcoin blockchain, represented as JSON (JavaScript Object Notation) files and recorded on the Satoshi using serial numbers, similar to BRC-20.

Developers of ORC-20 introduced this token standard as a solution to some of the limitations of BRC-20 by improving security and increasing flexibility. Additionally, ORC-20 expands on the scope of BRC-20 by supporting more data formats and leveraging the Unspent Transaction Output (UTXO) model of Bitcoin to eliminate the issue of double-spending.

In simple terms, ORC-20 can be seen as a hard fork of BRC-20.

However, it's important to note that ORC-20 is still in the testing phase, and there is no guarantee that tokens created according to this standard will have any specific value or utility. Therefore, users should exercise caution and conduct thorough research before using ORC-20.

For example, migrating an orc (inscription number #2504160) from BRC-20 to ORC-20 in a migration event:

{ "p": "orc-20", "tick": "harambe", "id": "2504160", "op": "deploy", "wp": "true" }

Upon completion, all tokens become ORC-20 tokens.

The improvements of ORC-20 compared to BRC-20 are as follows:

  1. Utilization of Ordinals: ORC-20 is built on Ordinals and the BRC-20 token standard. Therefore, ORC-20 aims to promote the adoption of Ordinals, allowing objects operating on this token standard to carry different types of data from the Bitcoin network. It enables users to deploy new ORC-20 tokens and migrate existing BRC-20 tokens.

  2. Implementation of UTXO Model: ORC-20 also implements the UTXO model to determine the origin and ownership rights of coins/tokens within the blockchain network by verifying the size and number of UTXOs moved on-chain. The UTXO process is similar to cash transactions. If you want to transfer 3 BTC but only have a 10 BTC UTXO in your wallet, you need to transfer the entire UTXO and receive approximately 7 BTC (minus fees) as a new UTXO (with a lower value).

New UTXO balance = Total initial UTXO - Amount sent to another address

  • Transaction fee for the blockchain

The UTXO model has several advantages, including:

  • Scalability and strong security.

  • Verification of the validity of transactions on the blockchain.

  • Each transaction output is used only once, after which the UTXO becomes an output for the next receiving address.

  • There are no accounts on the UTXO chain. Instead, coins are stored as a list of UTXOs created by using existing UTXOs and generating new UTXOs at the same position.

Based on the UTXO model, in each transfer, the sender specifies the amount the recipient will receive, and the remaining balance is returned to the sender. A sending transaction can transfer funds to multiple recipients, and the previous balance becomes invalid only when the new transaction is completed.

Guide to minting ORC-20 tokens

Step 1: Access and Connect

Access Unisat by visiting the following link: https://unisat.io/inscribe and click on "Connect" to connect your Unisat wallet to the interface. Choose "Inscribe" and "Text" to select the type of token you want to mint.

Step 2: Insert Code snippet

  1. Select the "Single" button.

  2. Paste the code snippet of your project (as shown in the image) into the empty field.

    { "p": "orc-20", "tick": "harambe", "id": "541992", "op": "mint", "amt": "100000" }

Then, click on "Next" to proceed.

Step 3: Payment and Transaction Completion

After completing Step 2, you need to select the gas fee based on different levels (Economy, Normal, and Custom). Once you have made your selection, click on the "Submit and Pay" button to proceed with the transaction payment.

You need to have a small amount of Bitcoin in your wallet to pay for the gas fees. Approximately $3 to $5 should be sufficient for covering the transaction costs.

Finally, confirm your wallet and complete the process.