Activation boundaries
Why the same transaction can be valid at one height and invalid at another, and how to reason about rules that turn on.
Protocol behavior Verified 2026-08-31
Describes the Atomicals protocol itself at the pinned reference revision. It does not promise that any product exposes it.
- Page ID
-
protocol/core/activation-boundaries - Normative authority
- Atomicals reference implementation
- Networks
- mainnet, testnet, signet, regtest
- Documentation version
- 2026.08
- Audience
- developer, operator
- Owner
- bitcoin-universe-docs
- Sources
-
- Atomicals ElectrumX
at
v1.5.2.0
- Atomicals ElectrumX
at
- Known limitations
-
- Activation heights are defined per network in the reference implementation. A behavior proven on one network says nothing about another.
Atomicals validation rules are not all active from genesis. The reference implementation defines activation conditions per network, and a transaction is judged by the rules active at its own height.
The consequences
Section titled “The consequences”- A historical transaction must be re-evaluated under historical rules, not today’s rules.
- A behavior you tested on regtest, where rules may be always-on, can differ on mainnet.
- Two indexers at different revisions can disagree about an old transaction and both be internally consistent.
- A feature that exists in code is not usable until its activation condition is met.
Rules that are commonly activation sensitive
Section titled “Rules that are commonly activation sensitive”- Custom coloring with the
zoperation. - Perpetual decentralised mint parameters.
- Mint count limits for fixed deployments, which have legacy and later variants.
- Payload and operation validation refinements.
This documentation marks activation-sensitive statements in the source panel under Activation boundary.
How to reason about it
Section titled “How to reason about it”| Question | Where the answer lives |
|---|---|
| Is this rule active on my network? | The coin definition in the validator revision |
| Was it active at this height? | The activation condition compared to the block height |
| Does my indexer implement it? | The indexer revision, not the protocol |
| Does my counterparty agree? | Their indexer revision, which you must ask for |
What to record in your system
Section titled “What to record in your system”For every stored Atomicals result, keep:
- the validator revision that produced it;
- the network;
- the block height it was computed at;
- the generation identifier if your source publishes one.
Without those four, a disagreement later is unexplainable. See source of truth.