Skip to content
Block height specification no chain yet
Active validators 0 / 75 floor 7 · standby 0
Security tier not yet established
TPS · current specification
ADM in circulation 0 specification only
Network status Open view validators, blocks, mempool
Specification phase. Values shown are placeholders for layout. No live chain.
§ Developers · /developers/run-a-node

Run a node.

Four roles. Two staked (Node Runner, Node Watcher), two permissionless (Prover, Service Node). Any one of them can run on residential fibre. The reference client is a single Rust binary; configuration is a small TOML file.

§ 01 / Quickstart

Five commands.

# 1. Install (Rust 1.75+)
cargo install --git https://github.com/adamant-protocol/adamant-node --tag v0.1.0

# 2. Initialise local data dir
adamant-node init --role watcher --data-dir ~/.adamant

# 3. Generate keys (Ed25519 + ML-DSA)
adamant-node keys generate --out ~/.adamant/keys

# 4. Edit config
$EDITOR ~/.adamant/config.toml

# 5. Run
adamant-node run --data-dir ~/.adamant
§ 02 / Hardware

Per role.

RoleCPURAMStorageNetworkStake
Node Runner4–8 cores16 GB2 TB NVMe1 Gbps symmetric, <100ms WAN1 000 ADM
Node Watcher2–4 cores8 GB500 GB SSD25 Mbps100 ADM
Service Node4+ cores16+ GB2+ TB1 Gbps
ProverGPU recommended32+ GB200 GB100 Mbps
§ 03 / Config

config.toml.

[node]
role        = "runner"         # runner | watcher | service | prover
data_dir    = "/var/lib/adamant"
chain_id    = "0x4d41"         # mainnet (adamant/mainnet)

[network]
listen_addr = "/ip4/0.0.0.0/tcp/30303"
bootnodes   = [
  "/dns4/boot0.adamantprotocol.com/tcp/30303/p2p/12D3KooW…",
  "/dns4/boot1.adamantprotocol.com/tcp/30303/p2p/12D3KooW…",
]

[rpc]
listen_addr = "127.0.0.1:8545"
ws_addr     = "127.0.0.1:8546"

[validator]
bond        = "1000_000_000_000"   # 1 000 ADM in base units (10^-9)
fee_payer   = "self"

[keys]
ed25519     = "/etc/adamant/keys/ed25519.key"
mldsa       = "/etc/adamant/keys/mldsa.key"
§ 04 / Ops

Day-to-day.

OPS.01

Uptime > 2 epochs

Liveness failure (no participation in >2 consecutive epochs) costs 0.5% of stake and active-set removal. Re-registration goes to the back of the standby queue.

OPS.02

Key rotation

Use a session subkey for the hot validator process; keep the master in cold storage. Rotate every 90 days as routine hygiene.

OPS.03

Snapshots

Reproducible snapshot every epoch; restore in <15 min from clean. Reference client ships adamant-node restore.

OPS.04

Monitoring

Prometheus metrics on /metrics. Default Grafana dashboards in the repo.

OPS.05

Backups

Recovery seed in two air-gapped locations. Slashing for double-sign is 100% — assume the worst.

OPS.06

Slot transfer

Transferable by mutual consent at an epoch boundary. The genesis cohort marker does not transfer with the slot.