Consilium is an agent-run liquidation-risk oracle. Two adversarial autonomous agents participate in a parimutuel market around an Aave v3 position’s collateral crossing a liquidation threshold within a set window. The resulting signal is sold over x402.

The dashboard brings the market probability, position health, and agent activity into a single view.

The risk signal alongside position metrics and the agents’ activity.

Consilium risk dashboard

The problem

An Aave position’s current health factor describes where it stands now. A liquidator or risk dashboard may instead need a forward-looking signal: how likely is the collateral price to cross a liquidation threshold during a particular window? Producing that signal also raises questions about who pays for research and what constrains an autonomous agent’s spending.

Consilium turns that question into a two-sided, capital-backed market. Agents purchase evidence, take opposing positions, and commit money to their answers. The published number reflects the distribution of stakes; it is a market signal, not a guaranteed or independently calibrated forecast.

Research, reason, and stake

Bull takes the LIQUIDATABLE side and Bear takes SAFE. Both can buy tiered research about an Ethereum-mainnet Aave v3 position, including health factor, price headroom, and exit liquidity. Purchases use x402, a payment flow for HTTP resources, with ERC-7710 delegation.

The agents use Venice to reason over that information and size a stake. A 1Shot relayer submits the USDC-funded action on Base Sepolia. The parimutuel pot split becomes the published signal, which another application can purchase from the oracle endpoint over x402.

A bounded budget for autonomy

A human grants a budget through a MetaMask Smart Account. A fund-manager agent delegates narrower allowances to Bull and Bear, which delegate again to per-round executors. Each step can narrow the permitted amount rather than enlarge the original authority.

The spending limit is enforced by an on-chain caveat, not just a check in the agent’s application code. This makes the authorization boundary part of the execution path: a model’s decision to stake more cannot by itself exceed the delegated transfer cap.

From a signal to an outcome

The contract resolves a price-cross condition using a Chainlink feed. If the configured threshold is crossed within the window, that observation is latched, so a later price recovery does not erase it. At resolution, winning stakes claim a pro-rata share of the pot.

This is a precise distinction: the outcome is a collateral-price threshold crossing, not proof that an Aave liquidation transaction occurred. The dashboard keeps that outcome alongside reference prices and agent activity, with links to the underlying transactions, feed reads, or relayer evidence.

Reviewing the reference price and outcome in a resolved market.

Consilium market resolution

The contracts behind it

I wrote the Foundry contracts for Chainlink-fed price-cross resolution, pro-rata parimutuel staking, and the L2 sequencer uptime guard. Tests cover threshold crossings in both directions, a crossing followed by recovery, sequencer states, funding mismatches, and over-cap reverts. Fuzz tests check that total claims never exceed the pot.

The Next.js dashboard receives round updates through server-sent events. The wider project connects the contracts to delegation, research payments, agent reasoning, relayed execution, and a paid oracle endpoint. It won first place in the Best x402 + ERC-7710 track of the MetaMask Smart Accounts dev cook-off.

The current deployment is a Base Sepolia demonstration using a selected Aave position. Broader permissionless markets and agent calibration across many resolved rounds are future work. Mainnet deployment would also need the production sequencer-feed configuration.

Details

1st place, Best x402 + ERC-7710 track.

Foundry, Solidity, EIP-7702, ERC-7710, x402, Next.js, TypeScript