No build, no compile
The installer downloads the matching prebuilt geth node binary for your exact OS and CPU. Nothing to scp, no toolchain to wait on.
binary download · ~1sXDC Network · Node Installer
One command to the live chain. Run a full XDC Network node with no build, no scp, no prerequisites but curl. It auto-detects your OS and CPU, pulls the sha256-verified geth binary, restores a recent snapshot, and starts syncing to XDC mainnet (chainId 50) — a fresh machine reaches the tip in minutes. Watch yours appear on the live network status.
curl -fsSL https://xdc.network/install.sh | bash
Prefer erigon, reth, besu or nethermind? Add --client — e.g.
The XDC Network one-command node installer sets up and starts a geth-based XDC node on Linux or macOS. It auto-detects your OS and CPU, downloads a sha256-verified geth binary from xdc.network, restores a recent chain snapshot, and syncs to the live chain in minutes. Run this single command:
$ curl -fsSL https://xdc.network/install.sh | bash
--network.--client xone|erigon|reth|besu|nethermind to spin up a different client. Default (no flag) is always geth. See the client matrix for modes and readiness.curl -fsSL https://xdc.network/one.sh -o one.sh, then bash one.sh setup → start → status.The installer downloads the matching prebuilt geth node binary for your exact OS and CPU. Nothing to scp, no toolchain to wait on.
binary download · ~1sEvery download is sha256-verified before it runs. You get the exact artifact published at xdc.network — checked, then executed.
sha256 · checkedInstead of replaying years of blocks, it restores a recent ~16 GB chain snapshot, then catches up the last stretch to tip.
16 GB restore · 2m 58sReads your OS and CPU — Linux or macOS, amd64 or arm64 — and picks the matching build.
instantFetches the geth node binary from xdc.network and verifies its sha256. No compiling.
1sPulls a recent ~16 GB chain snapshot, integrity-checks it, then extracts the state.
2m 58s + 1m 44sNode boots near the head and runs a short catch-up to the live chain. Every stage prints its own timing.
minutes, not daysFull setup 5m 32s · binary 1s · snapshot 2m 58s · extract 1m 44s → then a short catch-up to tip.
| OS \ CPU | amd64 (x86-64) | arm64 (aarch64) |
|---|---|---|
| Linux | Supported | Supported |
| macOS | Supported | Supported |
Detection is automatic — the installer resolves uname -s / uname -m and pulls the matching geth build. XDC mainnet by default; apothem testnet also available.
| Client | Default mode | Supported modes | Networks | Snapshot | Status |
|---|---|---|---|---|---|
geth |
fast | fast · full · snap · archive | mainnet · apothem · devnet · net5050 | ✓ published | Stable |
xone |
snap | snap · full · archive · validator | mainnet · apothem · devnet · net5050 | not yet | Experimental |
erigon |
minimal | minimal · full · archive | mainnet · apothem · net5050 · devnet | not yet | Beta |
reth |
full | full | apothem · net5050 · mainnet* | not yet | Experimental |
besu |
full | full | apothem · mainnet · net5050† | not yet | Experimental |
nethermind |
fast | fast · full · archive | mainnet · apothem · net5050 · devnet | not needed (SnapSync) | Beta |
* reth on mainnet requires XDC_EXPERIMENTAL=1 or an interactive confirm — M20 consensus fixes are in progress. ·
erigon and reth have no published snapshot; first sync from genesis may take days — the installer prints an explicit time estimate and build-from-source pointer if the binary is not yet published. ·
besu requires Java 21+ (the installer prints a clear install hint if missing). ·
nethermind fast mode uses FastSync + SnapSync and reaches the tip without a published snapshot (hours, not days). ·
† net5050 (chainId 5050) is a private multi-client devnet: the installer forces full-sync from genesis (small chain, ~15–40 min) and wires the net5050 validator peers. geth, xone and nethermind also report to stats.xdcindia.com; besu installs but cannot peer yet (XDPoS2 handshake port pending).
Default curl | bash is unchanged — geth, fast, mainnet. Add --client for anything else.
$ curl -fsSL https://xdc.network/install.sh | bash
$ curl -fsSL https://xdc.network/install.sh | bash -s -- --client erigon --mode minimal
$ curl -fsSL https://xdc.network/install.sh | bash -s -- --client nethermind
$ curl -fsSL https://xdc.network/install.sh | bash -s -- --client nethermind --network net5050
$ curl -fsSL https://xdc.network/install.sh | bash -s -- setup --client besu --network apothem
$ CLIENT=reth NETWORK=apothem ./one.sh start
$ curl -fsSL https://xdc.network/install.sh | bash -s -- --client all
Passing --client all sets up and starts every supported client side-by-side. Each uses its own directory ($HOME/xdc-node for geth, $HOME/xdc-node-<client> for others) and non-colliding port blocks. Clients whose binaries are not yet published degrade gracefully — the fleet continues with the remaining clients. Use ./one.sh --client all status to print a fleet table showing running state, block height, and peer count for each client.
Prefer to see each stage? Download one.sh and run the phases by hand.
# 1 · download the manager $ curl -fsSL https://xdc.network/one.sh -o one.sh # 2 · run the phases $ bash one.sh setup $ bash one.sh start $ bash one.sh status
One script runs the whole lifecycle — bash one.sh [--client <c>] <command>.
setupFetch the verified binary and restore the snapshot (geth); or prepare datadir for genesis sync (other clients).startStart the node; auto-fetches binary if missing.stopStop the node safely.restartStop, then start again.statusSync %, current block, peers, stage timings.logsTail the live node log.attachOpen the geth console (advanced, geth only).clientsPrint the per-client capability matrix (modes, networks, snapshot, status).Select client via env or flag — flags take precedence:
# env-style (existing pattern) $ CLIENT=reth NETWORK=apothem ./one.sh start $ NODETYPE=archive ./one.sh setup # geth archive # flag-style (new) $ ./one.sh --client erigon status $ ./one.sh --client besu --network apothem setup $ ./one.sh clients # print matrix
Run one command on Linux or macOS: curl -fsSL https://xdc.network/install.sh | bash. It auto-detects your OS and CPU, downloads a sha256-verified geth binary from xdc.network, restores a recent chain snapshot, and starts syncing to the live XDC chain. No build or scp is required.
The installer sets up an XDC mainnet node (chainId 50) by default, and also supports the Apothem testnet (chainId 51).
Linux or macOS on an amd64 (x86-64) or arm64 (aarch64) CPU. The only software prerequisite is curl — the installer downloads a prebuilt binary, so there is no build toolchain. Allow roughly 16 GB or more of free disk for the chain snapshot plus headroom for ongoing chain growth.
A snapshot-restored fast node. Instead of replaying every block from genesis, the installer restores a recent ~16 GB chain snapshot and then catches up the last stretch to tip.
Measured full setup was 5m 32s on a datacenter host (binary 1s · snapshot 2m 58s · extract 1m 44s) plus a short catch-up to tip — minutes, not days, because it restores a snapshot instead of replaying every block. Every download is sha256-verified against the artifact published at xdc.network before it runs.
Yes. Download the manager script: curl -fsSL https://xdc.network/one.sh -o one.sh, then run bash one.sh setup, bash one.sh start, and bash one.sh status. Other commands include stop, restart, logs, attach, and clients.
Yes — pass --client erigon|reth|besu|nethermind after bash -s --: curl -fsSL https://xdc.network/install.sh | bash -s -- --client erigon --mode minimal. The default (no flag) is always geth. erigon and nethermind are Beta; reth and besu are Experimental. Non-geth clients degrade gracefully if their binary is not yet published — the installer prints the exact URL it looked for, a build-from-source pointer, and a local-binary override hint, then exits without creating a half-populated data directory. Run ./one.sh clients to print the full capability matrix.
Pass --mode to choose: geth supports fast (default), full, snap (experimental), and archive. erigon supports minimal (default, --prune.mode=minimal), full, and archive. reth supports full only. besu supports full only (XDPoS port validates from genesis). nethermind supports fast (default, FastSync+SnapSync — reaches tip without a snapshot), full, and archive. Clients without a published snapshot sync from genesis; the setup banner prints an honest time estimate up front.