Tenzro
Blog — Ledger

Multi-VM runtime — EVM, SVM, DAML, one ledger

Tenzro Ledger runs three execution environments on a single Merkle Patricia Trie state root — EVM via revm, SVM via solana_rbpf, DAML via Canton adapter. Block-STM for parallel execution. TNZO native on all three via the Sei V2 pointer model. One ledger, three programming surfaces.
Author
Tenzro Engineering
Date
2026-02-04
Category
Ledger
Read time
10 min

Three things broke when we tried to pick a single VM. EVM is the universal token layer but it serializes everything. SVM has parallel execution and Solana's mature programs but its tooling and contract surface are different. DAML/Canton is the enterprise reality — actual regulated tokenization runs there. None of the three is dominant; all three have real users.

So Tenzro Ledger runs all three. One state root. One consensus (HotStuff-2 BFT). Three executors dispatched by VmType on the transaction.

The pointer model (no bridge between VMs)

The naive approach is to mint wrapped versions of every asset on every VM and bridge between them. We rejected that.

Instead, TNZO follows the Sei V2 pattern. There's one Tenzro-native TnzoToken ledger. EVM gets a pointer contract (wTNZO at 0x7a4bcb13a6b2b384c284b5caa6e5ef3126527f93), which dispatches reads and writes to the native token layer. SVM gets an SPL adapter that maps SPL Token Program instructions to the same native token (9-decimal truncation, ATA derivation). Canton gets a CIP-56 DAML template with the standard two-step transfer flow.

Three surfaces, one balance. No bridge risk between VMs. No liquidity fragmentation.

EVM

revm under the hood. All nine standard precompiles per EIP specs — ecRecover, SHA-256, RIPEMD-160, Identity, ModExp, EC_ADD, EC_MUL, EC_PAIRING, BLAKE2F — validated against go-ethereum test vectors. Seven BLS12-381 precompiles per EIP-2537 (0x0a-0x10) using blst.

Tenzro-specific precompiles add the network-native primitives: TEE_VERIFY, ZK_VERIFY, VRF_VERIFY (RFC 9381 ECVRF), STAKING, GOVERNANCE, NFT_FACTORY with mintRandom(), full ERC-8004 (identity, reputation, validation) and ERC-7579 validator modules (Social Recovery, Session Key, Spending Limit).

SVM

solana_rbpf for BPF execution. Solana programs run on Tenzro with their tooling intact. The SPL Token Program is mapped through the adapter; deployed BPF programs run natively in the executor.

DAML

Canton/DAML for enterprise. The Canton adapter ingests DAML commands, executes them through a privileged executor, and emits Canton-shaped events. CIP-56 is the canonical tokenized holding template — same wallet keys, same TNZO, same settlement gas.

Block-STM for parallelism

Sequential execution doesn't scale. Block-STM runs transactions optimistically with multi-version concurrency control, detects conflicts, and re-executes only the affected. Tenzro Ledger has 16 max re-executions and a 50% conflict threshold for sequential fallback. Same as Aptos's production Block-STM.

Fee market

EIP-1559 base fee dynamics with ±12.5% per-block adjustment, adaptive burn governance dial — a stake-weighted vote tunes burn-rate bps with magnitude caps and inflation/deflation alarms. Target gas 15M. Min base fee 0.1 Gwei, max 1000 Gwei. Network fee 0.5% on settlements to the on-chain treasury.

Account abstraction is ERC-4337 v0.8 — split gas fields, PackedUserOperation, EIP-712 hashing, 40,000-gas penalty, deterministic CREATE2 smart accounts. Every smart account has a validator_modules map; every UserOperation is AND-validated by all installed ERC-7579 modules.

Keep reading
← All posts