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:
- 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
- What's Cooking on Anoma
- 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
- 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 Build Tools for Visual Studio 2022 (Workload: Visual C++ build tools)
- Install PowerShell
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 Hex package manager
- Install Rebar3
- Install protobuf-elixir: mix escript.install hex protobuf
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