Run a Node
Run a Validator
End-to-end guide · Estimated read time: 10 minutes
Testnet live
The validator program is live on the public testnet. Multiple validators across three continents are producing 5-second blocks under real BFT consensus. Anyone can join today using any of the three methods below.
TL;DR
Three ways to run a validator, all producing the same blocks with the same consensus code:
- Desktop app — download Asentum Operator, create a wallet, click Stake. Zero terminal.
- VPS one-liner —
curl -fsSL testnet.asentum.com/install/validator | bashon a fresh Ubuntu/Debian box. Fully automated. - Build from source — available once the repository is public. Use Method 1 or 2 for now.
Minimum stake: 50,000 ASE. Get test ASE from the faucet.
How Asentum validators work
Asentum uses Tendermint-style BFT consensus with stake-weighted proposer rotation. Every validator who has bonded at least 50,000 ASE into the staking system contract is eligible to propose blocks.
- Liveness-aware committee. The active committee is the set of validators who proposed at least 1 of the last 30 blocks. Validators can come and go without halting the chain — if your laptop sleeps, the committee shrinks to the live set and keeps producing.
- Post-quantum signatures. Every block proposal, prevote, and precommit is signed with ML-DSA-65 (Dilithium3). Your validator key is a Dilithium3 keypair, not ECDSA.
- HTTP networking. Nodes sync via HTTP pull-based block fetching and POST-based vote gossip. No libp2p, no TCP sockets to configure.
- 5-second blocks. Target block time is 2 seconds. Prevote → precommit → finality in a single round.
Requirements
| Resource | Minimum |
|---|---|
| CPU | 2-core x86_64 or ARM64 |
| RAM | 4 GB |
| Storage | 10 GB free (SSD recommended) |
| Network | Broadband internet |
| Stake | 50,000 ASE minimum (no hard cap; 10% per-block reward cap handles concentration) |
| OS | macOS 12+, Windows 10+, Ubuntu 22.04+, Debian 12+ |
Method 1 — Desktop app (macOS / Windows)
The easiest path. No terminal, no config files. Download from the downloads page.
- Download and install. Open the
.dmg(macOS) or run the.exeinstaller (Windows). - Create your wallet. On first launch, set a password. The app generates a Dilithium3 keypair and encrypts it with scrypt + AES-GCM-256.
- Sync the chain. The app syncs from genesis via the public testnet peers. A progress bar shows live sync state. Typical first sync: 2–10 minutes.
- Fund your wallet. Click the faucet button in the dashboard to request test ASE. You need at least 50,000 ASE to bond.
- Stake. Enter your password, click "Stake & Start Validating." The app signs a
bond(pubKey)transaction and broadcasts it. Your node enters the active set within ~10 blocks. - Leave it running. Close the window — the app minimizes to the system tray and keeps producing blocks in the background. Quit from the tray menu to fully stop.
For the full desktop app guide, see Asentum Operator.
Method 2 — VPS one-liner (Ubuntu / Debian)
For headless servers. One command does everything — installs dependencies, downloads the node bundle and a chain snapshot, generates a validator key, sets up systemd, syncs remaining blocks from peers, funds via faucet, and auto-bonds into the active set.
curl -fsSL https://testnet.asentum.com/install/validator | bashWhat the installer does, step by step:
- Installs Node.js 22 if not present.
- Downloads the validator bundle (~45 MB) to
/opt/asentum/chain. - Downloads a chain snapshot (~32 MB) to
/opt/asentum/data— skips full replay from block 0, only syncs the remaining blocks from peers. - Generates a Dilithium3 validator keypair at
/opt/asentum/data/validator-key.json. - Creates a systemd service (
asentum-validator) and starts the node. - Shows a live sync progress bar until the node catches up (usually under a minute).
- Polls the faucet to fund the validator address with enough ASE to bond.
- Signs and submits a
bond(pubKey)transaction. - Installs the
asentum-validatorCLI wrapper on PATH.
After install, use the CLI wrapper to manage your node:
asentum-validator status # node + validator status
asentum-validator balance # wallet balance
asentum-validator earnings # rewards earned
asentum-validator logs # live log stream
asentum-validator restart # restart the systemd serviceFor the full VPS guide, see VPS Installation.
Method 3 — Build from source (coming soon)
The source repository is currently private during pre-mainnet development. It will be open-sourced ahead of mainnet launch.
In the meantime, use Method 1 (Desktop app) or Method 2 (VPS one-liner) to run a validator. Both use the same node software and connect to the same testnet.
Staking & bonding
Validators bond ASE into the on-chain staking system contract to join the active set. The bond transaction calls bond(pubKey) with your Dilithium3 public key and attaches ASE via msg.value.
- Minimum bond: 50,000 ASE (chain-enforced via the staking contract).
- Maximum bond: No hard cap. Stake concentration is handled by the 10% per-block reward cap, not by capping bonds.
- Activation: ~10 blocks after bonding (graceful quorum transition).
- Additional bonds: you can call
bond(pubKey)again to increase your stake, up to the max cap.
Unbonding & withdrawing
To leave the validator set and retrieve your stake:
- Unbond. Call
unbond(amount)on the staking contract. Your ASE enters a 14-day unbonding queue (604,800 blocks at 2s). - Wait. During the unbonding period, your stake is locked. You are removed from the active set but cannot withdraw yet.
- Withdraw. After the unbonding period, call
withdraw()to transfer the matured ASE back to your wallet.
Partial unbonding is supported, but your remaining stake must stay above 50,000 ASE. To fully exit, unbond your entire stake. Use getWithdrawable(address) to check if you have matured funds ready to withdraw.
Slashing
Double-signing — proposing or pre-committing two different blocks at the same height — is the primary slashable offense. Double-sign evidence is submitted on-chain and results in stake slashing and ejection from the validator set.
Downtime is handled by the liveness-aware committee, not by slashing. If your node goes offline, it simply drops out of the active committee (last 30 blocks). When it comes back online and proposes a block, it re-enters automatically. No penalty, no manual intervention. For full details, see Slashing Risks.
Monitoring your node
- Desktop app: the dashboard shows block height, peer count, consensus quorum, validator status, stake, and wallet balance in real time.
- VPS: use
asentum-validator statusfor a quick health check, orasentum-validator logsfor a live log stream. - Explorer: check your validator address on testnet.asentum.com to see proposed blocks and transaction history.
- RPC: query
GET /validatorson your local node or the public testnet to see the full validator set and your stake.
For detailed monitoring setup, see Monitoring & Logs.
Read next