Skip to content

Builder Directory

This is the fast path to building a Calimero application. Read it top to bottom, then follow the links to the deep references.

You build the application logic in Rust with the calimero-sdk, compile it to WebAssembly (WASM), and install that WASM on a Calimero node. The node runs your logic inside contexts — isolated, replicated execution environments whose state syncs automatically across members using CRDTs. Clients (web, scripts, tools) call your app methods over JSON-RPC.

flowchart LR
    WRITE[Write Rust app<br/>calimero-sdk] --> BUILD[Compile to WASM]
    BUILD --> INSTALL[Install on a node<br/>meroctl / merobox]
    INSTALL --> CONTEXT[Create a context]
    CONTEXT --> CALL[Call methods<br/>meroctl / client SDK]

    classDef lime fill:#14210a,stroke:#a5ff11,color:#f5ffe0,stroke-width:2px;
    classDef cyan fill:#0b2526,stroke:#39d0c8,color:#dcfffd,stroke-width:2px;
    class WRITE,BUILD lime;
    class INSTALL,CONTEXT,CALL cyan;
  1. Write the app in Rust: define state with #[app::state], methods with #[app::logic], and use CRDT collections for anything that syncs. See SDK Guide.
  2. Compile to WASM: cargo build --target wasm32-unknown-unknown --profile app-release. The build also emits an ABI manifest (res/abi.json).
  3. Install on a node and note the returned application id: meroctl app install --path <file.wasm>.
  4. Create a context for the app: meroctl context create --application-id <APP_ID>.
  5. Call it: meroctl call <METHOD> --context <CTX> --args '<JSON>', or from a client SDK.

For local multi-node development, merobox spins the whole loop up in Docker and can script it as a YAML workflow.

ToolRoleInstall
calimero-sdk (Rust)App SDK — write your logicCargo dependency (in Core)
merodThe node runtime that executes appsSee Core /operate/
meroctlCLI to install apps, manage contexts, call methodsbrew install calimero-network/tap/meroctl
meroboxLocal multi-node networks + workflowspipx install merobox or brew install calimero-network/tap/merobox
calimero-abi-codegenGenerate a typed TS client from your ABISee mero-devtools-js
mero.jsJavaScript/TypeScript client for calling appsSee mero.js

A create-mero-app scaffolder is available to generate a starter project (Rust app + frontend + workflows) — see Developer Tools.