Skip to content

Architecture

Smart Engines V3 is built on a modular, chain-agnostic architecture that enables consistent operation across multiple blockchains while maintaining the unique capabilities of each chain. The platform has three permanent tiers — validators, hosts and gateways. Today Hedera and XRPL are live; Stellar, Polkadot, Solana and Bitcoin come next; Ethereum and Polygon are postponed.

flowchart TB
    Client["Client Applications<br/>(SDK, REST API)"]
    GW["Smart Gateway<br/>(routing, rate limiting)"]
    Host["Smart Host<br/>(backend-as-a-service)"]
    subgraph SV["Smart Validator"]
        direction LR
        Auth["Auth and Session Manager"]
        Rules["Rules evaluation (sign gate)"]
        TSS["Threshold Signing"]
        EventBus["Event Bus (private mesh)"]
    end
    Client --> GW --> Host --> SV
    HA["Hedera Adapter (live)"]
    XA["XRPL Adapter (live)"]
    PA["Further adapters (coming next)"]
    SV --> HA
    SV --> XA
    SV -.-> PA
    HN["Hedera Network"]
    XN["XRPL Network"]
    HA --> HN
    XA --> XN

A shared core library gives every chain the same abstractions.

Every chain adapter implements one common contract, so the rest of the platform calls every chain the same way:

Group Operations
Connection Connect, disconnect, health and network status
Accounts Create an account, read account info and balance
Transfers Transfer, read a transaction and its receipt, transaction history
Tokens (optional) Create, mint, transfer and burn a token, read token info
Consensus messaging (optional) Submit a message to a topic
Contracts (optional) Deploy and call a contract

An adapter implements the optional groups only where its chain supports them.

Each chain declares which token-control capabilities it supports, and a token request that asks for a capability the chain lacks is refused:

Capability XRPL Live Stellar Coming next Polkadot Coming next Solana Coming next Bitcoin Coming next
Mintable Yes Yes Yes Yes No
Burnable Yes Yes Yes Yes No
Transferable Yes Yes Yes Yes Yes
Restrictable (freeze) Yes Yes Yes Yes No
Pausable Yes Yes No No No
Compliant (KYC / authorization) Yes Yes No No No
Wipeable (clawback) Yes Yes No No No

Hedera’s role in the platform is consensus messaging (HCS): rule publication, governance and audit topics.

Each supported blockchain has a dedicated adapter that implements the standard contract while handling chain-specific logic.

Each adapter is its own package, and handles its chain’s account model, transaction format, fees and native multisig. Every on-chain account the platform controls is protected by the chain’s own multisig — a threshold key on Hedera, a SignerList on XRPL — whose signers are the validators’ DKG slot keys.

flowchart TB
    C["Common adapter contract"]
    C --> H["Hedera adapter (live)<br/>HCS topics, threshold keys"]
    C --> X["XRPL adapter (live)<br/>accounts, trust lines, NFTs, SignerList multisig"]
    C --> N["Stellar, Polkadot, Solana, Bitcoin adapters<br/>(coming next)"]
    C --> E["Ethereum, Polygon adapters<br/>(postponed)"]

Threshold signature operations are handled by dedicated services. Every on-chain signing slot is created by a distributed ed25519 key generation (Feldman verifiable secret sharing) across the validators. Only shares exist: the whole key is never assembled, not at rest and not while signing. The signing threshold for an entity is always a strict majority of the validators or more, up to all of them.

flowchart TB
    subgraph P1["Phase 1: Commitment"]
        V1c["V1 commit"]
        V2c["V2 commit"]
    end
    subgraph P2["Phase 2: Share Distribution"]
        V1s["V1 shares"]
        V2s["V2 shares"]
    end
    BUS["Private mesh (commitments broadcast)"]
    SEAL["Private mesh (each share sealed to its recipient's ML-KEM-1024 key)"]
    V1c --> BUS
    V2c --> BUS
    V1s --> SEAL
    V2s --> SEAL

    subgraph P3["Phase 3: Verification"]
        Verify["Verify shares against commitments"]
    end
    subgraph P4["Phase 4: Key Aggregation"]
        Agg["Compute public key and store own share"]
    end
    BUS --> Verify
    SEAL --> Verify
    Verify --> Agg

Each validator keeps only its own share. The group public key becomes one signer on the entity’s on-chain multisig. When the validator set changes, the shares are reshared and the public keys stay the same, so the on-chain multisig does not change.

Signing runs in two rounds (FROST). Each validator in the signing set commits to a fresh nonce, then produces a signature share with its own key share after its own rule check passes. The shares are aggregated into one ordinary signature. A validator whose rule check fails withholds its share, so a request that fails the rules never reaches the threshold.

sequenceDiagram
    participant Client
    participant Cluster
    Client->>Cluster: 1. Request Challenge
    Cluster-->>Client: 2. Challenge + Nonce
    Client->>Cluster: 3. Sign Challenge with the wallet key
    Cluster->>Cluster: 4. Verify the signature and that the key belongs to the account
    Cluster-->>Client: 5. Session Token

Access control based on NFT/token ownership. A token gate is a list of requirements, and a setting for whether all of them or any one must hold. Each requirement names:

Field Meaning
Chain The chain the token lives on
Token ID The token to check
Minimum balance For a fungible token, the balance the holder must have
Serial numbers For an NFT, the specific serials that qualify
Type Fungible or NFT

Validators communicate over a private message mesh:

flowchart TB
    V1["Validator 1"]
    V2["Validator 2"]
    V3["Validator N"]
    MESH["Private message mesh"]
    V1 --> MESH
    V2 --> MESH
    V3 --> MESH

Message Types:

  • DKG ceremony messages: start, commitments, sealed shares and commitment digests
  • Threshold-signing requests and signature shares
  • Validator heartbeats, for health monitoring

Each node caches rule evaluations and rate-limits requests. DAO jobs and token-holder snapshots run as background jobs.

Every tier ships as a protected container image and runs on Kubernetes. Each cluster runs one validator; the network’s validators are spread across independent clusters. The three-cluster testnet is the network’s genesis bootstrap, not a fixed size: the three tiers are the permanent architecture.

Independent clusters

Each validator runs in its own cluster, with its own database.

Automatic failover

Kubernetes restarts a failed pod.

Load balancing

Gateways route requests across hosts.

Data replication

Entity bindings are replicated across clusters; rules are anchored on HCS.

Smart Engines does not publish performance figures yet. An operation’s latency is bounded by the target chain’s own confirmation time plus the threshold-signing round.