コンテンツにスキップ

このページのソース

このページの主張はすべて固定されたリビジョンに紐づいています。検証元のソースを正確に確認できます。

atomicals-avm-interpreter

Atomicals Virtual Machine interpreter

リビジョン c185e6216a3e

固定パスを開く: readme

Beta AVM interpreter. Status layer is separate from any Universe runtime exposure.

universe-index-atomicals

Universe ARC-20 index and Marketplace v1 authority

リビジョン 670030e50071

Universe ARC-20 token explorer feed and the durable Marketplace v1 protocol authority.

universe-inscribe

Bitcoin Inscribe

リビジョン unversioned

Product surface that consumes this documentation as the frontend/docs/arc-20-docs submodule.

AVM status and limitations

Raw

The exact status of every AVM layer, the threat model, and the evidence that would be required to change any of it.

Experimental or beta Verified 2026-09-26 Metadata & Sources

Behavior exists in beta or unreleased code. Do not build production dependencies on it.

Page ID
protocol/avm/status-and-limitations
Normative authority
Atomicals reference implementation
Networks
testnet
Documentation version
2026.08
Activation boundary
Bitcoin Testnet4 height 27000
Audience
everyone, developer, operator
Owner
bitcoin-universe-docs
Sources
Known limitations
  • AVM contract transactions are being validated on Bitcoin Testnet4 only. Nothing here is a mainnet claim.
  • Mainnet AVM writes are not enabled in production.
  • Signet cannot carry AVM with the pinned indexer, because its Signet network inherits the testnet3 activation heights.
  • The indexer readiness report attests the interpreter, the indexer revision, and a canary state hash. It is not a published conformance statement.

このコンテンツはまだ日本語訳がありません。

Layer Status Evidence
Whitepaper concepts Proposed A design document exists
Beta interpreter Experimental Source at a pinned revision with its own test annotations
Opcode set Experimental Generated from the pinned source. See opcodes
Universe indexer Experimental Six AVM RPCs, listed below
Universe integration Experimental Inscribe AVM Studio and the /avm/* API
Universe attestation Readiness report No conformance statement
Supported networks Testnet4 only From height 27000. No Signet. No mainnet writes

RPCs, each prefixed blockchain.atomicals.avm.:

  • capabilities
  • status
  • get_state
  • get_state_history
  • get_state_hash
  • get_execution

The readiness report shows activation, the exact tip, schema 2, the attested native interpreter, the attested indexer revision, and a canary state hash.

An inherited guard in create_or_delete_atomical dropped every PROTOCOL (def) and CONTRACT (new) create, so no AVM protocol or contract was indexed. The fix admits both after activation. It is in review and not yet released.

Untrusted contract code. A contract script is attacker supplied. Re-enabled opcodes such as concatenation, multiplication, and shifts, combined with arbitrarily large numbers, make unbounded memory and time growth reachable unless the host bounds them.

Unbounded numbers. Arbitrary precision arithmetic means a small script can request very large allocations.

Unbounded state. State storage opcodes let a contract write data. Without a host-enforced limit, storage grows without bound.

Determinism. Every independent evaluator must reach the same result. Any dependence on host memory layout, iteration order, or locale breaks verification.

State substitution. A caller supplies state. Without a state hash bound to a revision, a dishonest caller can supply state that never resulted from honest execution.

Withdrawal correctness. Opcodes mark outputs for withdrawal. A host that applies those marks without independent validation is trusting the contract it just ran.

  1. A hard limit on execution steps.
  2. A hard limit on memory, including numeric magnitude.
  3. A hard limit on state size per contract and per call.
  4. A hard limit on the number of token table entries.
  5. A wall clock timeout independent of the step limit.
  6. Rejection rather than truncation when any limit is hit.
  7. Deterministic behavior at every limit, so all evaluators agree on the failure.

What would have to exist before a network is supported

Section titled “What would have to exist before a network is supported”
  1. A pinned interpreter revision deployed on a named network.
  2. Activation conditions, if any.
  3. Deterministic conformance vectors executed against that exact revision in CI.
  4. A published statement of what those vectors prove and what they do not.
  5. A Universe service revision that exposes it, or an explicit statement that none does.
  6. A resource limit policy, published.

Testnet4 has items 1, 2, and 5 and is still in validation. Mainnet has none in production. A network is supported only when all six exist.