A-Pay Protocol
OfficialThis MCP server enables an AI agent to make paid HTTP requests through HTTP 402 auto-settlement on Base L2 while managing wallet budgets and inspecting endpoint payment requirements.
Make GET, POST, PUT, or DELETE requests to APIs/websites; automatically handle HTTP 402 challenges by signing payment authorizations within budget limits.
Inspect the agent's active non-custodial wallet address, current spending guardrails, and total spent in USDC and $APAY.
Configure daily and per-call spending budgets for USDC and $APAY to prevent runaway spending.
Probe an endpoint to check if it requires A-Pay payment, including exact price quote, currency, and payout receiver, without spending funds.
Check live on-chain Base L2 balances, including native ETH for gas, USDC, and $APAY tokens.
Provides a wrapper for CrewAI agents, enabling autonomous HTTP 402 micropayments with spending guardrails.
Provides middleware for Express.js APIs to enforce HTTP 402 paywalls, allowing AI agents to pay per request.
Provides middleware for FastAPI backends to enforce HTTP 402 paywalls, allowing AI agents to pay per request.
Provides a wrapper for LangChain agents, enabling autonomous HTTP 402 micropayments with spending guardrails.
Provides middleware for Next.js 15 applications to enforce HTTP 402 paywalls, allowing AI agents to pay per request.
Provides a WordPress plugin for AI paywalls, allowing site owners to charge AI crawlers via HTTP 402.
โก A-Pay Protocol (AgentPay)
The World's First Fully Autonomous HTTP 402 Micropayment & Economic Settlement Layer on Base L2
๐ Canonical Protocol Identity & Verified Network
Official Protocol Domain: https://apayprotocol.org (Cloudflare Global Edge Anycast, DDoS Protected)
Official Basename (Base L2 ENS):
apayprotocol.base.ethOfficial Inboxes:
founder@apayprotocol.org|contact@apayprotocol.org|security@apayprotocol.orgOfficial GitHub Organization: https://github.com/apayprotocol (Verified Domain Organization)
Official Discord Community: https://discord.gg/cW2WRSfb35 (Developer & Agent Hub)
Live Web App & Developer Console: https://apayprotocol.org / https://apay-network.vercel.app
โ๏ธ Verified Smart Contracts (Base Mainnet โ Chain ID 8453)
Contract / Resource | Contract Address | Explorer / Pool |
$APAY Token (ERC-20) |
| BaseScan (100M Fixed Cap) |
EscrowVault (Session Keys) |
| BaseScan (Non-Custodial Delegated Spend) |
APayRouterV2 (Enterprise) |
| BaseScan (Cumulative Channels & Merkle Claims) |
APayRouter (V1 Gateway) |
| BaseScan (1.0% Protocol Fee) |
StakingVault (Anti-Spam) |
| BaseScan (Collateral & Slashing) |
Aerodrome Liquidity Pool |
| |
Market Analytics | DexScreener Live Pool |
๐งช Base Sepolia Testnet (Chain ID 84532)
Testnet Faucet APAY:
0x8dd4ff9035c7d4e0Bef30aa64FC30d128A4066C3EscrowVault:
0x3E35a9E802627a3D9A86D6554e72b1C446E34aAFAPayRouterV2:
0xD08c8A337E5339d1c083E06d74A9265956ceEA16APayRouter V1:
0x71434344beEF9C44fF3BC95572bEB7bFB8847ec6
Related MCP server: PipRail
๐ก The Genesis: Unlocking HTTP 402 After 30 Years
In 1996, Sir Tim Berners-Lee and the IETF authored RFC 2068, reserving the HTTP status code 402 Payment Required for digital cash protocols.
For thirty years, status code 402 sat dormant. Web 2.0 forced digital payments into human-centric credit card rails (Visa, Mastercard, Stripe), requiring KYC identity checks, CAPTCHAs, and minimum fixed transaction fees of $0.30 + 2.9%.
โ ๏ธ The Problem Today (2026 AI Agent Economy)
AI Agents Have No Credit Cards: Autonomous software agents (Claude Desktop, Cursor, LangChain, AutoGen, CrewAI) execute multi-step workflows across the web. They cannot hold credit cards, submit passports for KYC, or solve visual captchas.
Publishers & Website Owners are Bleeding Compute: Autonomous AI scrapers (GPTBot, ClaudeBot, PerplexityBot) crawl millions of pages daily. Publishers face massive server bandwidth bills while their proprietary intelligence is consumed for free.
Stripe Kills Micropayments: If an AI agent wants to purchase a single database row, an API call, or an article for $0.001 (0.1ยข), Stripe's $0.30 fixed fee makes it impossible.
๐ The A-Pay Solution
A-Pay is the world's first autonomous economic settlement layer that implements the native HTTP 402 standard on Base Layer 2.
Sub-Cent Micropayments: Settle transactions as small as $0.0001 (0.01ยข) in native USDC or $APAY.
Zero Gas Friction for Agents: Agents sign off-chain cryptographic authorizations (EIP-712). Relayers handle batch settlement on Base L2.
Sub-15ms Latency: Cryptographic verification completes in under 15 milliseconds, seamlessly unblocking HTTP responses.
100% Non-Custodial & Audited: Guarded by smart contract session keys with daily spending limits and per-call caps.
๐๏ธ The Three Architectural Pillars
A-PAY PROTOCOL
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โผ โผ โผ
[PILLAR 1: SELLER] [PILLAR 2: BUYER] [PILLAR 3: SETTLEMENT]
HTTP 402 Paywall Layer Autonomous Agent Wallets Base L2 Escrow Vault
โโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โข WordPress AI Paywall Plugin โข Model Context Protocol (MCP) โข EIP-712 Batch Settlement
โข Reverse Proxy (`apay protect`) โข Ephemeral Session Keys โข Non-Custodial Escrow
โข FastAPI / Express Decorators โข Daily Budgets & Per-Call Caps โข Cumulative Payment Channels
โข Next.js 15 Middleware โข LangChain / CrewAI Wrappers โข Native USDC & $APAY SupportPillar 1: HTTP 402 Paywall & Monetization Layer (For Publishers & Sellers)
Turn unmetered AI crawler traffic into instant, automated revenue:
Selective Bot Paywall: Genuine human visitors read your website freely without popups or captchas. Autonomous AI crawler bots automatically receive an HTTP 402 Payment Required challenge.
Instant Reverse Proxy: Protect ANY existing REST API, FastAPI backend, or web server with a single terminal command:
apay protect --target http://localhost:8000 --price 0.001 --wallet 0xYourPayoutAddressNative Framework SDKs: Drop-in middleware for Next.js 15, FastAPI, Express.js, and WordPress.
Pillar 2: Autonomous Agent Wallet & MCP Server (For AI Agents & LLMs)
Give AI agents economic agency with programmatic safety rails:
Model Context Protocol (MCP): Native integration for Claude Desktop, Cursor, Cline, Windsurf, and custom LLM tool runners.
Spending Guardrails: Define hard spending limits (
daily_budget_usdc=2.00,max_per_call_usdc=0.01). The agent cannot exceed its delegated allowance even if prompted maliciously.Auto-Settling HTTP Client:
APaySessionautomatically catches402headers, signs the EIP-712 challenge, and retrieves data in a single round-trip without human intervention.
Pillar 3: On-Chain Base L2 Settlement & Escrow Vault (For Enterprise Web3 Security)
Enterprise-grade cryptographic settlement built on Coinbase's Base Layer 2:
EscrowVault: Agents deposit or lock funds into dedicated smart contracts. Session keys authorize payments without holding root private keys.
APayRouterV2: Batch settlements aggregate thousands of off-chain micro-signatures into a single Merkle-verified on-chain transaction, reducing effective gas costs to fractions of a cent.
Dual-Currency Support: Settle in dollar-pegged USDC or the protocol utility token $APAY with fee discounts.
๐ฅ Who Is A-Pay For? (Target Personas & Benefits)
User Persona | The Pain Point Today | How A-Pay Solves It |
Website Owners & Publishers | AI bots scrape content for free; hosting bills surge; paywalls block human readers. | Human visitors read for free; AI scrapers pay $0.001/page via HTTP 402 paywall. |
API Providers & SaaS Founders | Monthly SaaS billing requires Stripe KYC, invoices, high churn, and $0.30 transaction minimums. | Pure pay-per-call micro-billing ($0.005/request); zero chargebacks; instant settlement. |
AI Engineers (Claude/Cursor) | Agents cannot purchase web search results, private datasets, or pay for third-party tools. | Agents hold delegated session wallets with daily budgets to pay for tools autonomously. |
Web3 & Base L2 Builders | Tokens lack real-world utility; micro-transaction dApps suffer from gas friction. | Millions of automated M2M agent micro-settlements flowing through Base L2 contracts. |
๐ Quickstart & Universal Developer Setup
1. Python Developers (FastAPI & AI Agents)
pip install apayProtect a FastAPI Endpoint with HTTP 402:
from fastapi import FastAPI, Depends
from apay import require_payment
app = FastAPI()
@app.get("/api/alpha-feed")
@require_payment(price_usdc=0.005, receiver="0xYourPayoutWalletAddress")
async def get_alpha_feed():
return {"status": "unlocked", "data": "Exclusive proprietary real-time signals"}Call Protected APIs with an Autonomous Agent:
from apay import APaySession, AgentWallet
# Create an agent wallet with strict safety caps
wallet = AgentWallet(
private_key="0x...",
max_per_call_usdc=0.01,
daily_budget_usdc=5.00
)
session = APaySession(wallet)
# Automatically handles HTTP 402 challenges & settles on the fly (<15ms)
response = session.get("https://api.example.com/api/alpha-feed")
print(response.json())2. TypeScript & Node.js Developers (Next.js & Express)
Scaffold a complete fullstack project in 30 seconds:
npx create-apay-app my-autonomous-agentOr install the client library:
npm install apay-clientimport { APayClient } from "apay-client";
const client = new APayClient({
privateKey: process.env.AGENT_PRIVATE_KEY!,
network: "base-mainnet",
maxPerCallUsdc: 0.05
});
// Auto-settling request
const data = await client.fetchWithPaywall("https://data-provider.com/market-depth");
console.log(data);3. Claude Desktop & Cursor (Model Context Protocol / MCP)
One-Click Install via Smithery:
npx -y smithery mcp add apayprotocol/apayOr Add to claude_desktop_config.json / Cursor (.cursor/mcp.json):
{
"mcpServers": {
"apay": {
"command": "uvx",
"args": ["apay", "mcp"],
"env": {
"APAY_NETWORK": "base-mainnet",
"APAY_CURRENCY": "DUAL",
"APAY_MAX_PER_CALL": "0.05",
"APAY_DAILY_BUDGET": "2.00"
}
}
}
}Now Claude or Cursor can execute tools:
apay_request: Send requests to HTTP 402 protected APIs and settle on-the-fly.apay_get_balance: Inspect live on-chain balances (ETH, USDC, $APAY).apay_inspect_endpoint: Probe an API paywall for price and terms without spending gas.apay_set_budget: Adjust per-call limits and daily spending guardrails.
4. Website Owners & WordPress (Zero Code Reverse Proxy)
Protect ANY live web server or WordPress site without changing a single line of backend code:
apay protect --target http://localhost:8000 --price 0.001 --wallet 0xYourPayoutAddressHuman browsers view the site freely.
AI web crawlers (GPTBot, ClaudeBot, Bytespider) receive an HTTP 402 challenge and pay per scrape.
5. Coinbase AgentKit (On-Chain Base L2 Agents)
Drop-in Action Provider enabling any Coinbase AgentKit agent to probe and settle HTTP 402 micropayments on Base L2:
Python:
from apay.integrations.agentkit import create_apay_action_provider
apay_provider = create_apay_action_provider(
network="base-mainnet",
max_per_call_usdc=0.05,
daily_budget_usdc=2.00,
)TypeScript:
import { createAPayActionProvider } from "apay-gateway/agentkit";
const apayProvider = createAPayActionProvider({
network: "base-mainnet",
preferredCurrency: "USDC",
});Provides 5 native tools: apay_probe_endpoint, apay_request, apay_get_wallet_status, apay_get_balance, apay_set_budget.
๐ Project Architecture
a_pay/
โโโ src/apay/ # Core Python SDK & Runtime
โ โโโ cli.py # โก 1-Command CLI (`apay protect`, `apay wallet new`, `apay mcp`)
โ โโโ client.py # ๐ค Autonomous HTTP client with auto-402 negotiation
โ โโโ wallet.py # ๐ In-memory delegated wallet & spending limits
โ โโโ proxy.py # ๐ก๏ธ Ultra-light reverse proxy HTTP 402 paywall
โ โโโ relayer.py # ๐ EIP-712 batch settlement relayer
โ โโโ integrations/ # ๐ LangChain, CrewAI & AutoGen agent wrappers
โโโ gateway-ts/ # Enterprise TypeScript Gateway & EIP-712 Verifier
โโโ packages/create-apay-app # Official NPX starter scaffolding CLI
โโโ contracts/ # Audited Solidity Smart Contracts (Base Mainnet & Sepolia)
โ โโโ APAYToken.sol # ERC-20 100M Cap Protocol Utility Token
โ โโโ EscrowVault.sol # Session Key Delegated Spending Vault
โ โโโ APayRouterV2.sol # Cumulative Channel & Merkle Root Router
โ โโโ StakingVault.sol # Anti-Spam Collateral Engine
โโโ web/ # Official Portal (Next.js 15, Tailwind, RainbowKit, Wagmi)
โโโ docs/ # Complete Protocol Specifications & RFCs
โโโ spec/ # RFC wire format & EIP-712 domain specifications
โโโ pyproject.toml # Official Hatchling packaging configuration๐ Security & Verification Guarantees
Non-Custodial Session Delegation: Agents operate with strictly sandboxed session keys. The agent NEVER has access to the owner's primary root wallet or vault withdrawal functions.
Deterministic Cryptographic Limits: Spending caps are signed off-chain and enforced both in-memory and on-chain by the
EscrowVaultsmart contract.Formal Verification & Secrets Hygiene:
Zero hardcoded secrets, seed phrases, or private keys across the entire codebase.
Automated security scans verified via
python3 scripts/scan_secrets.py.On-chain bytecode verified on BaseScan.
๐ค Community & Ecosystem
Official Website: https://apayprotocol.org
Official Discord: https://discord.gg/cW2WRSfb35 (Developer Community)
Official Subreddit: r/A_Pay_Protocol
GitHub Organization: https://github.com/apayprotocol
Official Basename:
apayprotocol.base.ethContact & Security:
founder@apayprotocol.org|security@apayprotocol.org
A-Pay is an open-source decentralized economic protocol for the machine-to-machine economy. Built on Base Layer 2.
Available Tools
5 toolsapay_get_balanceA
Inspect the agent's live on-chain balances on Base Layer 2, including native ETH (for gas), USDC, and $APAY tokens.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load, and it does convey that this is a non-mutating inspection of live state and enumerates what is returned. It stops short of disclosing failure modes (e.g., unconfigured wallet), whether it triggers an RPC call, or any caching/latency behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with the key facts (live, on-chain, Base L2, asset list) and no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description usefully substitutes for one by naming the returned asset types. For a zero-parameter read tool this is nearly sufficient, with only edge-case behavior left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly adds nothing about inputs because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource ('inspect the agent's live on-chain balances') with the exact chain (Base L2) and the specific assets (ETH, USDC, $APAY), so the agent knows what data it will get back. It does not, however, differentiate itself from the possibly-overlapping sibling apay_get_wallet_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as apay_get_wallet_status or the relationship to apay_request. Usage is only loosely implied by the name and the balance-focused wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apay_get_wallet_statusA
Inspect the agent's active non-custodial wallet address, current spending guardrails, and total spent in USDC and $APAY.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Inspect' and the zero-argument schema imply a safe read of the agent's own wallet, and it discloses that guardrails and spend totals are returned, but it says nothing about authentication, data freshness, or whether any state changes occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence naming the verb, the resource, and the three returned facets with no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must convey the return surface; it does so by listing wallet address, spending guardrails, and total spent in two currencies. For a no-argument read tool this is nearly complete, though it omits any note on freshness or formatting of the returned values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. There is no parameter surface for the description to clarify or obscure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Inspect') and resource ('wallet status') and enumerates the returned facets: wallet address, spending guardrails, and total spent in USDC/$APAY. It is distinguishable from siblings like apay_set_budget and apay_get_balance by implication, but never names them explicitly, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus apay_get_balance or apay_inspect_endpoint, and no stated preconditions. The agent is left to infer usage entirely from the tool name and the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apay_inspect_endpointA
Inspect an endpoint to check if it requires an A-Pay micropayment, inspect the exact price quote, currency, and payout receiver without spending any funds.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to probe for HTTP 402 payment requirements |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the most important trait: this probe is free and non-destructive ('without spending any funds'), and it enumerates the information surfaced (payment requirement, quote, currency, receiver). It omits what is returned when no payment is required, auth needs, and rate limits, but the safety profile is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste; the no-cost guarantee and the enumerated outputs each earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only probe with no output schema, the description covers purpose, the pre-spend framing, and the fields discovered. It would be fully complete with a note on the non-payment outcome, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the single 'url' parameter and its HTTP 402 probing role are already documented in the schema. The description adds no format, validation, or syntax details beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (inspect) and resource (endpoint) plus the exact data revealed: payment requirement, price quote, currency, and payout receiver. It implicitly separates itself from a paying sibling like apay_request via 'without spending any funds', but never names an alternative, so sibling differentiation is implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The practical trigger (probe before committing funds) is implied by 'without spending any funds', which suggests the pre-payment inspection role. However, it never states when to use this over apay_request or that it should precede a payment, leaving the agent to infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apay_requestB
Make an HTTP request (GET, POST, etc.) to any API or website. If the endpoint returns an HTTP 402 Payment Required challenge, A-Pay automatically signs the cryptographic payment authorization within your budget limits and unlocks the data in <25ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target endpoint URL to fetch or query | |
| method | No | HTTP request method (default: GET) | GET |
| headers | No | Optional additional HTTP headers | |
| json_body | No | Optional JSON payload for POST/PUT requests |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose meaningful behavior: it signs a cryptographic payment authorization, respects budget limits, and responds in <25ms. However, it omits what happens when the budget is exceeded, whether spending is idempotent/retryable, and how errors surface โ notable gaps for a tool that can spend money.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action and the unusual payment behavior. Efficient overall, though the '<25ms' latency claim is promotional rather than decision-relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must carry the full context. It explains the headline feature (automatic 402 payment) but leaves out budget-exceeded behavior, error semantics, and return shape โ enough is missing that an agent cannot fully predict outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so url, method, headers, and json_body are already documented in the schema. The description adds no format, constraint, or usage nuance beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Make an HTTP request ... to any API or website') and immediately highlights the differentiating behavior: automatic HTTP 402 payment authorization. It does not explicitly name or contrast itself with siblings like apay_inspect_endpoint, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus apay_inspect_endpoint, apay_set_budget, or apay_get_balance. The only conditional language ('If the endpoint returns an HTTP 402...') describes internal behavior, not when an agent should select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apay_set_budgetC
Configure agent safety invariants and spending guardrails. Prevents runaway loops or overcharging.
| Name | Required | Description | Default |
|---|---|---|---|
| daily_budget_apay | No | Maximum $APAY token rolling 24-hour spending budget | |
| daily_budget_usdc | No | Maximum USDC rolling 24-hour spending budget | |
| max_per_call_apay | No | Maximum $APAY token allowance for a single API call | |
| max_per_call_usdc | No | Maximum USDC allowance for a single API call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it says little beyond intent: it does not state that settings persist, whether provided values replace or merge with existing limits, what happens when a parameter is omitted (all four are optional), or what authority is required. 'Prevents runaway loops or overcharging' hints at enforcement but never explains the mechanism.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler, and the core purpose is front-loaded. It is slightly under-specified rather than verbose, which is not a conciseness failure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation tool with no annotations and no output schema, the description leaves key gaps: persistence of settings, semantics of optional parameters at already-set budgets, and interaction with the sibling apay_request tool that these guardrails constrain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (daily vs per-call, APAY vs USDC) are already documented in the schema. The description adds no meaning about units, defaults, or behavior when values are omitted, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Configure' plus 'spending guardrails' conveys that this sets spending limits, which is a real purpose rather than a tautology. But 'agent safety invariants' is abstract jargon, and the description never names the concrete resources ($APAY/USDC budgets, per-call caps) that distinguish it from siblings like apay_get_balance or apay_request.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to invoke this tool, no prerequisites (e.g., before making apay_request calls), and no reference to any alternative. The reader must infer its place in the workflow entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
apay_get_balance - First observed
apay_get_wallet_status - First observed
apay_inspect_endpoint - First observed
apay_request - First observed
apay_set_budget
TDQS
Scored across 5 tools
Each tool targets a distinct action: inspecting an endpoint, checking balances, making a paid request, viewing wallet status/guardrails, and setting budget. The dry-run inspect tool is clearly separated from the actual payment request tool, and balance vs wallet status are differentiated by their descriptions.
All tools use a consistent apay_ prefix and mostly follow a verb_noun pattern (inspect_endpoint, get_balance, get_wallet_status, set_budget). apay_request is the lone verb-only name, a minor deviation but still readable and predictable.
Five tools are well-scoped for a micropayment protocol agent surface: inspect, request, balance, status, and budget. Each tool earns its place with no obvious redundancy or missing core operation.
The toolset covers the essential lifecycle: checking payment requirements, executing paid requests, viewing balances, inspecting wallet state, and configuring spending limits. Minor gaps exist around transaction history or explicit wallet funding/withdrawal, but agents can work around these.
Maintenance
Related MCP Connectors
Universal HTTP 402 Micropayment Protocol & Autonomous Economic Settlement Engine for AI Agents
Monetization and execution gateway for autonomous AI agents on Base Mainnet
Autonomous HTTP 402 Web Scraping Mesh on Base for $0.02 USDC.
Attribution and settlement infrastructure for AI agent content access over HTTP 402 and MCP.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceUSDC payments for AI agents on Base. Direct transfers, pre-funded tabs, x402 paywall handling, and service discovery.23 npmMIT
- AlicenseAqualityAmaintenanceA budget-bound x402 payment wallet for AI agents: it autonomously pays HTTP 402 payment-gated URLs across every major chain (EVM, Solana, and many non-EVM families). Self-custodial and backendless, your key, your RPC, with spend caps enforced before any on-chain send.89MIT

@arispay/payagent-mcpofficial
AlicenseAqualityAmaintenanceEnables AI agents to call paid APIs and settle HTTP 402 payment challenges with USDC on Base, without private keys ever being involved.7154 npmMIT- AlicenseNot gradedqualityFmaintenanceEnables pay-per-call access control for AI agents using HTTP 402 and on-chain settlement, allowing microtransactions for API usage.108 PyPIMIT