Tenzro
Ledger and execution

EVM.

revm-powered Ethereum-compatible execution. All standard precompiles plus Tenzro-specific precompiles for TEE, ZK, models, settlement, and ERC-8004.
STATUS
Testnet
CRATE
tenzro-vm
STABILITY
Stable
REFERENCE
revm
01

Standard precompiles

ecRecover, SHA-256, RIPEMD-160, Identity, ModExp, EC_ADD, EC_MUL, EC_PAIRING, BLAKE2F. All validated against go-ethereum test vectors (37 tests).

02

BLS12-381

EIP-2537 precompiles at 0x0a through 0x10: G1ADD, G1MSM, G2ADD, G2MSM, PAIRING_CHECK, MAP_FP_TO_G1, MAP_FP2_TO_G2. Backed by blst.

03

Tenzro precompiles

TEE_VERIFY              real attestation verification
ZK_VERIFY               O(1) commitment lookup
MODEL_INFERENCE         inline inference
SETTLEMENT              settlement engine
TNZO_BRIDGE   0x1001
TOKEN_FACTORY 0x1002
CROSS_VM_BRIDGE 0x1003
STAKING       0x1004
GOVERNANCE    0x1005
NFT_FACTORY   0x1006
VRF_VERIFY    0x1007    RFC 9381
ERC8004_*     0x101a-c  Trustless Agents
ERC7579_*     0x101d-f  modular validators
04

Chain ID

Default 1337. eth_chainId returns the current chain id; clients should not hardcode.

05

Account abstraction (ERC-4337 v0.8)

Full EntryPoint + UserOperation v0.8 with split gas fields, PackedUserOperation, EIP-712 hashing, 40,000 gas penalty, deterministic CREATE2 account factory, smart accounts with installable validator modules, paymaster sponsorship, bundler bundle size 100.

06

ERC-7579 modular validators (persistent)

Three on-chain validator modules drive smart-account custody at signing time: SocialRecoveryValidator (N-of-M guardian quorum, composite Ed25519 + ML-DSA-65), SessionKeyValidator (per-call target/selector allowlists, time-bounded), SpendingLimitValidator (per-tx + rolling-window daily ceilings).

All three are persistent: installs, uninstalls, and state mutations write through to CF_VALIDATOR_MODULES in RocksDB and hydrate on boot. A node restart does not wipe guardian quorums, reset session-key allowlists, or zero out daily-spend windows. The standard ERC-7579 selectors (installModule 0x9517e29f, uninstallModule 0xa71763a8, isModuleInstalled 0x112d3a7d, validateUserOp 0xa97bfdd1) are byte-identical to Safe / Biconomy Nexus / ZeroDev Kernel / Rhinestone.

ValidatorRegistry::validate_user_op AND-combines every installed module on a sender; combined valid_after = max(...), valid_until = min_nonzero(...). Enforced on both tenzro_signTransaction and eth_sendRawTransaction via aa_pre_sign_check so custody cannot be bypassed by routing around the signing helper.

07

EIP-7702 delegation (persistent)

DelegationRegistry records the Pectra Type-4 authority→target pointer for every EOA that signed an Eip7702Authorization. Install verifies chain-id + nonce, recovers the authority from the signature, and rejects authority/declared mismatches. Delegating to the zero address revokes. Resolved on every call into a designator-code account.

Persistent: write-through to CF_STATE / eip7702:<authority20> with bincode-encoded DelegationPointer; hydrates on boot. Without persistence a restart silently breaks every prior 7702 authorization (calls fall back to the EOA path).

08

Permit2 + Secure-Mint (persistent)

Uniswap Permit2 SignatureTransfer at canonical address 0x0000…1023: EIP-712 typed data for TokenPermissions / PermitTransferFrom / PermitWitnessTransferFrom, per-owner word/bit nonce bitmap (high-248-bit word position, low-8-bit bit position) matching the Uniswap layout. tenzro_permit2DomainSeparator, tenzro_permit2Digest, tenzro_permit2VerifyAndConsume, tenzro_permit2NonceUsed RPCs. Bitmap persists to CF_SETTLEMENTS / permit2:<owner20>:<word32> — replay protection survives operator-induced restarts; without persistence, every previously-consumed permit becomes replayable.

Secure-Mint at 0x0000…1024: per-token SecureMintPolicy enforcing circulating + amount ≤ reserve for tokenized assets (xStocks, treasuries, stablecoins). tenzro_setSecureMintPolicy (admin-token-gated), tenzro_secureMintCheck, tenzro_secureMintApply, tenzro_secureMintRecordBurn. tenzro_submitReserveAttestation is fail-closed: empty signatures and unregistered attestors are rejected before any persist. Policies persist to CF_TOKENS / secure_mint:<token20>.

Related
← All docs