On this page 11 sections
- The short version
- Full node or validator: what actually differs
- The CPU rule, read carefully
- Disk layout: TrieDB gets its own drive
- Bandwidth and ports
- How to run a Monad node: the setup in ten steps
- Which server for a Monad node
- What the same hardware costs elsewhere
- Running it: monitoring, upgrades and recovery
- Common questions
- Sources
A Monad node needs a bare-metal server with a 16-core CPU at a 4.5 GHz+ base clock, 32 GB of RAM or more, a dedicated 2 TB PCIe Gen4 NVMe drive for TrieDB plus a 500 GB drive for consensus data and the OS, and 100 Mbit/s of bandwidth for a full node or 300 Mbit/s for a validator.
Those figures come from Monad’s node operations documentation as of October 2026. Below, we quote them, explain where the wording needs care (the CPU clock in particular), and walk through the disk layout, ports and installation. This guide covers hardware and setup only; it is not staking or financial advice.
The short version
| Component | Monad’s requirement | In practice |
|---|---|---|
| Server | Bare metal; cloud environments “are not officially supported” | A dedicated server, not a VM or a cloud instance |
| CPU | “16 core CPU with 4.5 GHz+ base clock speed, e.g. AMD Ryzen 9950x, AMD Ryzen 7950x, AMD EPYC 4584PX, etc.” | 16 physical cores with SMT disabled in the BIOS; read the clock caveat below |
| Memory | 32 GB+ RAM | Rarely the constraint; the community hardware list recommends 64 GB |
| TrieDB (execution) | 2 TB dedicated disk | A raw NVMe drive with no filesystem and no RAID |
| MonadBFT and OS | 500 GB disk | The second drive: Ubuntu, the consensus ledger, configs and keys |
| Drive type | PCIe Gen4 x4 NVMe SSD or better, for both | Drive model matters; Monad publishes a ranking |
| Bandwidth | 100 Mbit/s (full node), 300 Mbit/s (validator) | The only hardware requirement that differs between roles |
| Operating system | Ubuntu 24.04 or newer | The monad package comes from Category Labs’ APT repository |
| Ports | 8000 TCP/UDP, 8001 UDP; the guide’s firewall rules also open 8002 | Keep RPC (8080) and metrics (8889) private |
Full node or validator: what actually differs
Monad’s hardware page is explicit: “All requirements are the same between validators (consensus participants) and full nodes aside from bandwidth.” A validator needs 300 Mbit/s instead of 100. The rest of the difference is stake and process:
- Every validator starts as a full node. Once the node is synced to the tip, you register it by calling
addValidatoron the staking precompile with at least 100,000 MON of self-stake. - Joining the active set takes at least 10,000,000 MON of total stake, a place in the top 200 validators by stake weight and a self-stake that stays at 100,000 MON or more. The validator becomes active in the next epoch.
- Full nodes are permissionless. In the public configuration described in the installation guide, a full node joins by connecting to validators that rebroadcast blocks to downstream nodes; no permission is needed.
Delegation from the Monad Foundation adds conditions. Its Validator Delegation Program, whose page was last updated on April 22, 2026, asks for KYC/KYB before delegation, uptime above 98%, upgrades within 48 hours of an announcement, metrics access for the Foundation, and no external RPC service from the validator itself; it suggests a separate full node for that. Its intake criteria include geographic decentralization, so location is part of how applicants are assessed.
The CPU rule, read carefully
The docs ask for a “16 core CPU with 4.5 GHz+ base clock speed” and name three examples. AMD’s spec sheets do not put all three above that line:
| Processor | Cores / threads | Base clock | Max boost | Named by Monad |
|---|---|---|---|---|
| AMD Ryzen 9 7950X | 16 / 32 | 4.5 GHz | 5.7 GHz | Yes |
| AMD Ryzen 9 9950X | 16 / 32 | 4.3 GHz | 5.7 GHz | Yes |
| AMD EPYC 4584PX | 16 / 32 | 4.2 GHz | 5.7 GHz | Yes |
| AMD Ryzen 9 9950X3D | 16 / 32 | 4.3 GHz | 5.7 GHz | No |
| AMD EPYC 4585PX | 16 / 32 | 4.3 GHz | 5.7 GHz | No |
Read literally, only the 7950X clears “4.5 GHz+ base”. AMD defines the base clock as the “average effective base frequency of all cores” and the maximum boost as what a single core reaches in a bursty single-threaded workload, so neither figure says exactly what clock a busy node will sustain. Monad does not say how it measures its own figure.
Our reading is that Monad wants a current 16-core processor with the high clocks of the parts it names. The community hardware list that the docs link to, last updated in November 2025 during the testnet phase, marks both the 9950X at 4.3 GHz and the 4584PX at 4.2 GHz as tested. That is an interpretation, not a guarantee: we do not claim that a 4.3 GHz part meets the requirement as written. If you want the letter of it, the 7950X is the listed CPU that meets it.
Two more CPU details come from the installation guide:
- Disable SMT. The prerequisites call for “Disabled HyperThreading (HT) or Simultaneous MultiThreading (SMT) via BIOS settings”, because “these features degrade the Monad node performance”. A 16-core, 32-thread CPU then runs 16 threads, and
lscpushould report one thread per core. - Count physical cores. The community list spells the requirement out as “16+ physical” cores, so an 8-core CPU with 16 threads does not qualify.
Disk layout: TrieDB gets its own drive
Monad stores state in MonadDb, also called TrieDB, a database built around the Merkle Patricia Trie. It uses asynchronous I/O through io_uring and can bypass the filesystem; the docs recommend running it “directly on block devices”. Hence a strict two-drive layout:
- Drive 1, 500 GB or more: Ubuntu, the MonadBFT ledger under
/home/monad/monad-bft/ledger/, configuration and keystores. The hourlymonad-crufttimer keeps it in check: by default it deletes ledger files older than 10 hours and write-ahead logs and forkpoints older than 5 hours. - Drive 2, 2 TB: TrieDB only, as a single GPT partition across the whole drive, exposed as
/dev/triedbby a udev rule. The guide says this drive “should be on a disk that has no filesystem mounted and no RAID configured”.
A mirrored pair is therefore not the layout Monad expects. On PowerDedi, choose the No RAID layout when you order or reinstall: the system goes on the first drive and the second is left blank, ready to become the TrieDB drive (RAID 1 is the default on two-drive servers). Redundancy comes from elsewhere: a hard reset restores state from a public snapshot, which the docs say takes 1 to 5 minutes on mainnet. What you cannot download again are your keys, which the guide asks you to back up outside the server.
The TrieDB drive must also use 512-byte LBA formatting. The guide gives an nvme id-ns check and, if needed, an nvme format --lbaf=0 reformat, to run before anything is stored on the drive. It also warns, in bold, that formatting the wrong drive will destroy your operating system.
How big is big enough? MonadDb “dynamically adjusts the history length based on available disk space” and compacts automatically at 80% capacity, so a larger drive keeps more recent history. Two data points help. The TrieDB capacity in the installation guide’s own example output, “1.75 Tb”, is what a 1.92 TB drive reports in binary units; a 2 TB drive would show about 1.82. And around the MIP-8 hard fork of September 2, 2026, nodes ran two timelines on that drive, each a full copy of the state, until the old one was decommissioned. A 1.92 TB drive is 4% under the stated 2 TB; a 3.84 TB drive leaves room for longer history and for migrations like that one.
Which drives. Monad’s internal testing ranks the Samsung 980 and 990 Pro first (“top class performance”), then the Samsung PM9A1 (“stable performance under load”), then the Micron 7450, which “has weird random slowdowns under a lot of load”. It lists Nextorage SSDs as known unreliable: they “can become unresponsive under load due to overheating, requiring a system reboot”. Whichever server you rent, check the drive models and their PCIe link with nvme list and lspci on the first day.
Bandwidth and ports
The 100 and 300 Mbit/s figures are connection speeds, not monthly volumes, and Monad’s docs give no monthly traffic estimate. For scale only: 300 Mbit/s sustained for 30 days would be about 97 TB, close to the 100 TB of egress included with the competitor servers compared below. On an unmetered 10 Gbps port, volume does not enter the bill.
| Port | Protocol | Use, per the installation guide | Exposure |
|---|---|---|---|
| 8000 | TCP and UDP | Consensus client P2P traffic | Open, inbound and outbound |
| 8001 | UDP | Authenticated UDP, declared in the node’s signed name record | Open |
| 8002 | UDP | Direct UDP, declared in the testnet name record | Opened by the guide’s firewall rules |
| 8080 | HTTP | JSON-RPC, listening once statesync completes | Private, or behind your own proxy |
| 8889 | HTTP | Metrics from the optional OTEL collector | Private |
ufw allow ssh
ufw allow 8000
ufw allow 8001
ufw allow 8002
ufw enable
# The guide's extra rule against spam: drop small UDP packets on the consensus port
iptables -I INPUT -p udp --dport 8000 -m length --length 0:1400 -j DROP
The iptables rule does not survive a reboot; the guide suggests a tool such as iptables-persistent. Network-level DDoS mitigation, always on for PowerDedi servers, sits in front of these rules but does not replace them.
How to run a Monad node: the setup in ten steps
This is the sequence of Monad’s full node installation guide, condensed. Follow the guide for the exact commands, which change between releases.
- Prepare the machine. Bare metal, Ubuntu 24.04 or newer, SMT off, packages upgraded, then
curl,nvme-cli,aria2andjqinstalled. - Install the package. Add Category Labs’ APT repository, install
monadat the version the guide pins (0.16.4 for mainnet as of October 2026) and hold it withapt-mark hold. The package provides themonad-bftconsensus client,monad-execution,monad-rpc, the one-timemonad-mptinitializer and the hourlymonad-cruftcleanup. - Create the
monaduser and its directories under/home/monad/monad-bft. - Prepare the TrieDB drive: partition, udev rule, 512-byte LBA check, then
systemctl start monad-mptto format it. - Configure the firewall as above; optionally install the OTEL collector for metrics.
- Download the configuration: the
.envfile and either the full node or the validatornode.tomlfrom the Foundation’s bucket. - Create keys. Set a keystore password, generate the BLS and SECP keystores with
monad-keystore, and copy the backup files to a password manager or vault outside the server. - Edit
node.toml: a beneficiary address (the burn address is fine for a full node), a uniquenode_name,enable_client = trueandexpand_to_group = true. Then sign your name record withmonad-sign-name-recordand copy the result into[peer_discovery]. - Import a snapshot. Enable the services, run the hard reset procedure to load a recent snapshot, then start
monad-bft,monad-executionandmonad-rpc. - Check it. The
monad-statusscript reports sync state and peers, and once statesync completes,eth_blockNumberon port 8080 should follow the chain.
Step 4 is where most mistakes happen, so identify the drive before touching it:
# The TrieDB drive is the one with no mountpoints (the OS drive shows /, /boot or swap)
nvme list
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,MODEL
# Example with /dev/nvme1n1 as the blank drive
parted /dev/nvme1n1 mklabel gpt
parted /dev/nvme1n1 mkpart triedb 0% 100%
nvme id-ns -H /dev/nvme1n1 | grep 'LBA Format' | grep 'in use'
For a validator, register only after the full node is synced, using the validator node.toml and a real beneficiary address. The open-source staking-sdk-cli tool that the docs point to handles the registration call.
Which server for a Monad node
Mapping the requirements to PowerDedi configurations, all with a 10 Gbps unmetered port and month-to-month billing:
| Configuration | CPU | Memory | Drives, in Monad’s layout | Price, delivery, cities |
|---|---|---|---|---|
| Ryzen 9 9950X | 16 cores, 4.3 GHz base, 5.7 GHz boost; a CPU Monad names | 128 GB DDR5 | 2 × 1.92 TB NVMe: one for Ubuntu and MonadBFT, one raw for TrieDB | $159/month, about 15 minutes; AMS, FRA, LON, NYC, MIA, LAX, SIN, TYO |
| Ryzen 9 9950X3D | 16 cores, 4.3 GHz base, 128 MB of L3 cache | 192 GB DDR5 | 2 × 3.84 TB NVMe: a TrieDB drive nearly twice the guideline, for longer history | $219/month, about 15 minutes; AMS, FRA, NYC, LAX |
| EPYC 4585PX | 16 cores, 4.3 GHz base, 0.1 GHz above the 4584PX Monad names | 128 GB DDR5 ECC | 2 × 1.92 TB NVMe, same layout as the 9950X | $179/month, about 15 minutes; AMS, FRA, LON, NYC |
Three caveats, stated plainly:
- Clock. AMD rates all three at 4.3 GHz base: the same as the 9950X in Monad’s list, and 0.2 GHz under the figure as written. We do not sell the 7950X.
- TrieDB size. On the 9950X and the 4585PX, the TrieDB drive is 1.92 TB, 4% under 2 TB, as discussed above. The 9950X3D gives it 3.84 TB.
- No mirror. With one drive given to TrieDB, the OS drive is not mirrored. Keep your key backups off the server.
SMT is a BIOS setting. With IPMI/KVM in the browser you have the console from power-on, which is also how you install Ubuntu from an ISO onto a single drive if you prefer that to the one-click images. Open a ticket before you install if anything there is unclear. For a validator that wants ECC memory, the 4585PX is the option; for a full node that serves RPC and keeps more history, the 9950X3D.
What the same hardware costs elsewhere
Cherry Servers, a bare-metal provider, sells both Ryzen models Monad names. Its public list prices, checked on October 15, 2026, with VAT not added:
| Server | Base clock | RAM / NVMe | Network | Monthly price |
|---|---|---|---|---|
| Cherry Servers Ryzen 9 7950X | 4.5 GHz | 128 GB ECC / 2 × 1 TB | 3 Gbps uplink, 100 TB of egress included | €199 ($232.83) on monthly billing; €169.15 a month billed annually |
| Cherry Servers Ryzen 9 9950X | 4.3 GHz | 128 GB / 2 × 1 TB | 10 Gbps uplink, 100 TB of egress included | €349 ($408.33); €439 ($513.63) in Tokyo and Singapore |
| PowerDedi Ryzen 9 9950X | 4.3 GHz | 128 GB / 2 × 1.92 TB | 10 Gbps port, unmetered | $159 in every city where it is offered |
Cherry’s 7950X is the one configuration here that meets “4.5 GHz+ base” to the letter, which is a fair reason to choose it. Its default 2 × 1 TB drives are below the 2 TB TrieDB guideline, though; the configurator takes up to three disks, at a price we have not included. We sell the servers in the last row, so read this as a disclosed comparison: the competitor prices are public and dated.
Running it: monitoring, upgrades and recovery
- Watch TrieDB.
monad-mpt --storage /dev/triedbshows capacity, usage and how much history the database retains. - Upgrade deliberately. The guide pins and holds the package version, and release notices go out on the Monad Node Announcements Telegram group and the developer Discord. Validators in the Delegation Program are expected to upgrade within 48 hours.
- Recover with a hard reset. It wipes local state, imports a recent snapshot from the Monad Foundation or Category Labs, then catches up through statesync and blocksync, typically in under five minutes when the snapshot is a few hours old.
- Protect the keys. Lose the keystore backups and a validator cannot be migrated; re-registering under a new identity means moving every delegation manually.
- Harden the host. The services already run as the unprivileged
monaduser; add SSH keys and a private RPC port. Our first-hour hardening checklist covers the rest.
Common questions
Can I run a Monad node on a VPS or a cloud instance? Not in a supported way. The docs say cloud VMs “may work under light loads” but “cannot guarantee consistent real-time performance required by Monad consensus at scale”, because blocks are proposed and voted on in sub-second intervals.
Is 32 GB of RAM enough? It is the documented minimum. The community hardware list recommends 64 GB and ECC memory for production.
Which kernel? The docs ask for Ubuntu 24.04 or newer. The community list warns that kernels 6.8.0.56 to 6.8.0.59 can make Monad clients hang and recommends 6.8.0.60 or later.
Can my validator also serve RPC? Every node runs the RPC service, but the Delegation Program bars validators from serving external RPC and points to a separate full node. Two servers, then: one validator, one full node.
For other chains, see our Ethereum node hardware guide or the blockchain node hosting overview, where every configuration can be paid for in BTC, ETH, XMR, USDT on TRON or SOL.
Sources
- Hardware Requirements — Monad Documentation
- Full Node Installation — Monad Documentation
- Validator Installation — Monad Documentation
- General Operations — Monad Documentation
- Hard Reset Instructions — Monad Documentation
- MonadDb — Monad Documentation
- MIP-8 Activation and Page Storage Migration — Monad Documentation
- Validator Delegation Program (VDP) — Monad Documentation (updated April 22, 2026)
- Monad HCL - Hardware Compatibility List — community-maintained (updated November 5, 2025)
- AMD Ryzen 9 9950X, AMD Ryzen 9 7950X, AMD EPYC 4584PX, AMD Ryzen 9 9950X3D and AMD EPYC 4585PX specifications — AMD
- AMD RYZEN 7950X and AMD RYZEN 9950X — Cherry Servers (checked October 15, 2026)




