Run a Pexli testnet node

One file, no build, no source. Joins the live network and re-verifies every block for itself.

1 · Download

Linux x86_64 — what essentially every VPS and cloud VM runs.

curl -fsSL -o pexli-node https://node.pex.li/pexli-node
chmod +x pexli-node

Verify it before running it. A binary nobody checks is a binary nobody should trust:

curl -fsSL -o pexli-node.sha256 https://node.pex.li/pexli-node.sha256
sha256sum -c pexli-node.sha256
SHA-2560dfb0ff4935af21451916f2009ad46e691e75762e658672eaec0b9554b5436b6
Versionpexli 0.1.0
Size13.6 MB

2 · Join the network

Observer / RPC node — this is the one to start with

Syncs the chain, re-executes and verifies every committed block (rejecting any invalid one) and serves JSON-RPC. It does not stake, propose, or vote — so it cannot halt the chain and is not slashable. No funding and no key needed.

./pexli-node node \
  --observe \
  --genesis-time 1786089003 \
  --bootnodes 54.219.41.241:9000 \
  --advertise YOUR_PUBLIC_IP:9000 \
  --rpc 127.0.0.1:8545 \
  --p2p 0.0.0.0:9000 \
  --data-dir ./pexli-data

Open UDP 9000 in your firewall — that is the P2P port peers dial. Leave RPC on 127.0.0.1 unless you intend to publish it.

Validator

Same binary, --validate instead of --observe, plus a key holding at least 10,000 PEX to bond. Read the note under "Getting stake" first — you cannot do this from the faucet.

./pexli-node node \
  --validate --stake 10000 --key 0xYOUR_FUNDED_KEY \
  --genesis-time 1786089003 \
  --bootnodes 54.219.41.241:9000 \
  --advertise YOUR_PUBLIC_IP:9000 \
  --p2p 0.0.0.0:9000

3 · The two values you cannot get wrong

--genesis-time1786089003
--bootnodes54.219.41.241:9000

The emission schedule — and therefore every state root — is derived from the genesis timestamp. Pass a different number and your node computes different roots, disagrees with the network on every block, and is effectively on its own private chain. It will not error; it will simply never agree. Copy the value above exactly.

4 · Check you are actually on this network

curl -s -X POST 127.0.0.1:8545 -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x0",false]}' \
  | grep -o '"stateRoot":"0x[0-9a-f]*"'

It must equal the genesis state root below. If it does not, you are on a different chain:

Genesis state root0xfb1e317639a3fbb3b50fdf05fd432bd4b65d403b8744316494db1121620c5c34
Chain ID78901 (0x13435)

Getting stake

The faucet hands out 10 PEX — enough to transact, nowhere near the 10,000 needed to bond as a validator. Genesis funds only the deterministic dev accounts, and there is no genesis-file loader yet, so new validators have to be funded by the operator on request. Run an observer today; ask for stake if you want to validate.

Does another node make the network faster?

No — and it is worth being clear about, because it is the usual expectation. Every validator re-executes every transaction; consensus duplicates work rather than dividing it. More nodes buy decentralization, fault tolerance and RPC redundancy, not throughput. Throughput comes from sharding (each machine owning one shard's transactions) or a shorter block time.