Architecture
The chain
The chain is a fork of cosmos/evm v0.7.0 rebranded to BabyChain identity. It is a single binary (evmd) that runs the CometBFT consensus engine, the Cosmos SDK base app, and the EVM execution environment side by side.
Why a fork and not a chain plugin? Cosmos EVM ships as a library that can be wired into a fresh
app.go. We chose to fork the whole repository so the binary, the precompiles, the AnteHandler, and the chain ID are all under one brand. The precompiles and the EIP-1559 fee market are the parts most likely to diverge from upstream.At a glance
| Upstream | cosmos/evm v0.7.0 |
| Binary | evmd (rebranded from evmosd) |
| Consensus | CometBFT (PoA, single validator locally) |
| EVM | go-ethereum core, exposed via JSON-RPC |
| Chain ID (local) | babychain_2027-1 |
| Block time | ~1.2s target, ~1s finality |
| Precompiles | standard EVM + Cosmos bank/ staking/ gov/ IBC |
| Token | native a2baby (1B hard cap) |
What it does
- Runs the consensus engine and produces blocks.
- Exposes JSON-RPC, WebSocket, and REST endpoints for wallets, the gateway, and the explorer.
- Hosts the EVM execution environment so any EVM tool (MetaMask, ethers.js, Foundry) works without changes.
- Maintains the native token, validator set, IBC channels, and governance.
What it does not do
- No fee abstraction in dev. The local chain uses the standard EIP-1559 fee market. The team has not yet wired a paymaster or a meta-transaction relayer.
- No public mempool policy. The default mempool is the CometBFT in-process mempool. There is no private pool, no Flashbots-style bundle relay, and no MEV-aware ordering.
- No slashing. Single validator, PoA, so there is nothing to slash. The validator set is a config artifact (
genesis.json).
Port map
| Port | Service | Use |
|---|---|---|
8545 |
JSON-RPC | EVM calls (eth_*) |
8546 |
WebSocket | EVM subscriptions |
26657 |
CometBFT RPC | consensus-level queries |
1317 |
REST | Cosmos SDK + EVM REST |
9090 |
gRPC (optional) | native gRPC for indexers |
6065 |
pprof (dev only) | profiling |
8545 and 26657 are never exposed to the public internet in this stack. All EVM traffic goes through gateway/ first. See Threat model for why.Source
chain/evmd/is the binary entry point.chain/app/is the Cosmos SDK app wiring.chain/precompiles/are the EVM precompiles (bank, staking, gov, IBC, distribution).chain/babychain_local.shis the local dev entry point that produces a single-validator genesis and starts the node.chain/RUN_GUIDE.mdis the full operational guide.
