monad-bft— the BFT consensus role.monad-execution— the execution-layer state engine.monad-rpc— the Ethereum-compatible JSON-RPC / WebSocket front-end.
monad user, and a metrics collector that the Agent sets up for you during install. To provision a host, see Provision on bare metal.
To deploy a node, open Deploy node, pick Monad, then choose a network. The three roles are deployed as one unit on a single version — you pick one version and all three roles use it. The wizard offers exactly the networks and versions your target executor declares; if a version isn’t listed, that executor can’t run it.
Networks and resources
| Network |
|---|
mainnet |
testnet |
data volume — the three roles’ defaults are summed into a single total you size in one input. Lower the defaults only if you know your workload fits.
| Role | mainnet CPU / RAM | testnet CPU / RAM |
|---|---|---|
monad-bft | 4 cores / 12 GiB | 4 cores / 8 GiB |
monad-execution | 10 cores / 18 GiB | 4 cores / 4 GiB |
monad-rpc | 2 cores / 4 GiB | 1 core / 2 GiB |
data volume defaults to 2510 GiB on mainnet (500 + 2000 + 10) and 605 GiB on testnet (100 + 500 + 5); the execution role drives most of it. Size it correctly — it matters more than for any other chain.
Clients
All three roles use a single client version, picked once in the wizard. The roles are versioned in lock-step — there is no “upgrade execution without consensus” path.| Role | Client | Versions |
|---|---|---|
consensus | monad-bft | 0.14.4, 0.14.3, 0.14.2, 0.14.1 |
execution | monad-execution | 0.14.4, 0.14.3, 0.14.2, 0.14.1 |
rpc | monad-rpc | 0.14.4, 0.14.3, 0.14.2, 0.14.1 |
Ports
| Name | Port | Role | Notes |
|---|---|---|---|
| Consensus P2P (TCP / UDP) | 8000 | monad-bft | |
| Peer auth | 8001 | monad-bft | |
| JSON-RPC (HTTP) | 8080 | monad-rpc | |
| WebSocket RPC | 8081 | monad-rpc | Enabled by default; set WS_PORT to change |
| Metrics (Prometheus) | 8889 | metrics collector |
monad-rpc serves HTTP; the consensus and execution roles have no public endpoint and are observed through metrics.
Configuration overrides
Set overrides at deploy time in the wizard’s config step, or later from a node’s detail page on the Configuration tab. For the full editing flow, see Edit node configuration. The toggles you’ll commonly set:| Key | Type | Description |
|---|---|---|
BENEFICIARY | string | Reward beneficiary. Full nodes may use the burn address |
ENABLE_WEBSOCKET | boolean | Enable WebSocket RPC (default true) |
WS_PORT | number | WebSocket port when ENABLE_WEBSOCKET=true (default 8081) |
ENABLE_TRACE_CALLS | boolean | Enable execution-layer call tracing (default false) |
Monitoring
The node page surfaces per-role status, block height, peers, sync progress, disk usage, and Monad-specific consensus and sync counters. See Node monitoring.What you can build
- Public RPC node — accept the defaults and expose
:8080(HTTP) and:8081(WebSocket) behind your own proxy. - Test-network sandbox — deploy a
testnetnode first; it’s far cheaper than mainnet and lets you rehearse the bare-metal setup before committing mainnet-sized storage.