iotaledger/iota: The Rust monorepo rebuilding IOTA around owned objects

A deep look at how IOTA’s new stack fuses Move, Rust, GraphQL, and a modular node architecture into an asset-oriented L1 for real-world applications.

12 min read • View on GitHub • More from iotaledger

A broad editorial scene of a filing cabinet of scattered ledger drawers being reorganized into a precision engine. The left side suggests the old account-based mental model, while the right side shows owned objects being fitted into a machine with labeled gears for Rust, Move, GraphQL, and SDK layers. It explains that IOTA’s rewrite is not just faster software, but a new way of defining assets and execution.
The surprise is not speed. It is that IOTA rebuilt the mental model around owned objects and then built a Rust platform to enforce it.
Key Takeaways

The old IOTA story is not the whole story

IOTA used to mean the Tangle, feeless transfers, and a future shaped by the Internet of Things. That history still matters. But iotaledger/iota reads like a clean-slate reset: a Rust monorepo built around Move, owned objects, and a modular stack that looks closer to a full execution platform than a legacy DLT experiment.

That shift changes the center of gravity. The question is no longer whether IOTA can be unusual. The question is whether it can be coherent.

Indeed, the role of IOTA is to be the ‘Ledger of Things’ that fuels the ‘Economy of Things’. Up until this point all the distributed ledgers thus far have been copying Bitcoin’s blockchain structure which requires fees, got problems with scaling and flexibility, IOTA is different. We get rid of the blocks entirely and instead invented a new architecture based on Directed Acyclic Graph which we call ‘Tangle’.

David Sønstebø, Co-Founder of IOTA · We Interview David Sønstebø Co-Founder of IOTA

Objects, not balance-sheet rows

This is the core idea. In an account-based system, value is often a number inside a shared contract or a mutable balance in a ledger entry. In IOTA’s newer model, assets are first-class owned objects. That means the object has identity, ownership, and rules about who can move it or mutate it.

That distinction sounds small until you start designing applications. Ownership becomes explicit. Transfer becomes a state transition, not a vague write. Security questions move from “who can call this contract?” to “who owns this object, and under what rules can it change?”

The object model is the system’s mental model. Everything else wraps around it.

A close-up editorial scene of a single object moving through a series of sealed gates and hands. The object remains intact while the surrounding permissions and checkpoints change shape, showing ownership, validation, transfer, and execution as distinct steps. It explains how Move-style rules keep assets coherent while state changes around them.
Move makes ownership legible. The object stays itself while the system decides what is allowed to happen to it.

Inside the monorepo: many crates, one platform

The repository structure makes the thesis believable. Instead of one giant code dump, IOTA splits work across specialized layers: `crates/` for core protocol and tooling, `external-crates/move/` for the Move stack, `apps/` for user-facing products, `consensus/` for the protocol engine, and `sdk/` for developer access.

That shape matters. It says the team wants isolation where it helps, shared primitives where it matters, and enough modularity to evolve a platform without turning every change into a system-wide risk.

[workspace]
members = [
  "crates/iota-core",
  "crates/iota-network",
  "crates/iota-graphql-rpc",
  "apps/apps-backend",
  "apps/core",
  "external-crates/move/*",
  "consensus/*",
  "sdk/*",
]

The codebase also signals discipline. Strict linting, bounded channels, structured tracing, dedicated test crates, and explicit boundaries between node, SDK, and application layers all point to an engineering culture that treats platform reliability as a design constraint, not a postscript.

Move is not bolted on. It is the execution model

The most important clue is that the Move integration lives inside the repo, not beside it. IOTA is not merely exposing a language on top of an existing chain. It includes the VM, compiler, bytecode verification, and adapter layers needed to make ownership semantics part of the platform’s base behavior.

That changes the developer contract. If Move says a resource cannot be copied, the platform can enforce that. If an object can only move under specific ownership rules, the runtime and verifier are doing real work before code reaches production.

Integrating LayerZero with the IOTA Mainnet represents a transformative milestone for the IOTA ecosystem, laying a strong foundation that accelerates mainstream adoption and advances key industries. By enabling seamless digital asset flows and real-world asset tokenization, LayerZero positions IOTA as a critical backbone for facilitating global trade and revolutionizing supply chain finance worldwide.

Dominik Schiener, Co-founder and Chair of the IOTA Foundation · IOTA Mainnet Integrates LayerZero and Stargate

The frontend and backend are built around data access, not just consensus

The repository is not node-only. The apps layer includes a NestJS backend, shared React logic, and GraphQL clients that turn raw chain data into usable product surfaces. That is how Explorer, Wallet, and adjacent tools become part of the platform instead of one-off dashboards.

This is a subtle but important signal. The project is not just trying to produce finality. It is trying to produce legible state.

LayerJobWhy it matters
Node and consensusValidate and order transactionsKeeps the base layer trustworthy
Indexer and GraphQLExpose state for appsTurns protocol data into queryable product data
Backend servicesAggregate and enrich dataMakes the ecosystem usable for wallets and explorers
Frontend appsPresent and interact with stateCloses the loop for users and developers

Why this stack looks more like a platform than a protocol

The surrounding tools reinforce the same pattern. There is a faucet, swarm tooling, SDKs, separate indexers, and a build pipeline that treats developer experience as infrastructure. In other words, the repo is engineered as an operating environment for applications, not a narrow ledger kernel.

That is a different ambition from the older IOTA story. The old pitch centered on feeless movement. The new codebase centers on a full application substrate.

IOTA’s closest neighbors are the wrong and right comparisons

Ethereum is the right contrast for fee-driven, contract-account mental models. Solana is the right contrast for throughput and user expectations around speed. Sui and Aptos are the right peers because they already normalize Move and object-centric design. IOTA now sits in that neighborhood, but with its own history and application focus.

PlatformAsset modelSmart contract languageExecution styleBest fitMain trade-off
IOTAOwned objectsMoveObject-centric and modularReal-world assets, enterprise workflows, cross-chain appsSmaller mindshare than the biggest L1s
EthereumContract accountsSolidityAccount-basedGeneral-purpose DeFi and broad ecosystem reachFees and state complexity
SolanaAccountsRust-based programsHigh-throughput account modelConsumer-scale apps and tradingDeveloper and runtime complexity
SuiOwned and shared objectsMoveObject-centricAsset-heavy apps with explicit ownershipLess legacy ecosystem gravity
AptosResources and objectsMoveResource-orientedSafer application logicStill competing for ecosystem depth

The best way to read IOTA is not as an Ethereum clone or a revival of old DAG mythology. It is a platform trying to make object ownership the default unit of computation.

What this repo says about IOTA’s next phase

The strategic signal is clear. IOTA is trying to become a production-grade, object-centric L1 for real-world assets, cross-chain flows, and enterprise applications. The monorepo is the evidence. The Move integration is the mechanism. The app and data layers are the proof that this is intended as a full stack, not a slogan.

That is why the project feels different from its earlier identity. It did not simply add features. It changed what it thinks an asset is, then reorganized the code around that belief.