Protocol stack

Kanari layers
at a glance.

Explore the layered architecture behind Kanari SDK: apps, JSON-RPC, validator nodes, core checkpoints, Move execution, Mysticeti DAG metadata, and persistent state roots.

PROTOCOL STACK

Built in layers,
committed as one.

Kanari separates application APIs from node networking, deterministic Move execution, DAG metadata, and persistent state. The result is easier to audit, easier to operate, and easier to scale behind RPC gateways.

TX drivenIdle nodes do not create new checkpoints or height.
Mysticeti DAGConsensus metadata is stored, deduplicated, and synced.
Move runtimeObject changes, gas, events, and state roots are deterministic.
RPC gatewayClients can spread traffic across readable nodes.
01

Apps

Explorer, CLI, wallet SDK, Kanari Pay, and ecosystem frontends.

02

RPC

Axum JSON-RPC server, shared API types, per-client safety controls.

03

Node

libp2p gossip, checkpoint sync, validator backup, and runtime config.

04

Core

Verified mempool, checkpoint builder, Mysticeti DAG integration, indexes.

05

Execution

Move VM runtime, scheduler, native functions, framework modules.

06

State

RocksDB stores, Sparse Merkle Tree roots, object and transaction history.

mermaidkanari-sdk layered flow

Zoom, inspect, and copy the same architecture source used by the docs.

Rendering Mermaid diagram...
View Mermaid source
flowchart TB
    subgraph L0["Application Layer"]
        EXPLORER["kanariexplorer"]
        CLI["kanari CLI"]
        PAY["sdk/kanari_pay"]
        WALLET["sdk/wallet"]
    end

    subgraph L1["RPC / API Layer"]
        RPC_CLIENT["kanari-rpc-client"]
        RPC_API["kanari-rpc-api<br/>methods + response types"]
        RPC_SERVER["kanari-rpc-server<br/>Axum JSON-RPC"]
    end

    subgraph L2["Node Layer"]
        NODE["kanari-node"]
        P2P["libp2p gossip<br/>transactions + checkpoints"]
        SYNC["checkpoint / DAG sync"]
        BACKUP["validator backup / restore"]
    end

    subgraph L3["Core Chain Layer"]
        ENGINE["kanari-core::BlockchainEngine"]
        MEMPOOL["verified mempool"]
        CHECKPOINT["checkpoint builder"]
        DAG["Mysticeti DAG metadata"]
        INDEX["transaction + object indexes"]
    end

    subgraph L4["Execution Layer"]
        RUNTIME["kanari-move-runtime-v1"]
        VM["Move VM"]
        SCHED["parallel scheduler"]
        NATIVE["kanari-system-natives"]
    end

    subgraph L5["Data / Crypto Layer"]
        TYPES["kanari-types<br/>tx, object, gas, event"]
        CRYPTO["kanari-crypto<br/>keys, signatures, hashing"]
        SMT["smt<br/>Sparse Merkle Tree"]
        DB["RocksDB / persistent stores"]
        FRAMEWORKS["kanari-frameworks<br/>0x1 + 0x2 Move modules"]
    end

    EXPLORER --> RPC_CLIENT
    CLI --> RPC_CLIENT
    PAY --> RPC_CLIENT
    WALLET --> RPC_CLIENT

    RPC_CLIENT --> RPC_API
    RPC_API --> RPC_SERVER
    RPC_SERVER --> ENGINE

    NODE --> RPC_SERVER
    NODE --> P2P
    P2P --> SYNC
    SYNC --> ENGINE

    ENGINE --> MEMPOOL
    MEMPOOL --> CHECKPOINT
    CHECKPOINT --> DAG
    CHECKPOINT --> INDEX
    ENGINE --> RUNTIME

    RUNTIME --> VM
    RUNTIME --> SCHED
    VM --> NATIVE
    VM --> FRAMEWORKS

    ENGINE --> TYPES
    ENGINE --> CRYPTO
    ENGINE --> SMT
    ENGINE --> DB
    RUNTIME --> DB
    DAG --> DB