Every Monero wallet needs a node to sync with. Use a public remote node and that stranger learns your IP address, when you open your wallet and when you send; run your own and the only server your wallet talks to is yours. A VPS makes that easy: it is online all the time, so your phone and laptop sync quickly from anywhere. This guide picks the right size, installs monerod from verified binaries, and connects your wallets to it safely.
Pruned or full
Like Bitcoin Core, monerod downloads and verifies the whole chain either way. A pruned node then throws away most of the signature data of old transactions, which nobody needs once they are verified, and keeps about a third of the chain; a full node keeps everything and can serve the complete history to other nodes.
| Setup | Disk today | What it can do | Fits on |
|---|---|---|---|
| Pruned node | About 113 GB (105 GiB) | Sync your own wallets, act as a private remote node for your devices | VPS-4 (160 GB NVMe) |
| Full node | About 285 GB (265 GiB) | All of the above, plus serving full blocks to peers that sync from scratch | VPS-16 (640 GB NVMe); VPS-8 (320 GB) only just |
These are the Monero documentation’s own figures, as of 5 October 2026. The full chain grows by roughly 20 to 30 GB a year and a pruned one by about 10 GB, so VPS-4 leaves a pruned node about three years of growth. For a personal node a pruned one is the right choice: your wallet cannot tell the difference.
Disk, memory, CPU and traffic
- Disk: Monero’s LMDB database does many small random reads, and monerod warns when it finds itself on a hard disk: “The blockchain is on a rotating drive: this will be very slow, use an SSD if possible”. That is why we recommend the Standard plans with NVMe for Monero rather than the Storage line.
- Memory: the Monero documentation recommends 4 GB or more; VPS-4 has 8 GB.
- CPU: the first sync is the CPU-heavy part, where more cores help; once the node is synced, the load is light.
- Traffic: the first sync downloads the chain once; after that, traffic depends on your peers and on how many wallets you serve. monerod caps its upload at 8192 kB/s by default, and the configuration below lowers that with
limit-rate-up. Every plan includes several terabytes a month; past the allowance the port slows to 100 Mbps and nothing is billed.
Install monerod and verify it
The Monero release hashes are listed in a file signed by binaryFate, the maintainer who signs releases. Check the signing key’s fingerprint, then the signature on the list, then the hash of your download:
cd /tmp
wget -O monero-linux-x64.tar.bz2 https://downloads.getmonero.org/cli/linux64
wget https://www.getmonero.org/downloads/hashes.txt
wget https://raw.githubusercontent.com/monero-project/monero/master/utils/gpg_keys/binaryfate.asc
gpg --show-keys --fingerprint binaryfate.asc
gpg --import binaryfate.asc
gpg --verify hashes.txt
sha256sum monero-linux-x64.tar.bz2
grep linux-x64 hashes.txt
Before importing the key, check the fingerprint the first gpg command prints: it must read 81AC 591F E9C4 B65C 5806 AFC3 F0AF 4D46 2A0B DF92, as published in the verification guide on getmonero.org. gpg --verify must report a good signature from binaryFate, and the two SHA-256 values must be identical. Then install the daemon and create a system user:
tar xjf monero-linux-x64.tar.bz2
install -m 0755 -o root -g root monero-x86_64-linux-gnu-*/monerod /usr/local/bin/
adduser --system --group --home /var/lib/monero monero
Configure the node
mkdir -p /etc/monero
cat > /etc/monero/monerod.conf <<'EOF'
data-dir=/var/lib/monero
log-file=/var/lib/monero/monerod.log
# Pruned node; remove both lines for a full node.
prune-blockchain=1
sync-pruned-blocks=1
# Peer-to-peer network.
p2p-bind-ip=0.0.0.0
p2p-bind-port=18080
out-peers=32
in-peers=64
# Upload cap in kB/s (default 8192).
limit-rate-up=2048
enable-dns-blocklist=1
no-igd=1
# Restricted RPC for your wallets: no admin commands.
rpc-restricted-bind-ip=0.0.0.0
rpc-restricted-bind-port=18089
# Full RPC stays on the server.
rpc-bind-ip=127.0.0.1
rpc-bind-port=18081
EOF
The restricted RPC port answers the calls a wallet needs to sync and send, and refuses everything that could change the node’s settings, so it is the one to point your wallets at. To offer it to other people’s wallets as a public node, add public-node=1, which advertises the restricted port over the peer-to-peer network; the Monero documentation warns that this can use a sizeable amount of resources.
Run it as a service
cat > /etc/systemd/system/monerod.service <<'EOF'
[Unit]
Description=Monero daemon
After=network-online.target
Wants=network-online.target
[Service]
User=monero
Group=monero
ExecStart=/usr/local/bin/monerod --config-file /etc/monero/monerod.conf --non-interactive
Restart=on-failure
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
EOF
chown -R monero:monero /var/lib/monero
systemctl daemon-reload
systemctl enable --now monerod
ufw allow 22/tcp
ufw allow 18080/tcp comment monero-p2p
ufw enable
Follow the sync with monerod status, which prints the current height against the network’s and a percentage. The first sync is the long part: disk speed limits it most, then CPU and peers.
Connect your wallets
Feather, Cake Wallet, Monerujo and the official GUI all accept a custom node as an address and a port. You have three ways to reach it, from simplest to most private:
- Open the restricted port to your own addresses only, for example
ufw allow from 203.0.113.7 to any port 18089 proto tcpwith your home or office IP, then use the server’s IPv4 and port 18089 in the wallet. - Through an SSH tunnel or WireGuard: forward port 18089 to the server and point the wallet at
127.0.0.1:18089. Nothing is exposed to the internet. - As a Tor onion service, so the wallet reaches the node without revealing your IP even to your own server’s logs:
apt install -y tor
cat >> /etc/tor/torrc <<'EOF'
HiddenServiceDir /var/lib/tor/monerod/
HiddenServicePort 18089 127.0.0.1:18089
EOF
systemctl restart tor
cat /var/lib/tor/monerod/hostname
Enter the .onion address with port 18089 in a wallet that supports Tor, such as Feather. Because every request then reaches monerod from 127.0.0.1, add disable-rpc-ban=1 to the configuration so the node does not ban its own onion service after a burst of wallet requests. Tor relays are welcome on our network; exit nodes are not.
Mining: on dedicated servers, not on a VPS
Running a node is welcome on every plan. Mining is not allowed on VPS and RDP plans, where it would slow down other customers on the same host; it is allowed on dedicated and GPU servers, where you have the whole machine. If you mine with P2Pool on a dedicated server, add zmq-pub=tcp://127.0.0.1:18083 to the configuration so P2Pool can follow new blocks from your own node.
Keeping it healthy
- Upgrades: repeat the download and the three checks, replace
monerodand restart the service. Monero announces network upgrades months ahead; none is scheduled as of October 2026, and when one is, upgrade before the fork height or your node will stop following the network. - Disk:
du -sh /var/lib/moneroonce a month; resize the plan before the volume passes 85%. - Snapshots: take one once the node is synced, and before every upgrade.
- Privacy of the server itself: pay for it in Monero from your own wallet if the payment trail matters; how our Monero deposits work explains what we see.
VPS-4 runs a pruned node with about three years of headroom for $6.99 a month, and VPS-16 holds the full chain for years. Pay in XMR with an e-mail-only account; the Monero node VPS page lists the plans that fit.
