Walkthrough

Using BLOCK-20 without guessing

Three operations, one payload each, and one rule that decides whether a mint counted. This page walks each operation with the exact bytes, then covers what to check before funding and which Universe products can do what.

Mental model

Bitcoin stores the message. A reader decides the meaning.

Inscribing a BLOCK-20 payload does not create tokens. It publishes a claim. A reader replays every BLOCK-20 inscription in block order, applies the rules, and produces balances. The reader can reject your claim silently and your Bitcoin is still spent.

Deploy

Defines a ticker

Sets the identity, maximum supply, and per-mint limit. No tokens are created. The first valid deploy of a name wins forever.

Mint

Creates units, if proved

Names a Bitcoin block. The reader checks that block against the chain before crediting anything.

Transfer

Reserves, then settles

Inscribing reserves an amount. Moving the inscription decides where it lands.

Worked example 1

Deploying a ticker

Suppose you want a ticker called BLK with 21 million maximum supply and a 1000 unit cap per mint.

Inscription content73 bytes UTF-8
{"p":"block-20","op":"deploy","tick":"BLK","max":"21000000","lim":"1000"}

With an optional description:

With des108 bytes UTF-8
{"p":"block-20","op":"deploy","tick":"BLK","max":"21000000","lim":"1000","des":"Anchored supply experiment"}

What the reader does

  1. Confirms the content type and size, then parses the strict grammar. All five required fields are present, all values are strings, nothing repeats.
  2. Normalizes BLK to the identity blk. If blk, Blk, or BLK was already deployed, this inscription is ignored.
  3. Checks that lim (1000) does not exceed max (21000000).
  4. Records the deploy height as the block containing this inscription, and the deployer as the reveal owner.
  5. Creates the ticker with total, circulating, minted, and burned supply all at zero.

Casing is preserved for display but not for identity. Deploying BLK means nobody can later deploy blk. Choose the casing you want shown, because it is fixed at deploy and immutable afterward.

Worked example 2

Minting with an anchor

Say BLK deployed at height 767430, nothing has been minted yet, and you want 1000 units. The writer reads the current tip while creating your order. In this example the tip is block 767430, whose ID is the value below.

Inscription content128 bytes UTF-8
{"p":"block-20","op":"mint","tick":"BLK","amt":"1000","hash":"000000000000000000029730547464f056f8b6e2e0a02eaf69c24389983a04f5"}

Your reveal is mined at height 767500.

767430deploy and anchor block (A = D)
+70blocks pass while the order is funded
767500reveal block (R)

What the reader does

  1. Parses the payload and checks the exact field set for a mint: p, op, tick, amt, hash.
  2. Finds an active deployment for blk.
  3. Confirms amt (1000) does not exceed lim (1000). Equal is allowed.
  4. Confirms the hash is 64 lowercase hex characters.
  5. Asks a Bitcoin node for the height of that block ID and gets 767430, on the active chain.
  6. Checks 767430 >= 767430 (deploy bound, satisfied at the boundary), 767430 < 767500 (before the reveal), and 767500 minus 767430 = 70, which is inside the 144 block window.
  7. Remaining supply is 21000000, so the full 1000 is credited to your reveal address.

Run these exact numbers through the anchor verifier to see each step evaluated.

The failure mode to watch. If the same order sits unfunded and the reveal lands at height 767600 instead, the anchor is 170 blocks old, the freshness rule fails, and the mint credits nothing. The inscription still exists on Bitcoin, and the fees are still spent.

Worked example 3

Transferring a balance

You hold 1000 BLK and want to send 250 to someone. This takes two chain events.

Step 1: inscribe the transfer57 bytes UTF-8
{"p":"block-20","op":"transfer","tick":"BLK","amt":"250"}

Revealing this inscription creates a reservation. Your balance still reads 1000. Your available balance drops to 750, because 250 is now committed to that inscription.

Step 2: move the inscriptionan ordinary Bitcoin transaction
send the transfer inscription to the recipient's address

The first move settles the reservation. Three outcomes are possible:

Settlement outcomes for a transfer inscription holding 250 units.
What happens to the inscriptionYour balanceRecipientSupply
Sent to a supported address1000 becomes 750+250unchanged
Sent back to your own address1000, reservation releasednoneunchanged
Spent in transaction fees1000, reservation releasednoneunchanged
Burnt or sent somewhere unreadable1000 becomes 750nonetotal and circulating fall by 250, burned rises by 250

A transfer inscription is single use. After it settles, moving it again does nothing to any balance. If you want to send another 250, inscribe another transfer.

Before you fund

The review that actually prevents losses

Order creation puts nothing on Bitcoin. The payment starts the commit and reveal sequence, and after that nothing is reversible. This is the moment to catch a mistake.

Confirm the inscription

  • The operation is the one you intended.
  • The ticker spelling and capitalization match exactly.
  • Amounts, maximum supply, limit, and description match your intent.
  • A mint shows a 64 character lowercase block hash, identical in the order field and in the payload preview.

Confirm the payment

  • The receiving address is a Bitcoin address you control. An empty receiver falls back to a server-generated address.
  • The commit address and minimum amount match the open order.
  • The fee rate and payment window are acceptable to you.

Never share wallet secrets. BLOCK-20 never needs a seed phrase or a private key. Your wallet should only be asked to send the reviewed Bitcoin amount to the order's commit address.

Funding rules that are not optional

  • Send one dedicated output at or above the displayed minimum. Several smaller outputs are not combined.
  • Do not reuse a commit address for anything else, and do not pay an expired order's address.
  • Do not pay twice because a status is slow to update. Check your wallet transaction first.
  • Keep the order identity, payload preview, receiver, commit address, amount, expiry, and your wallet transaction ID until the reveal appears.

The lifecycle page explains each order status and what to do about it.

After the reveal

Checking that it counted

  1. Open the reveal transaction in a Bitcoin explorer and read the inscription content.
  2. Compare it byte for byte with the payload preview you saved.
  3. For a mint, note the reveal block height, look up the anchor hash to get its height, and run both through the verifier.
  4. Check the balance in a BLOCK-20 reader. Remember that a reader waits for confirmations and can revise recent history after a reorganization.

An inscription that exists on Bitcoin is not the same as a balance that exists in a reader. The test vectors show a range of inscriptions that are perfectly valid Bitcoin transactions and still credit nothing.

Product support

What supports BLOCK-20 today

This table lists only what is recorded in the Bitcoin Universe capability registry. Support that is not listed does not exist, and this page does not speculate about third-party wallets or marketplaces.

BLOCK-20 support across Bitcoin Universe surfaces.
Product surfaceCan doCannot do
Core explorer View tokens, discover, view collections, view activity, view transactions Any write or trade action
Wallet View balances, send, receive List, buy, sell, offer
Inscribe Build and broadcast deploy, mint, and transfer inscriptions Validate token rules; it emits payloads without checking supply, limits, or ticker existence
Marketplace Nothing Everything: there is no BLOCK-20 marketplace entry at all

BLOCK-20 is indexed, not tradeable. No Bitcoin Universe product implements listing, buying, offers, acceptance, or settlement for BLOCK-20. If you acquire a balance, the supported ways to move it are a wallet send or a transfer inscription. There is no in-house market, and this documentation makes no claim about markets elsewhere.

Third-party readers may disagree. Everything on this site describes the bitcoin-universe-block20-v1 profile. Another indexer that does not check the anchor against the active chain will show different balances for the same inscriptions. Ask any service you rely on which profile it implements.