Atomicals
Atomicals is the largest enabled family in Core: four of the nine enabled
marketplace protocols are Atomicals markets, and all four declare 12 of the 13
marketplace actions.
Four markets
Section titled “Four markets”| Market | Trades | Identity required |
|---|---|---|
| ARC-20 | Fungible colored-sat tokens | The authoritative ticker winner. A trade moves the complete colored value |
| Atomicals NFTs | Collectibles | One authoritative compact Atomical id, quantity one |
| Realms | Top-level Realm names | The verified authoritative name winner |
| Subrealms | Names below a parent Realm | The verified authoritative subrealm winner |
All four run on one isolated Atomicals execution service with separate protocol routes and durable state.
A browse result does not by itself mean an asset is listed for sale.
Where each market is
Section titled “Where each market is”| Market | Address | Protocol and asset type |
|---|---|---|
| ARC-20 | /trade/arc20 | arc20. The asset ID is the ticker |
| Atomicals NFTs | /trade/atomicals/nfts | atomicals_nft, type nft |
| Containers | /trade/atomicals/containers | atomicals_nft, type container |
| DMINT items | /trade/atomicals/items | atomicals_nft, type dmitem |
| Realms | /trade/atomicals/realms | realms |
| Subrealms | /trade/atomicals/subrealms | subrealms |
Containers and DMINT items trade under the NFT protocol, and each market shows only its own type.
Realm, Subrealm, Container, and DMINT item rows show the Atomical’s name. Plain NFTs, and listings created before names were recorded, show the Atomical ID.
What you can do
Section titled “What you can do”| Action | What happens |
|---|---|
| List | You set a price per unit and sign in your wallet. The listing opens after the market’s checks pass |
| Update listing | A new price, recorded as a new revision of the same listing |
| Delist | A signed message, not a transaction. The review dialog shows the exact commitment your wallet is asked to sign |
| Buy | The listing is reserved, the purchase is prepared, you sign it, it is broadcast, and it settles after confirmation |
| Offers | Create an offer, cancel your own, or accept one made on an asset you hold |
| Recovery | Find out what happened to a request whose answer never arrived. See below |
Prices and fees
Section titled “Prices and fees”A Marketplace v1 price is per unit. The listing form asks for the Price per unit (sats) and shows the total as you type. A lot’s total is its unit price times its quantity, so 2,000 units at 1,100 sats per unit cost 2,200,000 sats. Market cards and listing pages show the Unit price, and the Total price when a lot holds more than one unit. The wallet review shows both.
The marketplace fee is worked out on the total and charged to both sides:
- the seller receives the total minus the fee;
- the buyer pays the total plus the fee, plus the network fee.
On bitcoinuniverse.io the fee is 1% of the total, and at least 500 sats, on each side. The smallest total the market accepts is therefore 1,046 sats: a 500-sat fee leaves the seller the 546-sat dust minimum. A sale counts as settled once its transaction has 6 confirmations.
The market refuses a price whose payout after the fee would fall below the
Bitcoin dust limit, and says so (price_below_minimum). When the wallet’s
funds do not cover the total, the fee, and the network fee, it says that too
(insufficient_funding) instead of asking you to refresh. The review screen
shows the exact fee and your net proceeds before you sign.
When a request times out
Section titled “When a request times out”A request can reach the market and apply even though your browser never saw the answer. When that happens, Core locks that asset and shows Earlier request outcome unknown, with a Check what happened button.
Checking asks the market, with a request signed by your wallet, about the earlier request under its original request key, so the action can never apply twice:
- if the market applied it, the market replays what it recorded and nothing happens a second time;
- if the market never ran it, the request is closed as not applied;
- if it was the final step of an action you had already signed and the market never ran it, that same signed step is completed under its original key, once.
The lock clears once the market confirms the outcome. When the check proves a final step applied, the page also clears the unfinished-action notice for the prepared action that step used.
This covers every step that finalizes an action: listing, updating, delisting, buying, creating an offer, and accepting one. Until the check answers, other actions on that asset stay closed, so a timeout cannot turn into a double listing or a second purchase.
What every mutation rechecks
Section titled “What every mutation rechecks”Each mutation rechecks the exact Bitcoin output, the owner script, the spent state, the single-Atomical inventory, the colored value, and a stable Bitcoin and Atomicals checkpoint.
Mutations fail closed on mixed collateral, the wrong NFT subtype, a spent outpoint, checkpoint drift, a burn, or an ownership mismatch. A generic NFT listing cannot contain a Realm, Subrealm, fungible token, container, or item subtype. Realm and Subrealm markets additionally require the resolver to return the verified winner at the exact live owner outpoint.
A refusal names its cause when retrying cannot help:
- The connected wallet does not hold this asset. Only the address that holds it can list or change it. Switch to that wallet.
- The listed asset has moved. The seller transferred or spent it, so the listing can no longer be filled.
- This wallet’s funding is already committed to its open offers or pending purchases. Finish or cancel one of them, or add funds. An offer or purchase otherwise uses whatever funding its other offers and purchases do not hold.
The market also watches the output behind every open listing, for all Atomicals types. When that output is spent, even before the spending transaction confirms, the listing leaves the book.
Prepared transactions must assign the selected Atomical to one unburned output, preserve the reviewed seller payout and fees, and pass Bitcoin Core preflight.
Settlement requires at least one confirmation by default, and operators may configure 1 to 100. Listing revisions, funded offers, reservations, broadcast lineage, confirmation, dropped and replaced transactions, and reorg reconciliation are durable and protocol-scoped.
If relaying a purchase fails, the market asks its own Bitcoin node whether the transaction went out. A purchase that may have been sent is never reported as not applied, and a listing is not offered again while a purchase already broadcast for it is pending or confirmed.
Listing an ARC-20 lot
Section titled “Listing an ARC-20 lot”An ARC-20 lot sells one whole Bitcoin output. Its token quantity and its Bitcoin collateral value are separate: a protocol allocation may contain 600 token units on an output worth 1,000 sats. An ask of 1,200 sats for that lot is 2 sats per token. The output value still controls Bitcoin inputs and outputs.
The Portfolio signed-offer form accepts a whole-lot total (priceSats).
Marketplace v1 accepts a per-unit price (priceAtomic); its total is that
price multiplied by quantityAtomic. These are distinct signing and fee
contracts. The per-unit pricing description above applies to Marketplace v1.
The repair prepared on 9 October 2026 preserves this distinction and accepts an explicitly verified single-FT allocation below its Bitcoin collateral in the Portfolio flow. Missing quantities, mixed assets and an unverified output cannot authorize listing. This source change is awaiting functional qualification and release; it does not establish current public availability. Private Signet still requires verified challenge, rules, interpreter and isolated database provenance. Funded wallet journeys and publisher gates remain outstanding.
- Open the token from Portfolio or its ARC-20 market.
- Select one available lot.
- Enter the sale price.
- Review the marketplace fee and the net proceeds.
- Approve the PSBT in the connected wallet.
Core never splits the selected colored lot and never uses it as ordinary Bitcoin change.
The listing appears only after the signed offer passes ownership, outpoint, ticker, quantity, payout, and signature checks. Refreshing or reconnecting reads the open listing from the market; retrying cannot create a second open listing for the same ARC-20 outpoint. Buying independently applies the buyer service fee and preserves every colored satoshi in the buyer output.
If another transaction spends a listed lot on other terms, for example because the seller moved it or it sold elsewhere, a purchase of that lot can never confirm. Core then closes the lot instead of returning it to the book.
NFT artwork
Section titled “NFT artwork”Atomicals NFT cards show authoritative inline artwork when the unified index publishes a safe media field and a SHA-256 digest. The browser loads that field from Core, not from an indexer or a third-party media origin. Core caps the response at 16 MiB, accepts only a narrow set of image, audio, video, JSON, and plain-text media types, and checks the complete body against its digest before returning it. Invalid or tampered media falls back to the asset name and identifier and is never treated as ownership, listing, or settlement evidence.
An Atomicals digital object may hold several payload files, or none. Where several images are present the card always shows the same one, so a thumbnail does not change between refreshes. Where the index confirms an object carries no image payload, its card shows a neutral placeholder, which keeps a genuinely image-free object visually distinct from artwork that failed to load. Artwork that was briefly unavailable is retried rather than left as a placeholder for the rest of the visit.
Selecting anywhere on an NFT card, including its artwork, opens that asset’s own page, which has its own address and can be linked, opened in a new tab, reloaded, and reached again with Back and Forward.
When the index cannot answer
Section titled “When the index cannot answer”The ARC-20 market, token pages, holder rankings, and ARC-20 portfolio balances all report the data as unavailable and offer a retry. They never substitute sample rows and never show an unreadable balance as zero, so an outage stays distinguishable from a genuinely empty market or wallet.
- Atomicals Studio, to create and move Atomicals
- ARC-20 in the registry
- Portfolio
- Task: list an asset