Skip to main content

Architecture

Fenryx is a single fenryxd binary that runs four interleaved engines:

┌─────────────────────────────────────────────────────────┐
│ fenryxd (Rust) │
├──────────────┬───────────────┬──────────────┬───────────┤
│ Consensus │ State (Rocks)│ EVM (revm) │ RPC/SSE │
│ Omnia/PoU │ + Merkle root│ Chain 7373 │ axum │
└──────────────┴───────────────┴──────────────┴───────────┘
│ │ │ │
▼ ▼ ▼ ▼
block_tx StateStore eth_* /status
tx_tx broadcast (get_meta/ JSON-RPC /blocks
channels set_meta) /txs/*
/pools/*
/apex/*
/omnia/*

The Omnia stack

  1. APEX — adaptive parameter exchange. Per-block consensus updates of TPS targets, fee curves, and validator rotation.
  2. PoU (Proof of Utility) — file-storage proofs earn rewards alongside block production.
  3. PC (Performance Capping) — anti-MEV: validators that exceed a soft TPS cap forfeit a fraction of rewards.
  4. Insurance / Guardian — emergency-pause multisig + slashing-insurance pool funded by 1% of block rewards.

Modules

Every module ships as chain/src/<name>/{types,keeper,rpc,mod}.rs:

omnia, apex, pou, pc, insurance, guardian, staking_v2, gov_v2, did, dex, file, lightning, wasm, x1, franchise, keychain, token, btc_relay, upgrade.

See Modules for the per-module references.

EVM bridge

The EVM runs as a tab inside the same process. Native Fenryx accounts and EVM accounts share storage through the X1-Contracts layer — call native modules from Solidity via the Fenryx precompile at 0x0000…7373.