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.