monad-sonar

Read the Monad validator peer set without running a node — by speaking the discovery protocol directly, from any ordinary server.

open source · GPLv3 testnet + mainnet off-node CORS-enabled feeds
Mainnet peers
Testnet peers
Refresh cadence
30 min
systemd timer, off-node

Public feeds

mainnet-peers.jsonlive mainnet peer name records testnet-peers.jsonlive testnet peer name records index.jsonpeer counts + refresh timestamps

Each record is { secp, ip, port, authPort, seq } — the same name records the protocol defines. CORS is open, fetch them straight from a browser dApp or explorer.

How it works

Protocol-faithful

Speaks Monad's real peer-discovery protocol (authenticated ping/pong + PeerLookup), reusing the official monad-bft crates.

Off the validator

Runs anywhere — a laptop, CI, a small VPS. Nothing touches a signing host, no NVMe, no state sync.

Composable

A building block for explorers, dashboards and observed-data layers. Prooflines' geo-latency map runs on these feeds.

Run it yourself

# build (pure Rust, ~9.5 MB clone, no node required)
git clone https://github.com/ColinkaMir/monad-sonar && cd monad-sonar
cargo build --release

# read the testnet or mainnet peer set, write JSON
./target/release/monad-sonar --network mainnet peers \
  --config configs/mainnet.toml --run-secs 100 --out peers.json