x402 · Algorand mainnet
Pay-per-call tools your agent can use
11 HTTP APIs for agents working on Algorand, one of them free to call. No signup, no API key,
no subscription — your agent attaches a USDC micropayment to a normal HTTP request and
gets a useful result back. Payment is the authorization layer.
Tools
GET /api/wallet-risk/{address}
$0.03
Algorand wallet risk scoring
Explainable 0-100 risk score for any Algorand address, computed from real on-chain indexer data. No LLM — deterministic and auditable.
- Input
An Algorand address (58 characters) in the URL path.
- Output
{ address, riskScore (0-100), riskLevel (low|medium|high), signals: { accountAgeDays, txCount, balanceAlgo, usdcOptedIn, distinctCounterparties, rekeyed } }
GET /api/explain-tx/{txid}
$0.03
Algorand transaction explainer
Turn a transaction id into a plain-language summary plus structured detail — every transfer with resolved asset names, decoded app calls and inner transactions. No LLM.
- Input
An Algorand transaction id (52-character base32) in the URL path.
- Output
{ txid, type, typeLabel, summary, sender, confirmedRound, timestamp, feeAlgo, transfers: [{ asset, assetName, amount, amountRaw, from, to }], application, note, grouped }
GET /api/asset-risk/{asaId}
$0.03
ASA risk / scam screen
Explainable 0-100 risk score for any Algorand Standard Asset: clawback and freeze powers, mutable supply, largest-holder concentration, and creator age. No LLM.
- Input
An Algorand Standard Asset id (numeric) in the URL path.
- Output
{ asaId, name, unitName, creator, riskScore, riskLevel, signals: { clawbackEnabled, freezeEnabled, defaultFrozen, managerCanReconfigure, topHolderPct, holdersSampled, concentrationExact, creatorAgeDays } }
GET /api/portfolio/{address}
FREE · no payment required
Account portfolio snapshot
Every holding for an Algorand address in one call — ALGO balance plus each ASA with resolved names and decimals-corrected amounts, largest first. No LLM.
- Input
An Algorand address (58 characters) in the URL path.
- Output
{ address, algo: { amount, amountRaw }, assets: [{ asaId, name, unitName, amount, amountRaw, decimals, isFrozen }], assetCount, truncated, priced }
GET /api/relationship?a={addressA}&b={addressB}
$0.03
Address relationship check
Have two Algorand addresses transacted? Returns transaction count, value moved per asset in each direction, and first/last interaction timestamps. No LLM.
- Input
Two Algorand addresses as query parameters: a and b.
- Output
{ addressA, addressB, haveTransacted, txCount, totalMoved: [{ asset, assetName, amount, aToB, bToA }], firstInteraction, lastInteraction, scanned, windowComplete }
GET /api/asset/{asaId}
$0.02
ASA metadata & supply
Identify an Algorand token: name, decimals, declared and real circulating supply, creator, and configuration flags. Price data is not yet included. No LLM.
- Input
An Algorand Standard Asset id (numeric) in the URL path.
- Output
{ asaId, name, unitName, decimals, totalSupply, totalSupplyRaw, circulatingSupply, url, creator, destroyed, config: { hasManager, hasFreeze, hasClawback, hasReserve, defaultFrozen }, price (null for now), priceError }
POST /api/verify-payment
$0.02
Payment verification
Check a transaction against what you expected — sender, receiver, asset, amount — and get a pass/fail verdict with a per-check breakdown. Matches through inner transactions. No LLM.
- Input
{ "txid": string, "expectedSender"?: string, "expectedReceiver"?: string, "expectedAsset"?: string, "expectedAmount"?: number, "amountTolerance"?: number }
- Output
{ txid, verified, checks: { sender?, receiver?, asset?, amount? }, matchedTransfer, confirmedRound, timestamp }
POST /api/code-review
$0.08
GitHub pull request review
Give a repo and PR number, get a structured review of the diff — concrete bugs, security issues, and error-handling gaps with file and line. Fetches the diff for you.
- Input
{ "owner": string, "repo": string, "pull": number, "focus"?: string }
- Output
{ repository, pull, title, review, filesChanged, additions, deletions, diffBytesReviewed, diffTruncated, truncated }
POST /api/nl-to-sql
$0.03
Natural language to SQL
Question plus schema in, a ready-to-run SQL query out, with a readOnly flag and warnings for destructive operations. Generates only — never executes.
- Input
{ "question": string (max 2000), "schema": string (max 20000), "dialect"?: "postgres" | "mysql" | "sqlite" | "sqlserver" | "bigquery" | "snowflake" }
- Output
{ sql, dialect, readOnly, warnings, executed (always false), truncated }
POST /api/inference
$0.02
LLM text generation
Send a natural-language prompt, receive generated text. Powered by Claude Haiku 4.5.
- Input
{ "prompt": string (max 8000 chars) }
- Output
{ "response": string, "truncated": boolean }
POST /api/summarize
$0.03
Text summarization
Condense up to 50,000 characters into a concise summary, with optional length and style control.
- Input
{ "text": string (max 50000 chars), "maxWords"?: number, "style"?: "concise" | "bullets" | "detailed" }
- Output
{ "summary": string, "truncated": boolean }
Calling from an agent
Any agent running the
GoPlausible Algorand MCP server
can discover and pay these endpoints with no integration work:
bazaar_search "Algorand wallet risk scoring"
make_http_request_with_x402 "https://agenthub-production-8c75.up.railway.app/api/wallet-risk/<address>"
Or hand-roll it: call the endpoint, receive HTTP 402 with the payment quote, sign a USDC
transfer for the quoted amount, and retry with the PAYMENT-SIGNATURE header.