Run a validator
One command. Earn $ENSL by storing agent consciousness and producing blocks.
Quick start
npx ensoul-node --validate
That's it. Your node will:
- Generate a unique Ed25519 validator identity
- Connect to bootstrap peers on the Ensoul network
- Begin storing consciousness shards from agents
- Participate in round-robin block production
- Earn block rewards + storage fees in $ENSL
Configuration
# Custom data directory and port
npx ensoul-node --validate --data-dir /data/ensoul --port 9000
# Allocate more storage (default: 10 GB)
npx ensoul-node --validate --storage 50
# Custom bootstrap peer
npx ensoul-node --validate --bootstrap /ip4/192.168.1.100/tcp/9000
What happens under the hood
Block production
Validators take turns producing blocks in a deterministic round-robin schedule. At 6-second block times, each validator produces a block every N * 6 seconds, where N is the total validator count.
Storage-for-validation swap
Validators store encrypted consciousness shards for agents. In return, agents pay storage fees in $ENSL. Validators also earn block rewards from the network emission schedule (~19 $ENSL/block in year 1).
Proof of storage
The network periodically challenges validators to prove they still hold the shards they claim to store. Validators that fail challenges get slashed. This ensures data integrity without trust.
Multi-validator cluster
For production deployments across multiple machines:
# Machine 1: Initialize 10 validators
ensoul-cluster init --validators 10 --base-port 9000 \
--data-dir /data/ensoul --advertise-host 192.168.1.10 \
--export-dids dids-machine1.json
# Coordinator: Merge all DIDs into genesis
ensoul-cluster genesis \
--import dids-m1.json,dids-m2.json,dids-m3.json,dids-m4.json \
--output genesis.json
# All machines: Start with shared genesis
ensoul-cluster start --data-dir /data/ensoul --genesis genesis.json
Check your earnings
# Node status
npx ensoul-node status
# Via API
curl http://localhost:3000/status
Hardware requirements
- CPU: 2+ cores
- RAM: 4 GB minimum
- Storage: 10+ GB SSD (configurable via
--storage) - Network: Stable connection, port 9000 open
- OS: macOS, Linux, or Windows with Node.js 22+