An EVM-compatible blockchain built on Hotmint consensus.
nbnet pairs the revm execution engine with Hotmint's HotStuff-2 BFT consensus to deliver a fully Ethereum-compatible chain — with no C/C++ dependencies in the critical path.
┌─────────────────────┐
│ JSON-RPC (8545) │
│ eth_* web3_* net_* │
└──────────┬──────────┘
│
┌──────────▼──────────┐
│ EvmExecutor │
│ (Application trait) │
└──┬────┬────┬────────┘
│ │ │
┌─────────┘ │ └──────────┐
│ │ │
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼──────┐
│ TxPool │ │ State │ │ Precompiles │
│ (mempool) │ │ (vsdb) │ │ staking/ │
└───────────┘ └─────┬─────┘ │ balances │
│ └─────────────┘
┌─────▼─────┐
│ revm │
└───────────┘
┌────────────────────────────────────────┐
│ Hotmint (HotStuff-2 consensus) │
└────────────────────────────────────────┘
| Crate | Description |
|---|---|
nbnet-types |
EVM type definitions: EvmChainConfig, transactions, receipts |
nbnet-state |
vsdb-backed EVM world state (revm::Database impl) |
nbnet-txpool |
Ethereum mempool with (sender, nonce) semantics and RBF |
nbnet-precompile |
Custom precompiles bridging EVM to Hotmint staking/balances |
nbnet-execution |
EvmExecutor implementing the Hotmint Application trait |
nbnet-rpc |
Ethereum JSON-RPC server (axum-based) |
nbnet-node |
Node binary nb and benchmark binary bench-nbnet |
# Initialize node
nb init --home ~/.nbnet
# Start node
nb node --home ~/.nbnet
# Start node with custom RPC address
nb node --home ~/.nbnet --rpc-addr 0.0.0.0:8545The JSON-RPC endpoint is compatible with MetaMask, Foundry, Hardhat, and Web3.js.
make build # build workspace
make test # run tests
make bench-nbnet # run throughput benchmark- hotmint — HotStuff-2 BFT consensus engine
- revm — EVM execution
- vsdb — pure-Rust versioned key-value storage
- alloy — Ethereum primitives and transaction types
GPL-3.0-only