Developer Docs

Technical Documentation

Deep dive into Atomicals Protocol, ARC-20 standard, and Quark token technical architecture

System Architecture

Core components and data flow of Atomicals Protocol

ARC-20 Token Lifecycle

Deploy

Define token params

β†’
Mint

Create token UTXOs

β†’
Transfer

UTXO transactions

β†’
Verify

On-chain confirmation

UTXO Model

Bitcoin uses the UTXO (Unspent Transaction Output) model to manage assets. Each UTXO represents a certain amount of Bitcoin that can only be spent as a whole.

// UTXO structure example { "txid": "abc123...", "vout": 0, "value": 10000, // satoshis "scriptPubKey": "..." }

Colored Coin Principle

ARC-20 creates tokens by "coloring" specific satoshis. Colored satoshis carry additional metadata defining token properties and amounts.

// Colored coin example { "satoshi": 1, "atomical_id": "9125f03...", "ticker": "QUARK", "amount": 1000 }

Atomicals Protocol Details

Core protocol specifications and data structures

Atomical ID Generation

Each Atomical has a unique identifier composed of the minting transaction txid and output index:

// Atomical ID format atomical_id = txid + "i" + vout_index // Example "9125f03bcf9325f6071762b9aee00b461a0b43ed157c336e2e89e07f47ea6f66i0"
Token Deployment Parameters

ARC-20 token deployment requires defining these parameters:

{ "$ticker": "QUARK", // Token symbol "$max_supply": 10000000000, // Max supply "$mint_amount": 1000, // Amount per mint "$mint_height": 809080, // Start block height "$max_mints": 10000000, // Max mint count "$bitwork": "abc" // Optional PoW prefix }
Bitwork (Proof of Work)

Bitwork is an optional PoW mechanism in Atomicals Protocol for fair token distribution:

// Bitwork requirement example { "bitwork": "7777" } // txid must start with "7777" // Valid txid example "7777abc123..." // βœ“ Valid "1234abc123..." // βœ— Invalid

More Bitwork characters = higher difficulty. This simulates Bitcoin mining, ensuring fair distribution to those willing to invest computational resources.

API Interface

How to interact with Atomicals Protocol

Atomicals CLI

Official command-line tool for minting, querying, and managing Atomicals

# Install npm install -g atomicals-js # Query token info atomicals get-ticker QUARK # Mint tokens atomicals mint-dft QUARK --satsbyte 10
GitHub Repo

Atomicals Market API

Third-party market API for token data and market information

// API endpoints GET /api/v1/arc20/ticker/{ticker} GET /api/v1/arc20/holders/{ticker} GET /api/v1/arc20/market/listings // Response example { "ticker": "QUARK", "total_supply": 10000000000, "holders": 5000 }
API Docs

Security Best Practices

Important considerations when using ARC-20 tokens

⚠️

UTXO Selection

Must use wallets supporting UTXO selection. Regular Bitcoin wallets may send ARC-20 tokens as transaction fees.

  • βœ“ Wizz Wallet
  • βœ“ Sparrow Wallet
  • βœ— Regular exchange wallets
πŸ”

Private Key Security

ARC-20 token security is directly tied to your Bitcoin private key. Lost key = permanently lost tokens.

  • Store seed phrase offline
  • Use hardware wallet
  • Regular backups
βœ…

Verify Transactions

Always verify UTXO contents before sending. Check inputs and outputs to ensure correct token flow.

  • Verify recipient address
  • Confirm token amount
  • Check fee settings

More Documentation

Deep dive into Atomicals Protocol