Anoma: a distributed OS for intent-centric apps

Anoma is a distributed operating system for intent-centric applications. It unifies underlying blockchains into a single development environment, ending the fragmentation of state and users that limits today’s decentralized applications.

Features

User-centric & infra-abstracted

Put your users at the center of the blockchain experience and abstract away the complexities of underlying infrastructure.

Compatible with any chain

Access users, state, and settlement on any chain Anoma is connected to — with one deployment.

Composable with everything

Compose interactions at the intent level, not just the transaction level, unifying state across connected chains.

Uniquely expressive

Express any user intent and create arbitrary application types that are fully decentralized.

Scale-free & cost effective

Scale as much as the laws of physics allow thanks to Anoma’s unique approach to scalability.

Programmable data sovereignty

Control what data is shared with whom and for what purposes, and empower your users with full sovereignty over their own data.

What is Anoma

Anoma is the next big leap in the evolution of blockchain architectures. It introduces a new, intent-centric paradigm for dapps and provides a unified developer experience across any underlying blockchain.

Web3 needs a unified OS

Today’s blockchain landscape is highly fragmented, with users, apps, state, and liquidity split between chains. This creates headaches for developers and unnecessary complexity for users. Users need to interact directly with blockchains, often with multiple steps and transactions to sign.

The missing link between chains & and users

Windows unified the PC environment, introducing a new layer of abstraction between users and hardware. Developers could write apps that worked seamlessly on any PC, and users didn’t need to understand the underlying code or hardware. This changed the way we interact with computers.

The great unifier

Anoma unifies blockchains into an integrated OS where builders and users don’t need to worry about the complexities of which chain or VM they’re interacting with. It changes the way we interact with blockchains and enables a future of user-friendly, seamlessly integrated dapps.

Unlocking a new phase of innovation

Ethereum introduced programmable settlement, a major leap from the limited scripting capabilities of Bitcoin generation architectures. This led to an explosion of innovation in dapps, DeFi, NFTs and more, but still limits the type of apps that can be built.

The next big leap, Anoma’s intent-centric model enables any kind of application, including things that haven’t been possible yet. It unlocks a new wave of fully decentralized apps that don’t feel like Web3 experiences.

What are Intents

The future of decentralized applications

Intents are a natural part of how we interact with the world

Each time you use an app, you have an intent for what you want to do. From swapping tokens to buying NFTs or booking a flight, intents are the outcomes you want to satisfy. With intents on Anoma, you can specify what you want without needing to understand the complexity of how to do it.

Evolving dapps from transaction-centric to intent-centric

Users interact with dapps today by submitting transactions. They need to understand blockchains well enough to know exactly which transactions to sign for what they want to do. This is overly complex and unnatural – users don’t come to an app with transactions in mind, they come with intents.

Intents aren’t magic, but Anoma apps will feel like they are

With Anoma apps, you can express your intent and let Anoma take care of the rest. Just tell the app what outcome you want, along with any preferences, and a decentralized network of intent solvers handles the complexity of navigating different protocols, chains, and transaction types.

Why Anoma

Power to the people

Apps should be human-centric, not blockchain-centric

Anoma places user needs, preferences, and values at the center of the blockchain experience. It enables more natural interactions and empowers people to make blockchains work for them, paving the way for a more human-friendly decentralized internet.

Any intent, anywhere

Anoma introduces a standard for generalized intents. The holy grail of intent-centric design, this enables any type of intent to be expressed and solved across any connected chain, rollup, or dapp. This opens the door to a new wave of innovation in user-friendly, seamlessly interoperable dapps.

How does Anoma work

The Intent Machine (IM)

Anoma is powered by the intent machine. Similar to how the Ethereum Virtual Machine (EVM) processes transactions into state changes, the IM processes intents into state changes. The IM works seamlessly alongside existing VMs, enabling intents to be settled on any underlying chain.

Decentralized counterparty discovery, solving, & settlement

Anoma provides all the infrastructure necessary for intent-centric apps. A decentralized solver network works to match intents across counterparties and settle them on connected blockchains. Developers can focus on building their app instead of needing to integrate all these components.

On-demand consensus

Anoma can support many parallel instances and security models that are all interoperable with each other. Choose to solve your intents globally or locally within a specific group or geographic area for the lowest possible latency and fees. This parallelized model brings unmatched speed and scalability.

Programmable data sovereignty

The lack of data protection is a major shortcoming of blockchains. Anoma introduces programmable data sovereignty, giving developers and users full control over what data is shared with whom at different stages of the intent solving and settlement process.

What does the future look like

Seamless, natural user interfaces

The way we interact with the internet is quickly changing. AI and natural language processing are changing the nature of UIs, making more natural human interactions possible. With Anoma, complex multi-chain tasks and even ‘real world’ interactions like buying concert tickets can be done in a similar way but using fully decentralized infrastructure.

More expressive money

Intents give us the ability to infuse our transactions with our preferences and values. This is a fundamentally new level of programmability. Every interaction becomes an opportunity to affect the world in ways that align with our values and reflect the future that we want to see.

Following Development

Work is merged into base on a bi-weekly (once every two weeks) schedule.

Development can be followed in multiple ways:

  1. Issues are put into the project overview: This is a good way to see what work is assigned and the various views into how goals are being met
  2. What's Cooking on Anoma
  3. Research Forums: This is good for seeing discussions on the direction of Anoma. The architecture posts in particular are a practical vision for how the codebase's architecture will evolve. Around two of these get posted per week
  4. Issues and pull requests: This is good for viewing new issues and work coming in, but the other views are typically a better way to view this

Running pre-built binaries

Release Dependencies

To run a working Anoma Node the following dependencies are required:

Mac OS X Development Environment:

  • Install Apple Command Line Developer Tools: xcode-select --install
  • Install MacPorts (or equivalent package manager)

Install ncurses (Mac OS X only)

Install OpenSSL:

  • Mac OS X and Linux: use package manager
  • Windows: not required

Running

Download the Anoma release for your platform, extract it, and run bin/anoma.

Compilation from sources

Build Dependencies

To compile a working Anoma Node the following dependencies are required:

Mac OS X Development Environment:

  • Install Apple Command Line Developer Tools: xcode-select --install
  • Install MacPorts (or equivalent package manager)

Windows Development Environment:

Install Git (Windows and Linux only)

Install CMake:

  • Linux and Mac OS X: use package manager
  • Windows: not required

Install Sodium (Windows only)

  • Ensure that the LIB and INCLUDE environment variables point to this installation

Install Protocol Buffers

Install Elixir (version 1.17.0 or higher) and with it:

Install Rust (version 1.76.0 or newer)

Compiling and Running

To install the dependencies as well as Anoma run:

mix deps.get
mix escript.install hex protobuf
mix compile

To start an Anoma instance run one of these:

iex -S mix # starts an interactive shell
mix run --no-halt # starts a non-interactive shell

Docker images

To work with Docker images, do the following:

Install Docker, this is necessary for both building and running Docker images

Build the Anoma image from the repository root: docker build -t <IMAGE> .

  • <IMAGE> is your chosen image name

Run the Anoma image: docker run -it --network host <IMAGE> <SUBCOMMAND>

  • <IMAGE> is the name of Anoma Docker image to be run
  • <SUBCOMMAND> is interpreted by the Anoma binary
  • --network host will enable connections from the host