7 real API calls. Copy-paste code. No API keys — your wallet IS your auth.
5 free trial calls · Pay-per-call with USDC after · No credit card · No KYC
💡 Paste your agent wallet and all curl/TS/Python examples instantly update with your address. Don't have a wallet? Register → (auto-created, 30s).
?wallet=YOUR_WALLET plus a per-call signature — X-Wallet-Signature and X-Trial-Timestamp over minia2a trial:<wallet>:<serviceId>:<unixSeconds>. Both halves are required: the query parameter on its own is rejected with 400, not silently downgraded. The old x-wallet header is no longer read at all.HTTP 402 Payment Required with a price (e.g. $0.005 in USDC)# Set these three once per call. TS must be fresh — sign it, do not reuse it.
export WALLET=0xYOUR_WALLET
export TS=$(date +%s)
export SIG=0xYOUR_SIGNATURE # EIP-191 personal_sign of:
# minia2a trial:$WALLET:$SERVICE:$TS
# $SERVICE is the service id from /api/services (e.g. x402-gas), NOT the last
# path segment — "gas" returns the same 400 a bad signature does.
No API keys. No monthly subscriptions. Your wallet address IS your identity. Pay only for what you use.
Real-time gas prices for Ethereum, Base, Arbitrum, and Optimism. Your trading bot or DeFi agent needs this before submitting any transaction.
# serviceId for the trial message: x402-gas
curl -s "https://minia2a.uk/x402/gas?wallet=$WALLET" \
-H "X-Wallet-Signature: $SIG" -H "X-Trial-Timestamp: $TS"
?wallet= on its own is not a trial request — the server answers
400 missing X-Wallet-Signature header. To draw on your wallet's own 5 free trials,
send the wallet and a signature over
minia2a trial:<wallet>:<serviceId>:<unixSeconds>:
curl "https://minia2a.uk/x402/gas?wallet=$WALLET" \
-H "X-Wallet-Signature: $SIG" -H "X-Trial-Timestamp: $TS"
# -> 200, x-trial-mode: wallet, x-trial-remaining: 4
$TS is unix seconds, accepted within ±5 minutes. For a paid call, drop
the wallet parameter entirely and answer the 402 challenge instead — including
?wallet= together with a payment signature is harmless but does nothing.
Full recipe in AGENTS.md.Honeypot check, owner control analysis, LP lock status, holder concentration, and rug pull risk score. Every DeFi agent should run this before touching a new token.
# serviceId: x402-token-security
curl -s "https://minia2a.uk/x402/token-security?wallet=$WALLET" \
-H "X-Wallet-Signature: $SIG" -H "X-Trial-Timestamp: $TS" \
-H "Content-Type: application/json" \
-d '{"token":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain":"base"}'
Headless Chromium renders the page and returns the resulting HTML, so SPAs, React apps and JS-walled content come back readable. Your research agent can read any page on the internet.
# serviceId: x402-browser-scrape
curl -s "https://minia2a.uk/x402/browser-scrape?wallet=$WALLET&url=https://example.com" \
-H "X-Wallet-Signature: $SIG" -H "X-Trial-Timestamp: $TS"
Give your agent persistent memory. Store facts, user preferences, or session state. Retrieve instantly by key. The stickiest endpoint on the platform — agents that use recall average 15.9 calls each.
# serviceId: x402-store
curl -s "https://minia2a.uk/x402/store?wallet=$WALLET&content=meeting+notes+for+Aug+3" \
-H "X-Wallet-Signature: $SIG" -H "X-Trial-Timestamp: $TS"
Static analysis of Solidity source: access control, reentrancy, unchecked calls and the rest, returned as structured findings with severities. Your agent can screen a contract before it approves or funds anything. Pass source; a separate AI deep-audit tier is available if you want business-logic review.
# serviceId: x402-smart-contract-audit
curl -s "https://minia2a.uk/x402/smart-contract-audit?wallet=$WALLET" \
-H "X-Wallet-Signature: $SIG" -H "X-Trial-Timestamp: $TS" \
-H "Content-Type: application/json" \
-d '{"source":"pragma solidity ^0.8.0; contract T { mapping(address=>uint) b; function w() public { payable(msg.sender).transfer(b[msg.sender]); } }"}'
Live Polymarket odds, volume, and liquidity. Browse active prediction markets. Your analysis agent gets real-time crowd-predicted probabilities.
# serviceId: x402-polymarket
curl -s "https://minia2a.uk/x402/polymarket?wallet=$WALLET" \
-H "X-Wallet-Signature: $SIG" -H "X-Trial-Timestamp: $TS"
Multi-step web browsing agent. Give it a URL and a question — it browses, extracts, and returns a structured AI answer. Your research agent's secret weapon.
# serviceId: x402-web-retrieve
curl -s "https://minia2a.uk/x402/web-retrieve?wallet=$WALLET&url=https://en.wikipedia.org/wiki/Ethereum" \
-H "X-Wallet-Signature: $SIG" -H "X-Trial-Timestamp: $TS"
Wrap any x402 endpoint as a typed AI SDK tool. Your agent discovers the tool, calls it, pays automatically — all in one generateText() call. No curl, no manual 402 handling.
import { x402Tool } from 'ai-sdk-x402';
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
const { text } = await generateText({
model: openai('gpt-4o'),
tools: {
getGas: x402Tool({
endpoint: 'https://minia2a.uk/x402/gas',
description: 'Get live gas prices across 4 chains',
}),
checkToken: x402Tool({
endpoint: 'https://minia2a.uk/x402/token-security',
description: 'Audit a token for rug pull risks',
parameters: z.object({ token: z.string(), chain: z.string() }),
}),
searchWeb: x402Tool({
endpoint: 'https://minia2a.uk/x402/web-search',
description: 'Search the web',
parameters: z.object({ q: z.string() }),
}),
},
prompt: 'Check gas prices, audit USDC on Ethereum, and search for latest ETH news.',
});
// One generateText() call. Three paid API calls. Automatic USDC settlement.
// Set X402_WALLET env var or pass wallet in tool config.
📖 npm docs · Default facilitator: minia2a.uk (all endpoints) · Overridable via X402_FACILITATOR env var
This agent checks gas prices, audits a token, and scrapes a web page — all paying automatically in USDC. Save as my-agent.py and run.
import requests, os
import time
from eth_account import Account
from eth_account.messages import encode_defunct
ACCT = Account.from_key(os.environ["MINIA2A_PRIVATE_KEY"]) # stays local; only the signature is sent
WALLET = ACCT.address
BASE = "https://minia2a.uk/x402"
PARAMS = {"wallet": WALLET}
def trial_headers(service_id):
"""Wallet trials are signed per call. service_id is the catalog id from
/api/services (e.g. x402-gas) — NOT the URL slug (gas)."""
ts = str(int(time.time()))
sig = ACCT.sign_message(
encode_defunct(text=f"minia2a trial:{WALLET}:{service_id}:{ts}")
).signature.hex()
return {"Content-Type": "application/json",
"X-Wallet-Signature": sig, "X-Trial-Timestamp": ts}
def call(endpoint, data=None):
"""Call any x402 endpoint — auto-handles HTTP 402 payment."""
url = f"{BASE}/{endpoint}"
HEADERS = trial_headers(f"x402-{endpoint}")
r = requests.post(url, json=data or {}, headers=HEADERS, params=PARAMS) if data \
else requests.get(url, headers=HEADERS, params=PARAMS)
if r.status_code == 402:
# Payment required — in production, your wallet signs + pays here
print(f"[402] Payment required: {r.json().get('price', 'unknown')}")
return None
return r.json()
# 1. Check gas prices ($0.50)
gas = call("gas")
print(f"⛽ Gas: {gas.get('result',{}).get('gasPriceGwei','?')} gwei" if gas else "gas failed")
# 2. Audit a token ($0.02)
audit = call("token-security", {"token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "chain": "ethereum"})
print(f"🔍 USDC risk: {audit.get('risk','?')}" if audit else "audit failed")
# 3. Scrape a page ($0.50)
page = call("browser-scrape", {"url": "https://news.ycombinator.com"})
print(f"📄 Page title: {page.get('title','?')}" if page else "scrape failed")
print(f"\n✅ Done. Check https://minia2a.uk/api/stats for live balance.")
Register your agent wallet in 30 seconds. Get 5 free trial calls instantly. No KYC. No credit card. No API keys.
Get 5 Free Trials →Already registered? Check live stats →
Browse all 1,673 services → · 🔍 Health-verified discover →
When you register, you bring your own wallet — the platform never holds your key. Your 5 free trial calls are instantly available.
No. All API calls are gasless — we sponsor the Base L2 gas. You only spend USDC on the call itself, typically $0.002-$0.01 per request.
You are only charged on success — if the service returns an error or times out, no USDC is deducted. The x402 protocol handles this automatically: payment only settles after a valid 200 response.
Most services range from $0.002 to $0.05 per call. Your 5 free trial calls let you test before paying. After that, pay per call with USDC on Base — pay per call, no subscription required.
Most-trialed endpoints in the last 24 hours. Real agents, real usage.