Implementer's reference

Reference

Terminology, the semantics an indexer must reproduce, and the practical limits that shape real integrations.

1. Terminology

Atomical
Any digital object minted under this protocol: an NFT, a fungible token deploy, a realm, a container. Identified by its commit outpoint.
ARC-20
The fungible token model where one token unit occupies exactly one satoshi.
Envelope
The tapscript structure carrying the protocol marker atom, an operation code, and a CBOR payload.
Commit / reveal
The two-transaction mint pattern. The commit creates the outpoint that fixes identity; the reveal exposes the envelope in witness data.
Atomical id
36 bytes: commit txid plus commit output index. Compact form <txid>i<index>.
Location id
Where an Atomical currently sits: the outpoint (txid plus index) of the UTXO holding it. Changes with every transfer; the atomical id never does.
Coloring
The assignment of token value from a transaction's inputs to its outputs, decided entirely by the rules in specification section 8.
Sat value / atomical value
Two numbers recorded per token-bearing UTXO. Classically equal; since the custom coloring activation the atomical value may be lower (partial color), never higher.
Cleanly assigned
A flag meaning every colored output's satoshi value was exactly matched by token value. Unclean assignment is legal but is a signal that a transaction shape deserves scrutiny.
Burn
Token value that landed on no spendable output. Permanently removed from supply; the indexer reports it per token.
Bitwork
Proof-of-work over a transaction id, expressed as a hex prefix with an optional fractional extension (1a2b.8).
dft / dmt
The decentralized mint deploy and the individual mint claims against it.
Splat / split
The x operation separates co-located NFTs into distinct outputs; the y operation lets each fungible token skip output value before its coloring begins.
Realm, subrealm, container, dmitem
The naming and collection families: a top-level name, a name under a parent, a collection, and a proven item of a collection.
Sealed
An NFT locked forever by the sl operation: it can no longer move or change state.

2. Indexer semantics

2.1 Deterministic ordering

Everything is decided by position, never by timestamp or intent. Blocks are processed in height order, transactions in block order, inputs in index order, outputs in index order. Two independent indexers processing the same chain must produce identical state; any divergence is a bug in one of them.

Races (a ticker, a realm, a mint claim near the cap) resolve on the transaction number of the commit, which is a monotonically increasing counter assigned in block-then-position order. This is why a name claim can be lost by someone who revealed earlier but committed later.

2.2 Confirmation

Indexing happens at block connection: a transaction has no protocol effect until it is in a block. Two additional depths matter:

Claim state machine A flow from mempool to pending at first confirmation, to verified after three blocks, with branches to expired when the reveal or payment window is missed, and a rollback arrow from verified back to pending on a reorg. mempool block pending +3 blocks verified expired window missed reorg rollback re-runs the race from undo data
Fig. 2: claim lifecycle. Verification is a depth, not an event; a reorg deeper than the claim returns it to the race.

2.3 Mempool

The indexer parses unconfirmed transactions so wallets can see pending mints and transfers, but mempool state is strictly provisional and separate from indexed state. Unconfirmed operations are held in a per-transaction map and dropped the moment the transaction leaves the mempool. Consequences for integrators:

2.4 Reorgs

Rollback is exact, not approximate. Every block write records undo information for both the base UTXO set and the Atomicals state, so disconnecting a block restores the precise prior state: mint records, coloring assignments, name candidacies, and mint counters all revert. On reconnection the affected blocks are reprocessed in order, and a name race whose winner was reorged out is genuinely re-run.

Undo data is retained for a bounded window (the reorg limit of the coin configuration; the ElectrumX default is 200 blocks for Bitcoin). A reorg deeper than the retained window cannot be unwound incrementally and requires a resync from an earlier snapshot. Applications built on top should therefore treat any assertion of ownership as valid only up to the reorg depth they are willing to tolerate, and should reconcile rather than assume.

3. Universe indexing decisions

Where this documentation follows the Bitcoin Universe indexers rather than upstream Atomicals documentation, the difference is listed here. Nothing else on this site is a Universe-specific rule.

DecisionWhat it means
Envelope prefix toleranceThe parser locates the marker by scanning for the first OP_IF after a 32-byte key push, and does not require a preceding OP_FALSE. Envelopes are therefore accepted in both common script shapes. Documented here as implementation behavior, not as a relaxation of intent.
AVM operationsThe operation codes def and new, and an activation height of 900000 for them, exist in this fork's AVM support. They are not part of the original upstream envelope operation set, and this site does not document AVM semantics.
Split-transaction payment refusalSubname and dmitem payments are refused in any transaction that also carries a split (y) operation, because a split can reassign ARC-20 value inside the paying transaction. This is a conservative safety rule and may reject a payment another implementation would accept.
Two-repository splitUniverse operates the fungible/general indexer and a separate read-only projection service for NFTs, realms, subrealms, containers, and dmitems. The protocol rules are identical; only the serving surface differs.
Marketplace fail-closed readsUniverse products refuse ARC-20 listing and buyer-funding mutations when the Atomicals indexer is unavailable or disagrees, instead of falling back to ordinary UTXO data. This is product policy, not a protocol rule.

4. Fee and size considerations

5. Limitations

6. Security considerations

7. Implementation checklist

Minimum work to index or integrate correctly: