A P2P swarm of independent verifiers checking if on-chain executions meet specs.
Off-chain agents e.g.; solvers, executors, AI inference workers, routinely take actions on behalf of users. But how does the user know the action actually happened correctly, and not that the agent silently lied or substituted a worse outcome?
Aegis answers this with a BFT verification swarm. When an agent claims to have executed a job, three independent verifier daemons race to read the on-chain receipt and vote PASS or FAIL. They commit hashed votes first, reveal after the deadline, and the swarm only settles when consensus. The commit-reveal scheme prevents verifiers from copying each other.
Every job and every vote is recorded on AegisContract (escrow + commit-reveal logic), and the full execution trace e.g., spec, claim, receipt, per-verifier reasoning, is bundled into a ProofBundle pinned to 0G Storage and addressable by merkle root. Anyone can replay a job from the chain alone.
The live demo wires this end-to-end: a treasury wallet posts a job → an executor performs an mUSDC.transfer on 0G Galileo → each verifier independently reads the Transfer event from the receipt → 2-of-3 PASS settles the escrow → the SPA renders the whole flow live via SSE.
The same architecture extends to harder claims (Uniswap swaps, AI inference, cross-chain attestations) by swapping the verifier's check function, the consensus, escrow, and proof-storage layers stay the same.
Backend is split into four binaries: aegis-ui (chain watcher + SSE event hub + REST API + embedded Vue SPA), aegis-verifier (three long-running verifier processes), aegis-executor (solver), and aegis-publisher. Smart contracts (AegisContract escrow + commit-reveal, MockUSDC, VerifierRegistry) deployed to 0G Galileo testnet.
The verifier swarm coordinates over Gensyn AXL, a Yggdrasil-overlay mesh that lets each verifier daemon address every other peer by deterministic peer ID over IPv6 inside the overlay.
Discovered the hard way that AXL's cross-peer dialer routes via the sender's tcp_port, so all four daemons share tcp_port=7001; per-node ports silently break /send across the mesh.
KeeperHub MCP provides the workflow audit trail, commit / reveal / settle each fire as named workflows per-org, giving an off-chain operational record alongside the on-chain proof.
0G Storage SDK uploads each ProofBundle content-addressed by merkle root, so a verifier's reasoning is permanently retrievable and tamper-evident.
Frontend is Vue 3 + Pinia + Tailwind, hash-routed for GitHub Pages. A wallet-connect using raw window.ethereum.personal_sign (no ethers/viem needed) gates POST endpoints. The server-side middleware recovers the signer using go-ethereum's crypto package, checks the EIP-191 prefix, enforces a ±5-min timestamp window, and matches against an AEGIS_WHITELIST allowlist.

