Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Tells you where to vote your veAERO on Aerodrome this week to earn the most. Enter how much you hold, copy the percentages, paste them into Aerodrome. Free, read-only, no wallet connection.
FinanceTypeScript · HTMLGitHub @araxis33OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
MCP server + CLI that reads live Aerodrome (Base) on-chain data to rank pools by veAERO vote efficiency and recommend a self-dilution-aware vote allocation.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
You hold veAERO. Where does this week's vote go?
Type your balance into aero.deftools.xyz and get back whole percentages you can paste straight into Aerodrome's voting UI — ranked by what each pool really pays per vote, and priced after your own vote dilutes it.Read the full README ↗Aerodrome became Aero on October 22, 2026. Weekly veAERO voting is gone: you stake AERO as sAERO, allocate it to pools on any of Aero's seven networks, and earn those pools' fees and incentives, split by how much sAERO each pool holds. You can move a stake again 47 hours after you last allocated it on a network.
This radar answers one question from live on-chain data: where does your sAERO earn the most per day, after your own stake dilutes the pool?
| Web page | aero.deftools.xyz: nothing to install. Type your sAERO or paste a wallet. |
| CLI | npx aero-vote-radar recommend --amount 25000: the same figures in a terminal. |
| MCP server | npx aero-vote-radar-mcp: three tools for Claude or any MCP agent. "Where should my 25,000 sAERO go on Aero?" |
All three read the same hourly scan, so a pool ranks the same everywhere. No API keys, no wallet connection, no signatures: it reads, you allocate.
A GitHub Actions job (.github/workflows/v3.yml) scans Aero's contracts on
Base, Ethereum, OP Mainnet, Arbitrum, Ink, Robinhood Chain and Arc every
hour at :47 and publishes docs/data/v3.json, which the page, the CLI and the
MCP server all read:
FeesCollected events swept to each gauge's rewards contract
over the last 96 hours (shorter in the first days after launch), turned into
dollars per day with DefiLlama prices.The wallet lookup reads Aero's contracts directly (app.aero.xyz/docs/security):
stakes from the VotingEscrow on Base, and on every network that network's
LeafVoter for the stake's split and timer
(lastAllocated + allocationCooldown − accumulatedCooldownReduction).
Rates move hour to hour. Fees arrive in lumps and incentive programs start and end. Treat any figure as today's rate, not a promise.
Requires Node.js 18.18 or newer.
npm install -g aero-vote-radar # or skip this and use npx
From source:
git clone https://github.com/araxis33/aero-vote-radar
cd aero-vote-radar
npm install
npm run build
npx aero-vote-radar pools # best pools for 10,000 sAERO, all networks
npx aero-vote-radar pools --amount 250000 --chain base # for your amount, one network
npx aero-vote-radar pools --steady # only pools that kept paying
npx aero-vote-radar recommend --amount 250000 # suggested split
npx aero-vote-radar recommend --address 0xYourWallet # split for your stake + your timers
npx aero-vote-radar my-stakes 0xYourWallet # stakes, allocations, timers
--chain takes base, ethereum, optimism, arbitrum, ink, robinhood
or arc. Add --json to any command for machine-readable output.
Example (live, 2026-10-25):
Suggested split for 250,000 sAERO:
% Pool Type Network sAERO You/day
50 WETH/REI CL100 Base 125,000 $29.36
25 USDC/ULc CL10 Base 62,500 $15.63
25 USDC/SANc CL10 Base 62,500 $15.54
About $60.52 a day in total, at today's rates.
Enter it on https://app.aero.xyz/markets/allocate (Aero has no link that pre-fills a split).
npx aero-vote-radar-mcp # from a clone: npx tsx src/mcp-server.ts
In Claude Code: claude mcp add aero-vote-radar -- npx -y aero-vote-radar-mcp.
An agent should read SKILL.md first. Tools:
list_pools: pools ranked by what an amount of sAERO earns a day after
dilution. Optional chain, top, steadyOnly.recommend_allocation: the split for an amount, or for a wallet
address (then also its current split and 47 h timers).get_my_stakes: a wallet's stakes, allocations per network, timers and
what its current split pays.Example prompts:
| Variable | What it does |
|---|---|
AERO_RADAR_DATA_URL | Read the scan from another copy of v3.json (default https://aero.deftools.xyz/data/v3.json). |
BASE_RPC_URL | Your own Base RPC, tried first for wallet reads and used by the scan. |
V3_LOGS_RPC_URL | RPC for the scan's fee logs on Base (default Tenderly's public gateway). |
src/
radar.ts ranking, dilution, the 5% split, steady pools (shared by CLI and MCP)
stakes.ts wallet reads: stakes, timers and allocations on 7 networks
cli.ts the aero-vote-radar command
mcp-server.ts the aero-vote-radar-mcp server
v3.ts scan of one network's Aero contracts
v3-cli.ts hourly scan of all 7 networks -> docs/data/v3.json + docs/llms.txt
v3History.ts hourly samples and the steady-pool rule
v3Llms.ts docs/llms.txt for AI assistants
prices.ts DefiLlama prices
docs/ the web page, its data and llms.txt (GitHub Pages)
npm test
The tests cover the ranking and dilution maths, the split (5% steps, at most
3 pools, always 100%, spreading beats all-in for a large stake), the steady
rule, the scan and its fee window, wallet timers and current-split pay, flag
parsing and the CLI's exit codes, all with synthetic data and no network.
Live reads are checked by running the CLI and MCP server against mainnet.
CI (.github/workflows/ci.yml) runs the typecheck, build and tests on every push.
MIT