For the complete documentation index, see llms.txt. This page is also available as Markdown.

op-20

Read every word if you decide to test. These will be worthless. Use at your own risk

Concept

Experiment to see if op_return can facilitate fungibility on bitcoin

  • Create an op-20 with the deploy function

  • Mint an amount of op-20's with the mint function

  • Transfer an amount of op-20's with the transfer function.

op-20 balance state can be found by aggregating all of these function's activity together.

  • Deployments initialize the op-20. Do not affect state

  • Mints provide a balance to only the first owner of the mint function inscription (add field)

  • Transfers deduct from the senders balance and add to the receivers balance, only upon the first transfer of the transfer function.

Note

First inscription was recorded at block height

895524

With the deployment of op_return token

Getting a balance

You can either deploy your own or 'first is first' mint from existing deployments

  1. (Optional: Only do if you want to create your own op-20. If not go to step 2) embed the deploy function on op_return.

  2. Embed the mint function to your taproot compatible wallet. Make sure the ticker matches an op-20 that has yet to reach its fully diluted supply. Also, if the op-20 has a mint limit, make sure not to surpass this.

Transferring a balance

  1. Embed the transfer function to your taproot compatible wallet. Make sure the transfer function embed information is valid before inscribing.

Rules

  • The first deployment of a ticker is the only one that has claim to the ticker. Tickers are not case sensitive (DOGE = doge).

  • Use a valid ordinal compatible taproot address

  • If two events occur in the same block, prioritization is assigned via order they were confirmed in the block. (first to last).

  • The mint function and the second step of the transfer function are the only events that cause changes in balances

  • Number of decimals cannot exceed 18 (default)

  • The first mint to exceed the maximum supply will receive the fraction that is valid.

  • Only one op_return per transaction

Indexers

Operations

Deploy op-20

Field descriptions:

  • p: Protocol identifier, fixed as op-20.

  • op: Type of event (Deploy, Mint, Transfer)

  • tick: letter identifier of the op-20

  • max: set max supply of the op-20

  • lim: limit per mint

  • add: deployer address field

Mint op-20

Field descriptions:

  • p: Protocol identifier, fixed as op-20.

  • op: Type of event (Deploy, Mint, Transfer)

  • tick: letter identifier of the op-20

  • amt: Amount to mint: States the amount of the op-20 to mint. Has to be less than "lim" above if stated

  • add: States the address tokens are minted to

Transfer op-20

Field descriptions:

  • "p": Protocol identifier, fixed as op-20

  • "op": Operation type (transfer)

  • "tick": letter identifier of the op-20

  • "amt": Amount to transfer

Transfer Overview

This transfer inscription is bound to a specific UTXO. The recipient of the UTXO automatically becomes the new token holder. No separate "add" field is required, as the ownership is embedded in the UTXO. UTXO Merging for OP-20 When a transfer or bulk buy is created using multiple UTXOs as inputs:

  • The balances from each UTXO are summed.

  • The resulting output is a single UTXO holding the total combined amount.

Example: Inputs: UTXO #1: 300 tokens UTXO #2: 700 tokens Output: Recipient receives 1 UTXO with 1000 tokens. This model:

  • Reduces dust UTXOs

  • Simplifies wallet management

  • Optimizes marketplace and trading flows

Last updated