1 year PowerDedi turns 1: −20% on every server with code Ends in 14 h Claim offer

PowerDedi

Guides

Monad node hardware requirements: how to run a full node or validator

What a Monad full node or validator needs, from the official node operations docs: bare metal, 16 cores and what the 4.5 GHz base-clock rule really means, the TrieDB drive layout, bandwidth, ports, setup steps and current prices.

By PowerDedi Engineering · · 12 min read

On this page 11 sections
  1. The short version
  2. Full node or validator: what actually differs
  3. The CPU rule, read carefully
  4. Disk layout: TrieDB gets its own drive
  5. Bandwidth and ports
  6. How to run a Monad node: the setup in ten steps
  7. Which server for a Monad node
  8. What the same hardware costs elsewhere
  9. Running it: monitoring, upgrades and recovery
  10. Common questions
  11. 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

ComponentMonad’s requirementIn practice
ServerBare 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
Memory32 GB+ RAMRarely the constraint; the community hardware list recommends 64 GB
TrieDB (execution)2 TB dedicated diskA raw NVMe drive with no filesystem and no RAID
MonadBFT and OS500 GB diskThe second drive: Ubuntu, the consensus ledger, configs and keys
Drive typePCIe Gen4 x4 NVMe SSD or better, for bothDrive model matters; Monad publishes a ranking
Bandwidth100 Mbit/s (full node), 300 Mbit/s (validator)The only hardware requirement that differs between roles
Operating systemUbuntu 24.04 or newerThe monad package comes from Category Labs’ APT repository
Ports8000 TCP/UDP, 8001 UDP; the guide’s firewall rules also open 8002Keep 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 addValidator on 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:

ProcessorCores / threadsBase clockMax boostNamed by Monad
AMD Ryzen 9 7950X16 / 324.5 GHz5.7 GHzYes
AMD Ryzen 9 9950X16 / 324.3 GHz5.7 GHzYes
AMD EPYC 4584PX16 / 324.2 GHz5.7 GHzYes
AMD Ryzen 9 9950X3D16 / 324.3 GHz5.7 GHzNo
AMD EPYC 4585PX16 / 324.3 GHz5.7 GHzNo

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 lscpu should 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 hourly monad-cruft timer 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/triedb by 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.

PortProtocolUse, per the installation guideExposure
8000TCP and UDPConsensus client P2P trafficOpen, inbound and outbound
8001UDPAuthenticated UDP, declared in the node’s signed name recordOpen
8002UDPDirect UDP, declared in the testnet name recordOpened by the guide’s firewall rules
8080HTTPJSON-RPC, listening once statesync completesPrivate, or behind your own proxy
8889HTTPMetrics from the optional OTEL collectorPrivate
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.

  1. Prepare the machine. Bare metal, Ubuntu 24.04 or newer, SMT off, packages upgraded, then curl, nvme-cli, aria2 and jq installed.
  2. Install the package. Add Category Labs’ APT repository, install monad at the version the guide pins (0.16.4 for mainnet as of October 2026) and hold it with apt-mark hold. The package provides the monad-bft consensus client, monad-execution, monad-rpc, the one-time monad-mpt initializer and the hourly monad-cruft cleanup.
  3. Create the monad user and its directories under /home/monad/monad-bft.
  4. Prepare the TrieDB drive: partition, udev rule, 512-byte LBA check, then systemctl start monad-mpt to format it.
  5. Configure the firewall as above; optionally install the OTEL collector for metrics.
  6. Download the configuration: the .env file and either the full node or the validator node.toml from the Foundation’s bucket.
  7. 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.
  8. Edit node.toml: a beneficiary address (the burn address is fine for a full node), a unique node_name, enable_client = true and expand_to_group = true. Then sign your name record with monad-sign-name-record and copy the result into [peer_discovery].
  9. Import a snapshot. Enable the services, run the hard reset procedure to load a recent snapshot, then start monad-bft, monad-execution and monad-rpc.
  10. Check it. The monad-status script reports sync state and peers, and once statesync completes, eth_blockNumber on 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:

ConfigurationCPUMemoryDrives, in Monad’s layoutPrice, delivery, cities
Ryzen 9 9950X16 cores, 4.3 GHz base, 5.7 GHz boost; a CPU Monad names128 GB DDR52 × 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 9950X3D16 cores, 4.3 GHz base, 128 MB of L3 cache192 GB DDR52 × 3.84 TB NVMe: a TrieDB drive nearly twice the guideline, for longer history$219/month, about 15 minutes; AMS, FRA, NYC, LAX
EPYC 4585PX16 cores, 4.3 GHz base, 0.1 GHz above the 4584PX Monad names128 GB DDR5 ECC2 × 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:

ServerBase clockRAM / NVMeNetworkMonthly price
Cherry Servers Ryzen 9 7950X4.5 GHz128 GB ECC / 2 × 1 TB3 Gbps uplink, 100 TB of egress included€199 ($232.83) on monthly billing; €169.15 a month billed annually
Cherry Servers Ryzen 9 9950X4.3 GHz128 GB / 2 × 1 TB10 Gbps uplink, 100 TB of egress included€349 ($408.33); €439 ($513.63) in Tokyo and Singapore
PowerDedi Ryzen 9 9950X4.3 GHz128 GB / 2 × 1.92 TB10 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/triedb shows 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 monad user; 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

PowerDedi Engineering

The team that builds, racks and runs every PowerDedi server. We write about the hardware, networks and costs we deal with every day, and we cite our sources.

Related articles

All articles

Your next server is 15 minutes away.

From $55/month with 10 Gbps unmetered, no setup fee and no contract.

Live in ~15 minCancel anytimeBTC, ETH, XMR, USDT or SOL