The proof in a mint

The mint anchor

Every BLOCK-20 mint carries a hash: the 64 character ID of a Bitcoin block. The writer picks it. The reader tests it. If the test fails, the mint credits nothing, no matter how well formed the rest of the payload is.

144

Default freshness window, in blocks, between the anchor and the reveal

Where it comes from

The writer captures a tip, once

When Bitcoin Universe Inscribe creates a mint order, it reads the current chain tip from its configured block source and writes that block ID into two places: the order's blockHash field and the payload's hash field. The value is chosen before funding, before payment detection, before reveal, and before any confirmation. The writer does not refresh it later, and the caller cannot supply it through the order API.

1Order created. Writer reads the tip and embeds its hash.
2You review the payload and fund the commit output.
3Reveal is broadcast and mined. The anchor is unchanged.
4A reader tests the anchor against the chain and decides.

Because the tip is always mined before the later reveal block, an ordinary order satisfies the ordering rule naturally. The rule that ordinary orders actually fail is freshness: if an order sits unfunded, or the reveal is delayed, the captured tip can drift more than 144 blocks behind the block that finally reveals the mint. At that point the mint is inscribed on Bitcoin and credits nothing.

The anchor is not what most people assume. It is not the block that confirms the reveal, not a transaction ID, not txid:vout, not an inscription ID, not a numeric height, not a Merkle root, not a payload digest, and not the previous block hash. It is the block ID of a block the writer observed as the tip while building the order.

What a reader does

The derivation, in order

The reader evaluates these steps in sequence and stops at the first failure. Nothing is partially credited on failure.

Anchor derivationH = hash, R = reveal height, D = deploy height, W = window
1  H matches ^[0-9a-f]{64}$                          R6.4
2  A := height of the block whose ID is H,
      resolved against the active chain               R6.5
3  A >= D    anchor at or after deployment            R6.6
4  A <  R    anchor strictly before the reveal        R6.7
5  R - A <= W   anchor inside the freshness window    R6.8
6  remaining := max - minted; if <= 0 the mint is
      ignored and produces no event                   R6.9
7  credited := min(amt, remaining)                    R6.10

Step 2 is the one that needs a node

Resolution succeeds only when a Bitcoin node knows the header, the header has at least one confirmation, and the block currently at that height hashes to the same value. An orphaned block fails the third condition even though the header exists.

Boundaries are exact

A = D is valid. A = R is not. R - A = 144 is valid at the default window. R - A = 145 is not.

The window is a reader setting

144 blocks is the reference default. An operator may configure any value from 1 to 10000, so a mint near the boundary can be accepted by one reader and rejected by another. Treat the boundary as a risk zone, not a guarantee.

Tool

Mint anchor verifier

Paste the exact inscription content and the block data around it. The tool reproduces the payload grammar and the whole anchor derivation in your browser and explains each step. Reader profile bitcoin-universe-block20-v1, Bitcoin mainnet rules.

What this tool cannot do, and why. Step 2 of the derivation asks a Bitcoin node whether a hash names a block on the active chain and at what height. This page makes no network requests of any kind, so it cannot answer that. Look the hash up in any block explorer and enter the height it reports. Leave the height blank if no block with that ID exists, and the tool will treat the anchor as unresolved, which is what a reader does.

Nothing you type is transmitted, stored, or logged. All computation happens in this page.

Enable JavaScript to use the verifier. The derivation is fully written out above and in the specification, so nothing here is hidden behind the tool.

Load a worked case

These use the real Bitcoin mainnet block 000000000000000000029730547464f056f8b6e2e0a02eaf69c24389983a04f5 at height 767430 as the anchor, so the height you would find in an explorer is the height shown. Ticker, supply, and reveal heights are illustrative.

Before you pay

Reviewing an anchor in an order

The order screen shows the block hash in two places: as an order field and inside the payload preview. They must be exactly the same lowercase text. If the value is missing, malformed, uppercase, surprising, or does not match between the two places, do not fund the order. Create a fresh one.

Do not edit a mint hash

Changing the hash changes the inscription bytes, and therefore the whole order. There is no way to correct an anchor after the reveal is mined.

A hash is not a promise

An anchor records what the writer observed. It does not guarantee the mint will be credited. Supply may be exhausted, the amount may exceed the limit, or the freshness window may have passed by the time the reveal is mined.

After the reveal, open the transaction in a Bitcoin explorer, read the inscription content, and compare the hash, tick, and amt with the order you saved. Then run the values through the verifier above to see which rule decides the outcome.