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-electrumx-1.5.2.0

Atomicals ElectrumX

Revision v1.5.2.0 (2025-03-27)

Open pinned path: normalFtAllocation

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

atomicals-js-cli

Atomicals JavaScript CLI

Revision 1333565efbfe

Open pinned path: commandIndex

Reference command surface used for the documented CLI inventory and the visual asset provenance.

Transfer ARC-20

Raw

Build a transfer that places every unit where you intend and burns nothing.

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
guides/transfer-arc20
Normative authority
Executed source code at a pinned revision
Networks
mainnet
Documentation version
2026.08
Audience
everyone, holder
Owner
bitcoin-universe-docs
Sources
Known limitations
  • The Universe visible transfer surface does not construct partial recipient allocations or coloured change from an amount field. Use a compatible builder that works in outpoints and output values.
  • Supported networks: mainnet.
  • Status: protocol behavior.
  • You need a wallet or builder that works in outpoints and satoshi values, not in an amount field.
Position Contents
Input 0 The coloured lot
Input 1 and later Cardinal inputs for the fee
Output 0 The recipient, sized to exactly the units you are sending
Output 1 Coloured change, sized to exactly the remainder
Output 2 Cardinal change, if any
  1. List your coloured outpoints and pick the lot to spend.
  2. Decide the amount to send. That number is also the satoshi value of output 0.
  3. Compute the remainder: lot value minus amount sent. That is the satoshi value of output 1.
  4. Model the exact input and output set in the allocation visualizer.
  5. Confirm the burn figure is zero.
  6. Add cardinal inputs for the fee and a cardinal change output last.
  7. Re-model with the fee inputs and outputs included. The burn figure must still be zero.
  8. Build the transaction, preserving your input and output order.
  9. Compare the wallet prompt to your model, line by line.
  10. Sign and broadcast.

Adding a fee input or a change output changes the output set, and the allocation walks outputs in order. A transfer that was clean before the wallet added change can burn after it.

Executed ARC-20 allocation vectors from conformance/vectors/arc20-allocation.json
Case Coloured inputs Result per output Burned Clean
A remainder smaller than the change output burns
dust-remainder-burns
1200 units at input 0 out 0: 1000 sats to 1000 units; out 1: 200 sats to 200 units none yes
A change output larger than the remainder burns it
change-output-too-large
1200 units at input 0 out 0: 1000 sats to 1000 units; out 1: 546 sats to 0 units 200 units of TOKENA no

Same intent, same lot, same amount sent. The only difference is the change output size, and one of them destroys 200 units.

One Bitcoin fee, paid from a cardinal input. No commit and reveal pair, and no grinding, for an ordinary transfer.

  • The wallet will not let you set output values in satoshis: use a different builder.
  • The wallet reorders outputs: use a different builder. Order is meaning.
  • The burn figure is not zero: change the output sizes, do not proceed.

Confirm, wait for indexing, read the asset location, and check the recorded burn figure. See verify a transaction.

Allocation and burns.