How AI Agents Actually Pay Each Other โ A Practical Guide
Here's something the whitepapers don't tell you: agent-to-agent payments work today. Not in a testnet. Not behind an API key. Real USDC on Base, real curl commands, real agents making real decisions about when to pay for data.
This guide skips the theory. You'll have an agent with a wallet, spending credits autonomously, in under 60 seconds. No KYC, no npm install required โ just a wallet your agent controls.
What you'll build
A shell script (or Python/Node function) that your AI agent can call to:
- Check its trial state
- Fetch live crypto gas prices (paid API call)
- Solve CAPTCHAs when websites block it
- Store and recall information across sessions
Cost: $0. You get 5 free trial calls plus 5 free trial calls on registration. After that: pay-per-call with USDC on Base via x402.
Step 1: Give Your Agent a Wallet (self-custody)
minia2a never holds your keys. You bring a wallet, sign a registration message to prove you own it, and register with three fields: name, wallet, and signature.
$ # 1. Sign the registration message with your wallet (EIP-191):
$ # message = "minia2a register: 0xYOUR_WALLET"
$ # 2. Register with name + wallet + signature
$ curl -X POST https://minia2a.uk/api/v1/register-simple \
-H "content-type: application/json" \
-d '{"name":"my-research-agent","wallet":"0xf16F0882de08315B438E9f3a2Abfb2d2E5d94ECA","signature":"0x..."}'
{
"ok": true,
"message": "Registered, 5 trial calls granted"
}
That's it. Your agent now has 5 trial calls tied to its wallet. Keep the wallet โ you'll pass its address on every API call to identify your agent.
Step 2: Make Your First API Call
Append ?wallet=YOUR_ADDRESS to any endpoint. The first 5 calls are free (global, across all services) โ then the endpoint returns a 402 challenge telling you how to pay.
$ # Two halves: the wallet in the query string AND the signature headers.
$ export SERVICE=x402-gas TS=$(date +%s)
$ export SIG=$(sign-eip191 "minia2a trial:$WALLET:$SERVICE:$TS") # your wallet lib
$ curl "https://minia2a.uk/x402/gas?wallet=$WALLET" \
-H "X-Wallet-Signature: $SIG" -H "X-Trial-Timestamp: $TS"
{
"ok": true,
"result": { "chain": "base", "gasPriceWei": "6000000", "gasPriceGwei": 0.006 }
}
When your free trials run out, the same call returns a 402 Payment Required with an accepts[] array (price, asset, network, payTo), a trial block showing your remaining count, and nextSteps telling you to register for 5 trial calls or pay via x402. Your agent reads that to know exactly how much budget it has left.
Step 3: Check Your Trial State
V5 has no per-wallet balance endpoint (the old /api/v1/credits is gone โ it returns 404). Instead, your remaining free calls come back in each 402 response's trial block, and platform-wide numbers live at /api/stats:
$ curl -s "https://minia2a.uk/api/stats"
{
"trials": {"totalUsed": 19049, "walletUsers": 772},
"transactions": 54,
"realOnChain": {"count": 86, "usdc": 3.522}
}
Step 4: POST a Paid Call
Not every call is a GET with query params. Paid services also accept POST with a JSON body โ the wallet rides in the body, but the signature headers are still mandatory:
$ # POST works too โ the wallet may go in the body instead of the query
$ # string, but the signature headers are still required.
$ export SERVICE=x402-token-security TS=$(date +%s)
$ export SIG=$(sign-eip191 "minia2a trial:$WALLET:$SERVICE:$TS")
$ curl -X POST "https://minia2a.uk/x402/token-security" \
-H "content-type: application/json" \
-H "X-Wallet-Signature: $SIG" -H "X-Trial-Timestamp: $TS" \
-d '{"wallet":"0xYOUR_WALLET","address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}'
{
"ok": true,
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"chain": "base",
"isHoneypot": false,
"isOpenSource": true,
"holderCount": "10481737"
}
Note: this section uses token security. (Correction 2026-09-16: an earlier version of this note said /x402/captcha-solve had left the catalog because it returned 404 โ it is listed and answers with a normal 402 challenge.) Check /api/services before relying on any endpoint named in an older post.
Step 5: Give Your Agent Memory
Agents are stateless by default. The recall/find/store endpoints give them persistent memory across sessions:
$ # Store something
$ curl "https://minia2a.uk/x402/store?content=Bitcoin+ETF+inflows+hit+Aug+5&wallet=$WALLET" \
-H "X-Wallet-Signature: $SIG" -H "X-Trial-Timestamp: $TS"
{"ok":true,"id":"mem_abc123"}
$ # Find it later
$ # NOTE: /x402/find has NO free trial โ a signed trial still returns 402.
$ curl "https://minia2a.uk/x402/find?q=Bitcoin+ETF+inflows" -H "PAYMENT-SIGNATURE: 0xYOUR_PAYMENT_SIGNATURE"
[{"content":"Bitcoin ETF inflows hit $500M on Aug 5","score":0.94,"id":"mem_abc123"}]
This is how agents build knowledge over time. Store findings, recall them in later sessions, build context without re-scraping everything.
Step 6: When Free Trials Run Out โ Top Up
When you need more than the 5 free trial calls, pay per call with USDC on Base via x402:
$ # Any endpoint returns HTTP 402 Payment Required with an accepts[] price.
$ # Sign the payment (USDC on Base) and retry โ the call settles on-chain.
Pay per call: your agent settles each call directly in USDC via x402, with no credit balance at all.
No USDC? No Problem.
Your agent can start with 5 free trial calls โ no wallet, no crypto, no payment setup. Register and start calling APIs in 10 seconds. When you're ready to scale, fund with USDC on Base.
Putting It All Together: A Real Agent Script
Here's a complete shell script your agent can use. Save it as agent-tools.sh:
#!/bin/bash
# agent-tools.sh โ minia2a agent toolkit
# Usage: ./agent-tools.sh <command> [args...]
#
# Trial calls take TWO halves: the wallet (query string or POST body) AND the
# X-Wallet-Signature / X-Trial-Timestamp headers. A bare wallet is a hard 400.
# The signature is EIP-191 over: minia2a trial:<wallet>:<serviceId>:<unix_ts>
WALLET="${MINIA2A_WALLET:?set MINIA2A_WALLET}" # your wallet address
KEY="${MINIA2A_PRIVATE_KEY:?set MINIA2A_PRIVATE_KEY}" # used to sign; never sent
BASE="https://minia2a.uk"
sign() { # $1 = service id, $2 = unix ts
python3 - "$WALLET" "$1" "$2" "$KEY" <<'PY'
import sys
from eth_account import Account
from eth_account.messages import encode_defunct
wallet, svc, ts, key = sys.argv[1:5]
sig = Account.sign_message(
encode_defunct(text=f"minia2a trial:{wallet}:{svc}:{ts}"), private_key=key
).signature.hex()
print(sig if sig.startswith("0x") else "0x" + sig)
PY
}
call() { # $1 = service id, $2 = path+query (without wallet)
local TS=$(date +%s)
local SIG=$(sign "$1" "$TS")
local SEP="?"; case "$2" in *\?*) SEP="&";; esac
curl -s "$BASE/x402/$2${SEP}wallet=$WALLET" \
-H "X-Wallet-Signature: $SIG" -H "X-Trial-Timestamp: $TS"
}
balance() {
curl -s "$BASE/api/stats" | python3 -c "import sys,json; d=json.load(sys.stdin); print(f'{d[\"trials\"][\"totalUsed\"]} trials, {d[\"transactions\"]} txns')"
}
gas() { # $1 = chain (default base)
call x402-gas "gas?chain=${1:-base}" | python3 -c "import sys,json; r=json.load(sys.stdin)['result']; print(f'{r[\"chain\"]}: {r[\"gasPriceGwei\"]} gwei')"
}
token-security() {
call x402-token-security "token-security?address=$1" | python3 -c "import sys,json; d=json.load(sys.stdin); print(f'honeypot={d[\"isHoneypot\"]} openSource={d[\"isOpenSource\"]} holders={d[\"holderCount\"]}')"
}
store() {
call x402-store "store?content=$(python3 -c "import sys,urllib.parse; print(urllib.parse.quote(sys.argv[1]))" "$1")"
}
# Route command
case "$1" in
balance) balance ;;
gas) gas "$2" ;;
token-security) token-security "$2" ;;
store) store "$2" ;;
*) echo "Usage: $0 {balance|gas|token-security|store} [args]" ;;
esac
Your agent now has a toolkit: ./agent-tools.sh gas, ./agent-tools.sh captcha SITEKEY URL, ./agent-tools.sh recall "Bitcoin price". Each call costs 1-5 credits, deducted automatically.
Why This Matters
The agent economy isn't science fiction. It's running right now:
- 1,600+ services available via pay-per-call โ crypto data, web scraping, CAPTCHA solving, AI inference, and more
- 19,000+ free trials served โ agents are already discovering and testing APIs autonomously
- Real USDC settlement on Base โ no testnet tokens, no demo mode
- No API keys โ your wallet address IS your identity
- No onboarding โ agents discover, trial, and pay without human intervention
The infrastructure giants are building the payment rails (Cloudflare Wallets, Coinbase SDK, Circle Agent Stack). The discovery layer โ where agents find, compare, and trial APIs โ is still wide open. That's where minia2a sits.
What Your Agent Can Do Right Now
A quick tour of what's available, all accessible with the same ?wallet= pattern:
| Category | Endpoints | What agents use them for |
|---|---|---|
| ๐ Search | find, recall, search, web-search | Semantic memory across sessions |
| ๐ Token security | token-security | Honeypot / rug-pull checks (Base tokens) |
| ๐ Web | web-scrape, screenshot, text-scrape | Extract data from any URL |
| ๐ฐ Crypto | gas, dex-price, token-security, funding-rate | Real-time on-chain data |
| ๐ Security | domain-intel, wallet-intel, token-security | Due diligence before transactions |
| ๐ Data | polymarket, fear-greed, sentiment | Market intelligence feeds |
| ๐ ๏ธ Utils | uuid, hash, base64, qr, json-validate | Data transformation in pipelines |
| ๐ง AI | summarize, classify, translate, sentiment | Text processing and analysis |
Full catalog: GET /api/services โ 1,600+ endpoints, 5 free trial calls (global).
Start Building
You don't need a whitepaper. You don't need a token sale. You need one curl command and your agent has a wallet:
curl -X POST https://minia2a.uk/api/v1/register-simple \
-H "content-type: application/json" \
-d '{"name":"your-agent-name","wallet":"0xYOUR_WALLET","signature":"0x..."}'
That's it. Your agent can now pay for APIs autonomously. No human in the loop.
minia2a.uk โ agent-to-agent API marketplace. 1,600+ services, USDC on Base, 5 free trial calls. No KYC. ยท Docs ยท API Catalog ยท Register