io.github.groundhogday2011-byte/a2apay
Pay-per-call AI query and versioned task memory for agents. No account, no API key, via x402.
What can you do with io.github.groundhogday2011-byte/a2apay?
ask()returns a real AI-generated answer.remember()stores a flat key/value record with optional tags — this is- Falls back to a real payment only when the free tier returns a
402; - Payment signing uses
eth-account(maintained by the Ethereum
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
a2apay-ioclaude mcp add a2apay -e 'A2APAY_PRIVATE_KEY=<your a2apay_private_key>' -- uvx a2apay-io==0.1.0
{
"mcpServers": {
"a2apay": {
"command": "uvx",
"args": [
"a2apay-io==0.1.0"
],
"env": {
"A2APAY_PRIVATE_KEY": "<your a2apay_private_key>"
}
}
}
}
Environment variables
A2APAY_PRIVATE_KEYsecret Base mainnet wallet private key, only needed once the free tier (5 calls/day) is used up. Never required for free-tier-only usage.
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
a2apay
Python client for a2apay.io — pay-per-call AI answers and persistent memory for autonomous agents. No account, no API key.
pip install a2apay-io # free-tier only
pip install "a2apay-io[paid]" # adds real payment support (eth-account)
(The PyPI distribution is named a2apay-io — an unrelated package already
holds the bare a2apay name. The importable module is still a2apay.)
Quick start (free tier, zero setup)
Every call tries the free tier first automatically — 5 requests/day per caller, no wallet needed:
from a2apay import Agent
agent = Agent()
answer = agent.ask("What's 7 times 8?")
print(answer)
agent.remember("last_task", "processed invoice #4471", tags=["billing"])
With real payment (once the free tier is used up)
from a2apay import Agent
agent = Agent(private_key="0x...") # or set A2APAY_PRIVATE_KEY
answer = agent.ask("What's 7 times 8?")
The wallet needs a small USDC balance on Base mainnet ($0.028/call). The private key is used only to sign a payment authorization locally — it is never sent anywhere.
Checkpoint / resume (task memory)
Write versioned, task-scoped state and read it back later — even from a
different process. Each checkpoint() to the same key adds a new version
rather than overwriting, and resume() always returns the latest.
from a2apay import Agent
agent = Agent(private_key="0x...")
agent.checkpoint("invoice-batch-7", key="status", value="processed rows 1-400")
# ...process dies, or a second process picks up later...
agent2 = Agent(private_key="0x...") # same wallet
records = agent2.resume("invoice-batch-7")
print(records[0]["value"]) # "processed rows 1-400"
resume() always requires payment ($0.014/call) — there's no free tier
for reads yet, so it needs a configured wallet even for your first call.
checkpoint() follows the same free-tier-then-paid behavior as
remember().
What this honestly does and doesn't do
ask()returns a real AI-generated answer.remember()stores a flat key/value record with optional tags — this is simple text storage, not a document database. Values are stored as text.- Falls back to a real payment only when the free tier returns a
402; if noprivate_keyis configured at that point, it raises a clearA2ApayErrorrather than failing silently. - Payment signing uses
eth-account(maintained by the Ethereum Foundation ecosystem), implementing the real x402 "exact" EVM scheme per the x402 protocol spec.
MCP server
An MCP server (mcp_server.py) exposes ask and remember as MCP tools
for any MCP-aware agent or framework (Claude Desktop, etc.):
pip install "a2apay-io[mcp]"
python mcp_server.py
Add to an MCP client config:
{
"mcpServers": {
"a2apay": {
"command": "python",
"args": ["/absolute/path/to/mcp_server.py"],
"env": {"A2APAY_PRIVATE_KEY": "0x..."}
}
}
}
Honest scope note: remember is write-only — there's no memory read-back
tool because the live API doesn't have a read-back route yet.
Full API reference
See a2apay.io/openapi.yaml for the underlying HTTP API this wraps.
Frequently asked questions
What is io.github.groundhogday2011-byte/a2apay?
Pay-per-call AI query and versioned task memory for agents. No account, no API key, via x402.
How do I install io.github.groundhogday2011-byte/a2apay?
It runs on your machine. In Claude Code: claude mcp add a2apay -e 'A2APAY_PRIVATE_KEY=<your a2apay_private_key>' -- uvx a2apay-io==0.1.0. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.groundhogday2011-byte/a2apay need an API key?
Yes. It expects A2APAY_PRIVATE_KEY, which you set in its configuration.
Is io.github.groundhogday2011-byte/a2apay open source?
Its code is public on GitHub, but the repository does not declare a standard license.
Who maintains io.github.groundhogday2011-byte/a2apay?
It is published by groundhogday2011-byte. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.