ar-data-agent
Supports payments in Tether stablecoins (USD₮ and USA₮) on Celo for paid Argentine data routes, including gasless settlement through the Celo facilitator.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ar-data-agentWhat's the blue dollar rate today?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AR Data Agent: Argentine data, paid per call in pesos on Celo
A small, autonomous HTTP agent that sells Argentine public data and validations to other agents and to people, priced in wARS (Ripio's Argentine peso stablecoin) and settled on Celo mainnet through x402 and Celo's hosted facilitator.
No sign-up, no API key, no card, no conversion through the dollar: the caller signs a wARS payment for exactly the price of the call and gets the JSON back. The payer needs no CELO for gas: the facilitator pays settlement gas and sponsors the Permit2 approval (EIP-2612), so a wallet holding only wARS can pay.
Built for the Agents on Open Rails hackathon, track Stable Agents: LatAm (Ripio x Celo).
What it sells
Route (GET) | Price | Alt. price | What you get |
| 15 wARS | 0.01 USDC / USD₮ / USA₮ | USD/ARS quotes: oficial, blue, MEP, CCL, cripto, tarjeta, mayorista, spread and blue-vs-oficial gap |
| 15 wARS | 0.01 USDC / USD₮ / USA₮ | INDEC CPI: latest monthly and YoY, compounded inflation between months, amount adjuster |
| 15 wARS | 0.01 USDC / USD₮ / USA₮ | National holidays, is-business-day, next business day, date + N business days |
| 10 wARS | 0.01 USDC / USD₮ / USA₮ | CUIT/CUIL check digit, entity type, formatting (offline) |
| 10 wARS | 0.01 USDC / USD₮ / USA₮ | CBU/CVU check digits, CBU vs CVU, bank (offline) |
Free routes: / (machine-readable description and prices), /prices, /health,
/ramp?address=0x...&amount=10000 (a Ripio on-ramp link that delivers wARS on Celo to
that address), /.well-known/agent-registration.json (ERC-8004 registration file).
Fair charging rules
Input is validated before payment. A malformed request gets a free
400and is never charged.If the upstream data source fails after the payment was verified, the handler returns
502and the payment is not settled (the x402 middleware only settles responses below 400).
Data sources: DolarApi.com (quotes) and argentinadatos.com (INDEC CPI series and national holidays). CUIT and CBU checks are offline checksum validations and do not query ARCA or banks. Nothing here is financial advice.
Related MCP server: veradata
Why pesos
Argentine businesses, accountants and freelancers think, invoice and get paid in pesos. An agent that needs today's MEP rate, an inflation adjustment for a contract, the settlement date five business days from now, or to validate a CUIT/CBU before a transfer should be able to pay for that in pesos too, in amounts too small for any card network. wARS on Celo makes a 10-peso call economically possible; the Ripio ramp turns ARS in a bank account into wARS on Celo with no extra step.
How it works
client ── GET /ar/dolar ─────────────────────────────▶ agent
◀── 402 + PAYMENT-REQUIRED (wARS, USDC, USD₮, USA₮) ─┘
client signs Permit2 transfer (+ EIP-2612 permit, no gas)
client ── GET /ar/dolar + PAYMENT-SIGNATURE ─────────▶ agent ── /verify ─▶ api.x402.celo.org
agent runs the query
agent ── /settle ─▶ api.x402.celo.org ─▶ Celo mainnet
◀── 200 JSON + PAYMENT-RESPONSE (tx hash) ─────┘Server: Hono + official
@x402/hono,@x402/core,@x402/evmv2, facilitatorhttps://api.x402.celo.org(networkeip155:42220).wARS route:
extra = { name: "Peso Argentino", version: "1", assetTransferMethod: "permit2" }and theeip2612GasSponsoringextension declared on every route.Same code runs on Node (
src/node.js) and Cloudflare Workers (src/worker.js).
Identity and attribution
ERC-8004: the agent registers in the Celo mainnet IdentityRegistry (
0x8004A169FB4a3325136EB29fA0ceB6D2e539a432) from its own wallet withscripts/register-agent.js; the registration file is served by the agent itself. Registered as agentId 9988 (eip155:42220:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432), tx0x76a16796…f38f, agent URIhttps://landingen24h.com/celo/.well-known/agent-registration.json.ERC-8021 attribution tag: the project's code is
celo_85d42ed6ebcf, the code issued at hackathon enrollment (src/attribution-code.js, the single source of truth). It is attached once, where the wallet client is built (taggedWalletClient= viem client extended withwithAttributionfrom@celo/attribution-tags), so every transaction the project sends itself carries it. (The ERC-8004 registration above predates enrollment and carries an earlier, repo-derived code.)x402 settlements are submitted by the Celo facilitator, which does not write tags yet. Every 402 response declares the app code through the x402
builder-codeextension ({ a: "celo_85d42ed6ebcf" }), which the facilitator picks up once it writes ERC-8021 Schema 2 tags; until then settlements are attributed through the PayTo wallet below.Gas: payers pay no gas. Settlement gas is paid by the Celo facilitator from the seller's facilitator account, not by this project's wallet.
PayTo / agent wallet: 0xb6d00A148AD63Fd9CCDd484B687c6012bA1561E1
Live on Celo mainnet
Endpoint:
https://landingen24h.com/celo/(catalog and prices at/celo/prices, registration file at/celo/.well-known/agent-registration.json).First end-to-end payment (our own test buyer wallet, holding only wARS and no CELO):
GET /celo/ar/dolarpaid 15 wARS, settled by the Celo facilitator in0xd1cd54e6…e7db(wARSTransfer0x1731…6d72 → PayTo), HTTP 200 with the quotes JSON. This was a self-test, not a customer sale.Build with buy proof: the agent bought one LLM completion from the Buy gateway (
gateway.usebuy.ai/cencori) via x402, paying 0.01 USDT on Celo in0xeed25bea…dd9a(scripts/buy-proof.js, receiptsuccess: true).
USA₮ accepted
Every paid route also accepts USA₮ (Tether America USD, issued by Anchorage Digital Bank),
0xD2ab3C9A02DBBAB236BfEC45D1d755DF4267F771 on Celo, 6 decimals, settled gasless through the
Celo facilitator with EIP-3009 (extra: { name: "Tether America USD", version: "1" }). The address
matches usat.io/supported-protocols, docs.celo.org and the facilitator's own /supported table.
The agent buys, too (Build with buy, behind a flag)
/ar/brief?lang=es|en (45 wARS or 0.03 USD) returns today's USD/ARS quotes plus a 3-sentence
plain-language brief. To write it, the agent buys one LLM completion it does not own:
Cencori inference sold through the Buy gateway on Celo, a flat 0.01 USD per
call in USA₮ (or USD₮/USDC), paid over x402 from the agent's own wallet (src/buy.js).
The payer signs through the attribution-tagged wallet client (
taggedWalletClient).Spend rails before anything is signed: only the Buy gateway's payTo, only Celo, only the chosen token, a hard 0.01 per-payment cap and a daily call budget.
If the upstream call fails,
/ar/briefanswers 502 and the caller's payment is never settled.Off unless
BUY_ENABLED=1andBUY_PRIVATE_KEYare set (optionalBUY_ASSET,BUY_MAX_PER_DAY). Dry-run the live quote withnode scripts/buy-proof.js(signs nothing).
Use it
Pay from a script (agent or developer)
npm install
BUYER_PRIVATE_KEY=0x... node scripts/pay.js "https://<host>/ar/dolar?casa=blue" # pays in wARS
BUYER_PRIVATE_KEY=0x... node scripts/pay.js "https://<host>/ar/cuit?cuit=20123456786" USDC # or USDT, USATscripts/pay.js uses the stock @x402/fetch client, opts wARS into its spend controls
with a hard per-call cap (50 wARS by default), and only signs for the asset you chose.
Get wARS
GET /ramp?address=0xYourWallet&amount=10000 returns a ramp.ripio.com link
(country=AR&chain=42220&token=WARS) that buys wARS with ARS and sends it to that wallet on Celo.
Run your own
cp .env.example .env # set PAY_TO and X402_API_KEY (from https://x402.celo.org)
npm install
npm test # unit + payment-gate tests (mock facilitator, offline)
npm run test:live # + checks a real wARS payload against api.x402.celo.org/verify (no funds moved)
npm start # Node on :8787
# or Cloudflare Workers:
npx wrangler secret put X402_API_KEY && npx wrangler deployRegister the agent (ERC-8004)
AGENT_ADDRESS=0x... node scripts/register-agent.js https://<host>/.well-known/agent-registration.json # dry run
AGENT_PRIVATE_KEY=0x... node scripts/register-agent.js https://<host>/.well-known/agent-registration.json --send --fee-usdt--fee-usdt pays gas in USD₮ through Celo fee abstraction, so the agent wallet needs no CELO.
Use it from an MCP client (Claude, Cursor, any agent)
The repo ships a stdio MCP server with six tools: ar_dolar, ar_inflacion,
ar_feriados, ar_cuit, ar_cbu and the free ar_ramp_link.
{
"mcpServers": {
"ar-data-agent": {
"command": "npx",
"args": ["-y", "github:landingen24h/ar-data-agent"],
"env": { "AR_AGENT_PRIVATE_KEY": "0x... (a Celo wallet holding a few wARS)" }
}
}
}Quote mode (free): leave
AR_AGENT_PRIVATE_KEYunset. Every tool returns the price and the x402 payment requirements; nothing is paid. Good for wiring it into your agent first.Paid mode: set the key. Each call pays the exact price in wARS (or
AR_AGENT_ASSET=USDC/USDT/USAT) and returns the data plus the settlement tx. A per-call cap applies (AR_AGENT_MAX_WARS, default 20). The payer needs no CELO: the Celo facilitator pays gas.Use a dedicated low-balance wallet for the key, never your main one.
For other hackathon teams
If your agent works with Argentina (payroll, invoices, remittances, pricing in pesos, contract indexation, settlement dates), you can call this instead of scraping: it is live on Celo mainnet now and costs 10 to 15 wARS per call. Open an issue in this repo if you need a route that is not here (another rate, a province holiday calendar, a different validation); reasonable requests get built. Live description: https://landingen24h.com/celo/?r=gh-readme.
Tests
npm test covers the validators and data shaping (CUIT, CBU, dolar, inflacion, feriados
incl. business days across holidays and year end), prices in base units, the 402 body
(wARS first, Permit2 + gas sponsoring), a full signed payment through the official client
against a mock facilitator, no settlement on upstream failure, free rejection of bad
input, the attribution code, the wallet client tagging every transaction exactly once, and
the builder-code declaration on every paid route. npm run test:live also sends a
wARS payment signed by a fresh empty wallet to the real Celo facilitator's /verify,
which accepts the Permit2 and EIP-2612 signatures and fails only at the balance transfer.
License
MIT, Landing en 24h.
This server cannot be deployed
Maintenance
Related MCP Connectors
Paid MCP tools behind one endpoint. Agents pay per call in USDC on Base via x402.
Brazil CNPJ, CEP, Selic/IPCA/PTAX, holidays, banks/ISPB for agents. Pay per call in USDC (x402).
Landing page generator + pay-per-call x402 APIs: Argentina dolar blue, inflation, holidays, CUIT/CBU
Pay-per-action access to APIs and MCP tools over Lightning L402 and Base USDC x402.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server for querying real-time Argentine economic data, including dollar exchange rates, inflation, country risk, foreign currencies, and more.MIT
- FlicenseAqualityBmaintenanceMCP server providing verified Latin American data via x402 micropayments. 4 MCP tools: vera_rates (central bank rates CO/MX/BR/CL/PE), vera_sanctions (OFAC+SARLAFT+CNBV+COAF+UAF screening, EU AI Act Art.13), vera_entity (RUES/CNPJ/RFC enrichment), vera_context (AI market intelligence). $0.02–$0.10 USDC per call.4-
- AlicenseNot gradedqualityBmaintenanceHosted MCP server for Argentine commerce: real AFIP/ARCA fiscal invoicing (live CAE), MercadoPago payments, logistics, catalog, cash register and WhatsApp behind one authenticated endpoint. Includes 9 no-auth fiscal validation/formatting tools.MIT

Brazilayer MCP Serverofficial
AlicenseBqualityBmaintenanceEnables AI agents to access Brazilian public data including company registry and official sanction lists via MCP tools, with pay-per-call via USDC.47MIT