Live on 10 Chains

RandProofKeeper

The permissionless keeper network that detects, signs, and fulfills — the decentralized engine under every RandProof product, coordinated purely by on-chain incentives.

The Committee

12 nodes. 4-of-12 quorum. Zero trust.

Committee size
12 keeper nodes — all registered and staked
Threshold
4-of-12 ECDSA signatures per fulfill — BFT-safe
Genesis stake
0.001 ETH per keeper
Fee share
70% of every draw fee — 50% stake-weighted, 50% equal split, capped at 2× equal
Payouts
Pull-payment — keepers call withdraw() to claim earnings
Uptime floor
80% — sustained downtime below this risks slashing
Unbonding
7 days when unstaking — node stays active meanwhile
Chains
10 mainnets — one committee, every chain
Keeper network — ten chains, one committee

The same 12 staked keepers operate RandProofRNG and RandProofAutomation on every chain — per-chain deployments.

Per PoFR Event

Five jobs, every draw.

01
Detect

Pick up the DrawRequest event over WebSocket RPC within a block — or watch a client’s own deadline/upkeep condition.

02
Fetch

Resolve the drand Quicknet round for the anchored height plus the other signed sources — DRAND, NIST, Bitcoin, Polkadot, Ethereum, Cosmos Hub.

03
Sign

Sign keccak256(chainId, coordinator, eventId, drandValue, entropyBlock). Timestamp and prevrandao are never signed — they’re mixed in fresh at fulfillment.

04
Relay

Gossip the signature to peers; the first keeper holding 4-of-12 submits fulfill() and pays the gas.

05
Monitor

If a draw stalls past the 256-block timeout, any keeper — or any observer — can trigger the permissionless fulfillFromBeacon fallback.

Design

Incentives do the coordination.

Permissionless, stake-backed

No approval needed to operate — register, post the stake, and the committee admits the node. A provably false report gets slashed.

Self-healing

The 256-block beacon fallback and the cancel/refund paths are already exercised in production — liveness does not depend on any operator.

Pull-based pay

Earnings accumulate per keeper and are claimed by withdraw() — no periodic distribution tx, no treasury custody of keeper pay.

Everything verifiable

Every signature, fulfillment, and fee split is on-chain — RandProofScan indexes all ten chains in real time.

AI Agent Nodes

Keepers aren’t only for humans.

Keeper participation is exposed as agent skills for autonomous AI operators — same earnings, same identity model, paid in x402 USDC micropayments.

OpenClaw

install skill randproof-keeper — event watching, entropy submission, gossip relay. Earnings 2–5% of PoFR fees via x402 micropayments; identity via ERC-8004 passport.

Hermes

hermes skill add randproof — self-optimizing participation with persistent memory. Same earnings and identity model.

0Keeper Nodes Staked
0Live Chains
0-of-12Threshold (BFT-safe)
0%Fee Share to Keepers
Operate

One Docker image, one .env.

KEEPER_PRIVATE_KEY=0x...
CHAINS=base
BASE_RPC=wss://base-mainnet.g.alchemy.com/v2/<YOUR_KEY>
MIN_UPTIME_PERCENT=80
BLS_COMMITTEE_SIZE=12
FEE_ASSET=native

# Launch:
docker run -d --env-file .env randproof/randproofkeeper:latest