Anoma Developer Documentation
  • Overview
  • Build
    • Getting Started
    • Your First Anoma App
      • Define a Resource
      • Write a Transaction Function
      • Write a Projection Function
      • Run your App
    • Anoma App Examples
  • LEARN
    • Overview
    • State Model
      • Model Comparison
    • Resource Machine
      • Information Flow Control
    • Resources
      • State
      • Logic
      • Kind
      • Lifecycle
    • Transactions
      • Delta
      • Actions
      • Balanced Transactions
      • Intents
    • Applications
      • Backend
      • Interface
    • Services
      • Indexing
      • Solving
Powered by GitBook
On this page
  1. LEARN

State Model

This page introduces Anoma's state model.

PreviousOverviewNextModel Comparison

Last updated 2 months ago

A unique feature of the Anoma protocol is its state model. Anoma organizes state in atomic units called being created and consumed in . This resource model generalizes the UTXO model: Resources are UTXOs but with arbitrary state and logic predicates. The latter express the constraints under which they can be created and consumed.

Affordances

Anoma's unique state model enables the following affordances to developers and users:

  • Heterogeneous trust

    • Resources can live on different controllers (e.g., L1's, L2's, three friends in a LAN).

    • A transaction can consume a resource on controller A and create it on controller B, thus enabling fluent cross-chain transfers.

  • Information flow control

    • Transactions can be sent transparently, shielded, or privately just by setting a flag.

  • Intent-level composability

    • Intents (unbalanced transactions) can be composed and settled across different applications and chains

resources
transactions
A state space containing multiple resource objects: three coins, two leafs, a gear, and a potion.
A state transition consuming a coin and a gear resource to create a coin as well as an gear resource, the latter of which is not being shown here.
ephemeral