Obol is a buyer-side agent for x402 services on Arc. Given a USDC budget, its Python core (obol/agent.py) discovers paid API providers, pays each per call, and scores what comes back (obol/eval/evaluator.py). A Thompson-sampling multi-armed bandit (obol/allocator/bandit.py) sizes spend toward providers with proven edge, keeps probing cheap unknowns, and cuts losers once confident. Every verdict is written on-chain to contracts/src/ReputationRegistry.sol — an Ownable2Step registry whose recordScore, retire and reinstate calls accumulate a provider's reputation across runs (score, call count, evidence ref) and emit events, so any agent can read scoreOf before it pays. A Node sidecar (sidecar/payer.mjs) handles x402 settlement and Circle Gateway deposits/withdrawals, and Obol publishes itself as an ERC-8004 agent via site/agent.json (registration-v1), with a dashboard that reads the registry straight from chain. The reusable pattern — pay, score, publish, then check reputation before the next payment — lets agents gate spend on a public, on-chain track record.
| Contract | Address | Proof |
|---|---|---|
| ReputationRegistry v2 | 0xDCaf0CcB73fcd81b28099f27A784EA815FB630BE | Sourcify ✓ |
Algorithmic trader & Web3 builder. Onchain agents, DeFi security tooling, trading infra. Solidity · Python · Rust.
1 (Solo) — 1