Run a Full Node
The Shardeum mainnet has successfully upgraded to v1.1.0 (Cosmos EVM v0.6.3). Network operations have resumed, and v1.1.0 is the current mainnet release. New nodes syncing from genesis must follow the historical binary instructions in the Start and Sync the Node section below.
View upgrade details | Download v1.1.0
A full node verifies blocks, relays network data, and can optionally serve RPC endpoints for dApps and infrastructure partners. Full nodes do not participate in consensus and do not require staking.
1. System Requirements
Recommended:
- OS: Ubuntu 22.04 LTS
- CPU: 4 cores
- RAM: 8–16 GB
- Storage: 500 GB+ NVMe SSD
- Network: 100 Mbps
- Dependencies: git, jq, curl, make, build-essential, pkg-config
- Go: v1.25+
Install dependencies:
Install Go:
2. Install Shardeum Node Binary
Add the Go bin directory to PATH:
Verify the installation:
3. Environment Variables
4. Initialize the Node
Choose a node ID and moniker (ASCII only):
5. Copy Genesis File
6. Start and Sync the Node
Before You Start: Syncing a New Node From Genesis After a State-Breaking Upgrade
Skip this section if your node is already synced past the latest upgrade height or if you are restoring from a compatible post-upgrade snapshot.
If a compatible post-upgrade snapshot is available, use the snapshot to bootstrap the node with the current binary. The Cosmovisor instructions below are only for nodes syncing from genesis.
When syncing a new node from genesis after a state-breaking upgrade, the node must use the binary version that corresponds to each part of the chain history.
For the current Shardeum mainnet chain history:
- Use
v1.0.2to sync from genesis until the upgrade at height7,927,860. - At the upgrade, Cosmovisor switches the node to
v1.1.0. - Continue syncing with
v1.1.0.
Use Cosmovisor to manage the binary switch at the upgrade height.
Set Up Cosmovisor and the Required Binaries
Install Cosmovisor:
Cosmovisor uses the node's home directory to store and manage the binaries required for each part of the chain history. Set the required environment variables:
Run the remaining Cosmovisor commands in the same shell session so these environment variables remain available.
Download the required Shardeum binaries from the official releases:
Important: Use the current
v1.0.2binary from the official release. An earlierv1.0.2binary published before October 16, 2026 cannot replay Shardeum mainnet from genesis.
Verify the SHA-256 checksums:
Both commands should return OK.
Make the binaries executable:
Initialize Cosmovisor with v1.0.2 as the genesis binary:
Add v1.1.0 using the exact upgrade name:
Verify that both binaries are in place:
Cosmovisor starts with v1.0.2. When the node reaches the upgrade at height 7,927,860, it detects the onchain upgrade and switches to v1.1.0 automatically.
Start a Genesis Sync With Cosmovisor
If you followed the genesis-sync instructions above, start the node through Cosmovisor:
Start the Node Normally
If you skipped the genesis-sync section because your node is already past the latest upgrade height or you restored from a compatible post-upgrade snapshot, start the node normally:
Monitor:
Or tail the log:
Sync is complete when block height matches the explorer.
7. Optional: Run as systemd Service
A systemd service can automatically restart the node and simplify node management.
Check the installed binary paths:
Create the service file:
Choose one of the following service configurations depending on how the node was started.
The examples below assume the node was installed and initialized as the
rootuser. If you used another system user, replaceUser=root,/root/.mainnet/node0, and/root/go/binwith the corresponding user and paths.
Standard systemd Service
Use this configuration if the node is running directly with shardeumd.
Replace <shardeumd-binary-path> with the path returned by:
If you used a different node ID, replace node0 with that node ID.
systemd Service With Cosmovisor
If you followed the genesis-sync instructions in the previous section and configured Cosmovisor, use this service configuration instead of the standard configuration above.
Replace <cosmovisor-binary-path> with the path returned by:
If you used a different node ID, replace node0 in both DAEMON_HOME and --home.
If the node is already running from the previous section, stop the manually started process before starting it through systemd.
After saving the applicable service configuration, reload systemd and enable the service:
View the service logs with:
8. Optional: Enable JSON-RPC
Edit:
$HOME/.mainnet/$NODE_ID/config/app.toml
Enable:
Restart the node after saving the changes. If using systemd:
9. Firewall Configuration
Before enabling UFW, allow SSH access:
Allow P2P traffic:
If this node is intentionally serving public JSON-RPC, also allow:
Then enable and check the firewall:
Only expose JSON-RPC publicly when required. For production RPC services, restrict access where appropriate and use suitable rate limiting and reverse-proxy protections.
10. Optional: Pruning Settings
Full nodes can reduce storage usage.
Edit app.toml:
Or for higher performance:
Restart node after making changes.
11. Node Management Commands
Checking Node Status
Sync status:
Node ID:
Check peers:
Check logs:
Or if running without systemd:
Account and Balance Management
List all keys:
Account balance:
Stopping the Node
If running shardeumd directly:
If running through Cosmovisor manually:
If using systemd:
12. Troubleshooting
Node Won't Sync
Check peer connections:
Common fixes:
- Verify the seed list in the node start command or systemd service configuration.
- Try adding more persistent peers
- Check your time sync (NTP):
timedatectl status - Check port 27656 is open
Out of Disk Space
Check disk usage:
Solutions:
- For full nodes: Enable pruning in
app.toml: - Or use custom pruning:
- Increase disk space
Important: If running as Archive Node with --pruning nothing , you need adequate storage for complete history.
RPC Not Responding
- Check firewall rules:
sudo ufw status - Verify RPC enabled in
app.toml - Confirm bind address is correct (
0.0.0.0:8545for external access) - Check node is fully synced
- Restart the service:
sudo systemctl restart shardeumd
13. Important Notes
- Chain ID:
shardeum_8118-1(mainnet) - EVM Chain ID:
8118(hex:0x1fb6) for MetaMask and EVM interactions - Unbonding Period: 21 days (if you later become a validator)
- Archive Node: Use
--pruning nothingflag to maintain complete history - Backups: Always back up
node_key.jsonsecurely
Full Node Complete
Your Shardeum full node is now running and contributing to network decentralization.
You may proceed to:
- Promote it to a validator, or
- Enable RPC for dApps, or
- Pair with a sentry node for validator security