Skip to content

Sources behind this page

Every claim on this page resolves to these pinned revisions. Follow a path to read the exact source the statement was verified against.

atomicals-guide

Atomicals protocol guide

Revision unversioned

Open pinned path: arc20

Concept and command-line explanation. Explicitly states that the specification is defined in code.

atomicals-electrumx-1.5.2.0

Atomicals ElectrumX

Revision v1.5.2.0 (2025-03-27)

Open pinned path: mintParser

Version-sensitive ARC-20 and Atomicals validation behavior used as the pinned reference baseline.

Metadata and decimals

Raw

Optional metadata fields, how to treat them, and the exact rule about decimals that prevents an entire class of accounting bug.

Protocol behavior Verified 2026-08-31 Metadata & Sources

Describes the Atomicals protocol itself at the pinned reference revision. It does not promise that any product exposes it.

Page ID
protocol/arc20/metadata-and-decimals
Normative authority
Atomicals reference implementation
Networks
mainnet
Documentation version
2026.08
Audience
everyone, developer
Owner
bitcoin-universe-docs
Sources

ARC-20 metadata is an optional JSON object supplied by the minter. Common fields are name, desc, image, decimals, links, and legal.

Metadata is arbitrary content written by whoever minted the token. It is never checked. See metadata trust boundaries for the renderer and interface rules.

Field What it does What it proves
name A display label Nothing
desc A description Nothing
image A media reference Nothing about rights or origin
links Social or site links Nothing about affiliation
legal Legal text Nothing enforceable is created by writing it
decimals Display formatting Nothing about the unit model

decimals is presentation metadata. It never creates sub-satoshi units.

Native ARC-20 quantities are integers, always. A token with decimals of 8 and 100 000 000 native units may be displayed as 1.00000000. On chain there are 100 000 000 coloured satoshis.

A product reads decimals of 8, divides every native quantity by 100 000 000 for display, and then feeds a formatted figure back into a transfer builder. The builder now asks for a fraction of a satoshi, or rounds to something the user did not intend.

  1. Store and compute in native integer units only.
  2. Format for display at the last moment, in the view layer.
  3. Never parse a formatted figure back into a quantity.
  4. Never let a formatted figure reach a transaction builder.
  5. Treat a missing decimals as zero, not as a default of eight.

Before displaying any metadata field:

  • escape it, always;
  • strip or refuse markup;
  • validate that link targets are absolute HTTP or HTTPS URLs;
  • mark external links as external and do not follow them automatically;
  • check the name for confusable characters against tokens the user already holds.