Permanent file storage
How Atomicals stores bytes on Bitcoin, what a digest proves, and the limits of treating a chain as a file system.
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/permanent-storage - Normative authority
- Atomicals reference implementation
- Networks
- mainnet
- Documentation version
- 2026.08
- Audience
- developer, creator
- Owner
- bitcoin-universe-docs
- Sources
-
- Atomicals ElectrumX
at
v1.5.2.0 - Atomicals JavaScript CLI
at
1333565efbfe
- Atomicals ElectrumX
at
- Known limitations
-
- Permanence describes the bytes in a block. It does not promise that any particular service will serve, decode, or render them.
Это содержимое пока не доступно на вашем языке.
Atomicals can carry files directly in the reveal witness. The bytes live in a Bitcoin block, so they persist for as long as the chain does.
What is stored
Section titled “What is stored”- One or more named files.
- A declared content type per file.
- The raw bytes, as a CBOR binary string.
- A digest recorded by the validator.
Relevant CLI commands from the generated inventory: store-file, dat, and download.
What a digest proves and does not prove
Section titled “What a digest proves and does not prove”A digest proves the bytes you received match the bytes that were revealed. That is integrity.
It does not prove:
- that the content is original, licensed, or authorised;
- that the declared content type is honest;
- that the file is safe to render;
- that a service currently serving it has not substituted a derivative.
Treat every stored file as hostile input. See metadata trust.
Reveal fees scale with witness size. A large file makes the reveal transaction large, and the fee follows. Three ways to reduce it:
- Reference shared bytes instead of duplicating them. See references and recursion.
- Store a compact source such as optimised SVG rather than a raster image.
- Store the minimum that must be permanent, and derive the rest.
Serving stored files
Section titled “Serving stored files”A read service that exposes stored media should:
- restrict the content types it will serve;
- enforce a size limit;
- verify the digest before serving;
- serve with a content type it chose, not one the payload asserted;
- send immutable cache headers for content-addressed responses;
- never execute or inline the content into its own origin.
The Universe NFT and Realm read model applies these rules. See NFT and Realm API.