Run a Synchronizer

Host real-time sessions on the Forerunner network. Run a sync node from anywhere — even your home computer. Earn fees for every session you serve.

Get Licensed Download Binary

Download

Pre-built synchronizer binaries for all major platforms. Current release: v0.1.47

Linuxx86_64

Ubuntu, Debian, Arch, and other 64-bit Linux distros.

Download .tar.gz
macOSApple Silicon (arm64)

M1, M2, M3, M4 Macs. Native arm64.

Download .tar.gz
macOSIntel (x86_64)

Pre-2020 Intel Macs.

Download .tar.gz
Windowsx86_64

Windows 10 / 11 64-bit.

Download .zip

Minimum Requirements

CPU
2+ Cores
Any modern x86_64 or ARM
Memory
4 GB RAM
8 GB recommended
Storage
10 GB
SSD preferred
Network
Internet
NAT OK — relay handles traversal
Platform
Linux / macOS / Windows
x86_64 or Apple Silicon

How to Get Started

Follow these steps to download, install, and run a synchronizer node on your platform. The full process takes about 10 minutes.

1

Download and extract

Download the binary for your Mac and extract it. Apple Silicon (M1/M2/M3/M4) use arm64; older Intel Macs use x86_64.

# Apple Silicon (M1/M2/M3/M4)
curl -LO https://forerunnerprotocol.xyz/releases/forerunner-synchronizer-latest-darwin-arm64.tar.gz
tar xzf forerunner-synchronizer-latest-darwin-arm64.tar.gz

# Intel Mac
curl -LO https://forerunnerprotocol.xyz/releases/forerunner-synchronizer-latest-darwin-x86_64.tar.gz
tar xzf forerunner-synchronizer-latest-darwin-x86_64.tar.gz
2

Remove quarantine flag

macOS blocks unsigned binaries by default. Remove the quarantine attribute so the binary can run.

xattr -d com.apple.quarantine synchronizer-node
3

Verify it works

Check that the binary runs and shows the current version.

./synchronizer-node --version
# Expected output: synchronizer-node 0.1.47
4

Generate a wallet

This creates a new wallet at ~/.forerunner/sync-wallet.json. Keep this file safe — it's your node's identity on-chain.

./synchronizer-node get-license

The output will show your wallet address. Copy it — you'll need it for licensing.

5

Get licensed (see licensing section)

Fund wallet with 500 MON, pay treasury, and submit proof. Details in the licensing section below.

6

Start the synchronizer

Launch your node. It will auto-register with the validator network and start accepting sessions immediately.

# Minimal start (auto-discovers validators via gateway)
./synchronizer-node start

# Or with explicit validator registration
./synchronizer-node start \
  --validator https://api.forerunnerprotocol.xyz \
  --api-addr 0.0.0.0:7080

Your sync node is now live. To run it in the background:

nohup ./synchronizer-node start > synchronizer.log 2>&1 &
7

Verify it's running

curl http://localhost:7080/health
# Expected: {"status":"ok"}
1

Download and extract

Download the pre-built binary for Linux x86_64 and make it executable.

curl -LO https://forerunnerprotocol.xyz/releases/forerunner-synchronizer-latest-linux-x86_64.tar.gz
tar xzf forerunner-synchronizer-latest-linux-x86_64.tar.gz
chmod +x synchronizer-node
2

Verify it works

./synchronizer-node --version
# Expected output: synchronizer-node 0.1.47
3

Generate a wallet

Creates a new wallet at ~/.forerunner/sync-wallet.json. Keep this file safe.

./synchronizer-node get-license

Copy the wallet address shown — you'll need it for licensing.

4

Get licensed (see licensing section)

Fund wallet with 500 MON, pay treasury, and submit proof.

5

Start the synchronizer

# Minimal start
./synchronizer-node start

# With explicit validator
./synchronizer-node start \
  --validator https://api.forerunnerprotocol.xyz \
  --api-addr 0.0.0.0:7080
6

(Optional) Set up as a systemd service

For production, run the synchronizer as a system service so it auto-restarts on crashes or reboots.

sudo tee /etc/systemd/system/forerunner-sync.service <<'EOF'
[Unit]
Description=Forerunner Synchronizer
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=$USER
WorkingDirectory=$HOME/forerunner
ExecStart=$HOME/forerunner/synchronizer-node start \
  --validator https://api.forerunnerprotocol.xyz \
  --api-addr 0.0.0.0:7080
Restart=always
RestartSec=5
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable forerunner-sync
sudo systemctl start forerunner-sync
7

Verify it's running

# Direct check
curl http://localhost:7080/health

# Or if using systemd
sudo systemctl status forerunner-sync
journalctl -u forerunner-sync -f
1

Download and extract

Download the Windows build and unzip it. You can use PowerShell or the Explorer right-click menu.

# PowerShell
Invoke-WebRequest https://forerunnerprotocol.xyz/releases/forerunner-synchronizer-latest-windows-x86_64.zip -OutFile forerunner-sync.zip
Expand-Archive forerunner-sync.zip -DestinationPath forerunner
2

Allow through Windows Defender

Windows SmartScreen may flag the binary since it's unsigned. Click "More info" then "Run anyway", or add an exclusion in Windows Security > Virus & threat protection > Exclusions.

3

Verify it works

cd forerunner
.\synchronizer-node.exe --version
# Expected output: synchronizer-node 0.1.47
4

Generate a wallet

Creates a new wallet at %USERPROFILE%\.forerunner\sync-wallet.json.

.\synchronizer-node.exe get-license

Copy the wallet address shown — you'll need it for licensing.

5

Get licensed (see licensing section)

Fund wallet with 500 MON, pay treasury, and submit proof.

6

Allow through Windows Firewall

When starting for the first time, Windows Firewall may prompt you to allow network access. Click "Allow access" for both private and public networks.

7

Start the synchronizer

# Minimal start
.\synchronizer-node.exe start

# With explicit validator
.\synchronizer-node.exe start `
  --validator https://api.forerunnerprotocol.xyz `
  --api-addr 0.0.0.0:7080

To run in the background, use Task Scheduler or run in a minimized PowerShell window:

Start-Process -WindowStyle Minimized -FilePath .\synchronizer-node.exe -ArgumentList "start","--validator","https://api.forerunnerprotocol.xyz"
8

Verify it's running

Invoke-RestMethod http://localhost:7080/health
# Expected: status: ok

License Pricing

500 MON
One-time synchronizer license fee
Chain Monad (Chain ID 143)
License Contract 0x74efddaa82974ce7edd14d56bb10368e36c2adbe
Treasury 0x59F902aBf3F9477fC45349D22a844509B2Db2825

How to Get Licensed

1

Download the binary

Grab the latest synchronizer binary for your platform from the downloads section above (Linux, macOS arm64/x86_64, or Windows), or build from source with cargo build -p synchronizer-node --release.

2

Generate a wallet

Run the license command to create your synchronizer wallet. This generates a keypair at ~/.forerunner/sync-wallet.json.

./synchronizer-node get-license
3

Fund your wallet

Send at least 500 MON to the wallet address printed in the previous step.

4

Send payment to the treasury

Transfer 500 MON from your wallet to the Forerunner treasury address.

Treasury: 0x59F902aBf3F9477fC45349D22a844509B2Db2825
5

Submit proof of payment

Call the licensing endpoint with your wallet address and the transaction hash from step 4.

curl -X POST https://licenses.forerunnerprotocol.xyz/purchase/synchronizer \
  -H 'Content-Type: application/json' \
  -d '{"address":"0xYOUR_WALLET","tx_hash":"0xPAYMENT_TX"}'
6

Start syncing

Launch the synchronizer binary. It auto-registers with the validator network and begins accepting sessions immediately.

./synchronizer-node start --config synchronizer.toml

NAT Traversal

Running a sync node from home? No problem. Forerunner uses a relay bridge so residential nodes work out of the box with zero networking configuration.

No port forwarding

Your sync node connects outbound to the relay server. No router configuration, no static IPs, no firewall rules.

Relay bridge

The built-in relay-bridge.js maintains a persistent outbound connection to the relay. Clients connect through it transparently.

Transparent to clients

Session participants connect the same way regardless of whether the sync node is in a data center or behind a home NAT.

Proven in production

The network currently runs 4 sync nodes — 2 on cloud infrastructure, 2 on residential connections — all serving sessions equally.

Check License Status

Enter a wallet address to verify whether it holds a valid synchronizer license on Monad.

What Synchronizers Earn

Synchronizer operators earn revenue for every session they serve. The more sessions your node handles, the more you earn.

70%

Revenue Share

Of every developer credit spend, 70% goes directly to the synchronizer that hosted the session. Revenue is settled on-chain per epoch.

Session Hosting Fees

Each real-time session consumes credits based on duration and participant count. As the developer-facing fee is deducted, your share is credited automatically.

Scale With Demand

More sessions on the network means more revenue for operators. Run multiple sync nodes to serve more sessions and maximize your earnings.