Skip to content

Atomical protocol guide and developer documentation for ARC20 token

Notifications You must be signed in to change notification settings

rusgot/Atomical-protocol-ARC20

Repository files navigation

description
An Introduction to Atomicals Theory and Digital Objects on Bitcoin

Introduction

Atomicals Protocol brings Digital Objects to life on Bitcoin and proof-of-work based blockchains.

What is the Atomicals Protocol?

The Atomicals Protocol is a simple, yet flexible protocol for minting, transferring and updating digital objects (traditionally called non-fungible tokens) for unspent transaction output (UTXO) blockchains such as Bitcoin. An Atomical (or "atom") is a way to organize the creation, transfer and updates of digital objects – it is essentially a chain of digital ownership defined according to a few simple rules.

Why use Atomicals?

The Atomical specification is the simplest possible way to organize digital property on a blockchain such as Bitcoin. The implementation is very simple and provides the maximum flexibility for static and dynamic digital assets, artifacts and objects. The rules are so simple that it's impossible to accidentally spend Atomicals as miner fees and it's trivial to verify that ownership was transferred to the correct recipient – without relying on any third parties whatsoever or even being required to run an indexer. Atomicals are self-evident digital object histories. That being said, most developers and services will prefer the convenience of running their own indexer and all the benefits that come along with it.

Use Cases

  • Digital collectibles, media and art
  • Digital identity, authentication and token- gated content.
  • Web hosting and file storage
  • Peer to peer exchange and atomic swaps
  • Digital namespace allocation
  • Virtual land and title registries
  • Dynamic objects and state for games
  • Social media profiles, posts and communities
  • Anywhere security and decentralization is critical concern. Military grade security and verification requirements.

The usage philosophy of Atomicals is to pass along the complete history of an Atomical digital object from mint inception and including every transfer updates. Even if an Atomical is updated or exchanges hands 10,000 times – that amounts to only about 2.5 MB of data (250 bytes x 10,000). A digital object is self-evident, unforgeable chain of authenticity that does not rely on any third party service or centralized indexer for verification purposes.

The motto is:

"No transaction history, not your digital object"

Any client, wallet, marketplace, game and service can rapidly verify the Atomical by processing the history according to the very simple rules and detect a fake instantly without relying on trusted services.

The heart of Atomicals is a few key simple rules to follow for mint, transfer, and update operations, continue reading to the Protocol Overview to understand the high level flow before diving deeper. If you like, you can just skip all the theory and go straight to minting your first Atomical within a couple of minutes.

What are Atomicals Digital Objects?

An Atomical digital object (or simply "Atomical") is a new kind of Non-Fungible Token (NFT) that can be minted, transferred, and updated on Bitcoin. The major difference is there is no requirement to use a centralized service or middleman acting as a trusted indexer. It just works today and without needing changes whatsoever to Bitcoin nor requiring side-chains or any secondary layers. It is time to take back control of our digital lives - forever.

Atomicals are self-evident and easy to verify which makes them perfect for digital collectibles, social media, gaming, authentication and anywhere ownership and authenticity is critical to establish. The protocol rules are extremely simple, yet at the same time provides military grade security and verification levels. Zero room for error.

The Atomicals Protocol is free, open-source and will forever be available to use by anyone anywhere. Our digital future depends on a robust digital object format to elegantly handle every possible use case while minimizing any potential for errors in software implementations.

The Atomicals Vision


The grand vision is to establish and secure the Bitcoin blockchain as the source of truth and digital sovereignty. Atomicals provides a simple and powerful protocol to take back control of our digital lives forever. We have everything within reach for us to create the future we want.

The Atomicals Protocol is open source, free for anyone to use however they want. All the libraries, frameworks and services are released under MIT and GPLv3 to ensure no one has power over the tools and protocol.

This is our work of passion to give to the world an option for finally bringing programmable digital objects to Bitcoin. It works today with no changes to Bitcoin, no side-chains, no separate token, no secondary layers and no middlemen, no leaders nor centralized parties.

It is designed to work in harmony with the other protocols that have emerged such as Nostr, Ordinals and more. Each Protocol has it's different strengths and Atomicals Digital Objects adds to the landscape of options available for users, creators and developers.

Atomicals is a shift to sovereignty and self-ownership over our digital lives. A simple and extremely powerful protocol to re-decentralize the web and social communities.

Key Differences From Other Protocols

The best way to understand the differences of Atomicals is to compare it against other popular non-fungible token (NFT) protocols.

Atomicals Ordinals Ethereum ERC721
Value Proposition Digital Objects Digital Artifacts Digital Collectibles
Blockchains Bitcoin and all UTXO blockchains Bitcoin and all UTXO blockchains Ethereum EVM compatible blockchains
Mint Technique Bitcoin: Commit & reveal w/ "atom" envelope. Bitcoin: Commit & reveal w/ "ord" envelope. Fund and deploy contract account
Data Storage Store one or multiple files upon minting Store only one file upon minting Not defined
Dynamic State Define and update app state for basic and any complex file types Not defined - can be defined on app specific basis Not defined - can be programmed up front
Validation Validation currently through the indexing service "electrumx" - in theory it's possible to validate 100% client-side. Validation currently through the indexing service "ord" - in theory it's possible to validate 100% client-side. Trusts Ethereum EVM nodes or in practice trust Metamask or Infura
Indexing Validation relies on elecrumx atomicals indexer (Python) at the moment for tracking ordinal numbering system. Validation relies on ord indexer (Rust) at the moment for tracking ordinal numbering system. Uses native Ethereum EVM nodes or in practice trust Metamask or Infura
Address Format P2TR (Taproot) addresses required for mint and updates. P2TR (Taproot) addresses are required for all uses such as mint and transfers Uses native Ethereum Account address.
Collections First-class "Container" NFT for updating collections, sealable permanently. Not defined but is in progress with parent-child relationships Defined as separate ERC
Atomics Swaps Partially Signed Bitcoin Transactions (PBSTs) Partially Signed Bitcoin Transactions (PBSTs) Defined as separate ERC
Fungible Tokens First-class "ARC20" using Satoshis as unit of account. Decentralized and direct minting modes available. Built-in ticker name service Not provided in base protocol. "BRC20" creates a JSON protocol in an Inscription to define the decentralized mint rules and ticker name. Defined as ERC20 type tokens
Name Service Realms are first-class NFTs that represent domain names and digital identities. A new naming standard with no domain suffix, starts with plus "+" sign like +username Not provided in base protocol. ".names" and ".sats" protocols exist as JSON protocol in an Inscription to define the claim and update rules. Existing services such as ENS and Unstoppable Domains

Atomical Numbers, IDs, REFs

An Atomical Number is a sequential numbering scheme starting from 0. The numbering scheme is used to give a global order of the Atomicals that were minted. The Atomicals numbering scheme provides a simple way to refer to individual Atomicals with a short number that complements the Atomical ID.

Atomicals have the Atomical ID which is a unique identifier based on the hash and output of the transaction it was minted in such as <txid>i<index> (Example: a14e65573ff32b95b91a0ed8367feec64125e5f4ff44d9901002b262da959e6di0). In contrast, the Atomical number is the sequential ordering of every Atomical that was minted, in the order they appear in the blockchain.

An Atomical Reference ("REF" for short) is an alternative encoding of the Atomical ID using Crockford-base32 to provide a richer character set to make it more useful for vanity identifiers. (See section on 'Bitwork')

Get Started and Create Your First Atomical Digital Object

Download and install the Atomicals Javascript CLI tool and mint your first Atomical in less than 2 minutes.

⚡ Get started and mint your first Atomical Digital Object

Download and install the Atomicals Javascript CLI tool and follow the quick start instructions to mint your NFT, Collection, or Realm name in less than 2 minutes.

Releases

No releases published

Packages

No packages published