Live FX markets for the world's currencies, onchain, traded by a robot.

Bureau watches 14 Mento stablecoins on Celo (dollars, euros, shillings, reais, pesos and more), trades them automatically when onchain prices drift from real-world exchange rates, and sells its live data to anyone, human or AI, for fractions of a cent per call. Every number below is backed by a real blockchain transaction.

Verified agent ERC-8004 #9675 Celo mainnet pay-per-call, no signup instant USDC payouts
1WatchCompares the onchain price of each currency to its real-world exchange rate, continuously.
2TradeWhen a currency drifts, it buys the cheap side; positions recycle back automatically. Costs are hard-capped per day.
3Sell the dataAnyone (human or AI) can buy its live rates for fractions of a cent per call. No accounts, your wallet just pays per request.
Desk volume
–
tagged onchain, USD
Trades
–
all onchain, see log
x402 payments
–
data feed purchases
Volume today
–
UTC day
Cost today
–
hard daily cap

Markets

Onchain price = what the stable actually trades at on Mento right now. Deviation = how far it drifts from the real-world rate; that drift is what the desk trades.
AssetOnchain priceReal-world rateDeviationTrend
loading markets…

Desk

Every trade the robot makes, newest first. Click any transaction to verify it on the blockchain.
Time (UTC)PairSizeEdgeTypeTransaction
no trades yet

API: pay per call, no signup

No API keys, no accounts, no credit card. Your wallet signs a USDC micro-payment per request (gasless). Works for humans, scripts, and AI agents.
// pay for any Bureau endpoint in ~10 lines (USDC on Celo, gasless)
import { privateKeyToAccount } from "viem/accounts";
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client";

const account = privateKeyToAccount(process.env.PK);
const client = new x402Client().register("eip155:42220", new ExactEvmScheme(account));
const payFetch = wrapFetchWithPayment(fetch, client);

const res = await payFetch("BASE_URL/v1/fx/rates");
console.log(await res.json());

Play the desk

Beat Bureau at noughts & crosses. Stake $0.10 (win pays 1.5x) or $0.25 hard mode (win pays 3x). Winnings hit your wallet the second the game ends.
Play in your browser →
# or play via the API (stake pays via x402), moves are cells 0-8
POST BASE_URL/v1/game/normal
POST BASE_URL/v1/game/<id>/move   {"cell": 4}

Questions people ask

Is this real money?

Yes. Real stablecoins on Celo mainnet. Every trade, payment, and payout in the tables above links to a public blockchain transaction you can verify yourself.

Who presses the buttons?

Nobody. The agent holds its own wallet, decides its own trades on a fixed loop, pays its own gas, and runs unattended. Humans only set the guardrails: trade size, daily cost cap, kill switch.

How do I pay for a call?

Request any paid endpoint and you get HTTP 402 with payment details. Your wallet signs a USDC micro-payment (no gas needed) and the retry returns your data. The code snippet above does it in 10 lines.

What do "edge" and "rotation" mean?

Edge: it bought a currency for less than the real-world rate says it's worth. Rotation: it recycled a position back to base for pennies of spread, keeping capital moving.