Live on Base mainnet · USDC

Give your agent
/budget, not your wallet.

One USDC transfer gives your agent a hard spending cap across every paid AsterPay API. It spends per call until the budget runs out — then it stops. No API keys. No card on file. No surprise bills.

$ claude mcp add asterpay -- npx -y @asterpay/mcp-server
See how it works Live API endpoint
claude — agent session (simulated demo) BUDGET ACTIVE
Remaining
$10.000
0 calls

How it works

Fund once.
The agent does the rest.

No signup forms, no dashboards to babysit. The budget is the product — a prepaid balance with a cryptographic leash.

01 — HUMAN

Send USDC once

You (the human) send 1–500 USDC to AsterPay on Base. One transfer from any wallet — Coinbase, MetaMask, Rabby, anything. An agent can never grant itself money.

02 — AGENT

Run /budget

The agent activates the budget through the AsterPay MCP server and gets a token. Every paid call — research, code review, token analysis — deducts its exact price from the balance. Credited 1:1, no platform fee, valid for 90 days.

03 — HARD CAP

It stops at zero

Balance exhausted → the API answers 402 and the agent stops gracefully. Not a soft warning. Not a "we'll bill you later." The money simply isn't there to spend.

Why it's different

A spending limit that
isn't a promise.

Hard cap, enforced server-side

Atomic balance deduction per call. Two concurrent calls can never overspend the same dollar — guaranteed at the database level, not in agent code.

🛡️

Sanctions-screened by default

Every funding wallet is screened against the Chainalysis Sanctions Oracle — the public on-chain contract covering OFAC, EU and UN designations — before a budget is issued. Verifiable on Basescan, screened at the rail, not bolted on.

🔑

No API keys, no card

Nothing to leak, nothing to rotate, no card-on-file for an AI to max out. The budget token is scoped to spending the prepaid balance — and nothing else.

🧾

Every call receipted

Per-call spend log with endpoint, price, and timestamp. get_budget_status shows exactly where every cent went.

Works where agents live

Native slash command in Claude Code, tools in Cursor and any MCP client. Every paid AsterPay API works instantly — token analysis, wallet scores, code review, deep KYA.

🇪🇺

EUR settlement underneath

Built on the only EUR-native x402 facilitator. When your agent needs to pay a real European business, the same rail settles to IBAN via SEPA Instant.

"Do I need KYC for this?"

No. A prepaid budget is crypto in, API calls out — no fiat payout, no custody of customer funds, no card issuing. So there is no KYC, no KYB, no signup form.

What you get instead is KYA — Know Your Agent. The funding wallet is sanctions-screened at creation, the payment is verified on-chain, and the budget can only be created by a human transfer. Compliance is in the rail, not in a form.

KYC — not requiredNo identity documents. Fund from any wallet.
KYB — not requiredOnly needed later if you settle EUR to an IBAN.
KYA — built inChainalysis sanctions oracle screens every funding wallet.
On-chain verificationDeposit tx verified (recipient, amount, sender) before credit.
90-day validityBudgets expire 90 days after funding. Unused balance? DM @Asterpayment before expiry and we roll it into a fresh budget.

For builders

Two endpoints.
That's the whole API.

Skip the MCP server if you want — the raw HTTP API is just as simple. Budgets work on every paid AsterPay endpoint via one header.

POST /v1/budget/createx402.asterpay.io
# 1. Send USDC on Base (you choose the amount, 1–500)
# 2. Redeem the tx for a budget token:
curl -X POST https://x402.asterpay.io/v1/budget/create \
  -H "Content-Type: application/json" \
  -d '{
    "amountUsd": 10,
    "txHash": "0xabc…",
    "wallet": "0xYourWallet"
  }'

→ { "budget": { "token": "bud_…", "balanceUsd": 10 } }
GET any paid endpointone header
# Spend from the budget on any paid AsterPay endpoint:
curl https://x402.asterpay.io/v1/crypto/token-analysis/0x… \
  -H "X-Budget-Token: bud_…"

→ 200 OK · X-Budget-Remaining: 9.900000

# When the balance hits zero:
→ 402 { "error": "Budget balance too low…",
        "topUp": { … } }

Your agent is ready
to earn its allowance.

One line in your terminal. One transfer. Done. (Cursor and other MCP clients: add npx -y @asterpay/mcp-server to your MCP config.)

$ claude mcp add asterpay -- npx -y @asterpay/mcp-server

Questions? Read the live API spec or DM @Asterpayment