Card snapshot
abapays.com
·
2026-08-10 20:47:01 UTC
·
7715e68132d5f9092d45765434a6c66ff7a6a7dd9f6b68cc6271ce5273d981a3
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"protocolVersion": "0.3.0",
"name": "AbaPay",
"description": "Non-custodial bill-payment agent. Pays airtime, mobile data, electricity, cable TV, education fees and international top-ups across 170+ countries, settled in stablecoins on Celo and Base from a wallet that has granted a bounded, revocable on-chain allowance.",
"url": "https://abapays.com/api/a2a",
"preferredTransport": "JSONRPC",
"version": "1.0.0",
"documentationUrl": "https://github.com/investorphem/AbaPay#a2a",
"iconUrl": "https://abapays.com/logo.png",
"provider": {
"organization": "AbaPay",
"url": "https://abapays.com"
},
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"text/plain",
"application/json",
"image/png"
],
"securitySchemes": {
"bearer": {
"type": "http",
"scheme": "bearer",
"description": "OAuth 2.1 access token (see /.well-known/oauth-authorization-server) or an AbaPay Agent Hub API key. A token authenticates the connection only \u2014 pay_bill additionally requires the wallet PIN on every single call."
}
},
"security": [
{
"bearer": []
}
],
"skills": [
{
"id": "describe_capabilities",
"name": "Describe capabilities",
"description": "List what AbaPay can pay (airtime, data, electricity, cable, etc.), any services currently paused, and example requests. Call this first if unsure what is supported.",
"tags": [
"discovery",
"capabilities"
],
"examples": [
"What can AbaPay pay for?"
]
},
{
"id": "check_balance",
"name": "Check wallet balance",
"description": "Check a linked wallet's stablecoin balances and remaining agent spending allowance. Works with no arguments once this connector is authorized via OAuth; otherwise pass the api_key created in the AbaPay app's Agent Hub (MCP).",
"tags": [
"balance",
"wallet",
"stablecoin",
"celo",
"base"
],
"examples": [
"What is the linked wallet's USDC balance and approved limit?"
]
},
{
"id": "list_plans",
"name": "List purchasable plans",
"description": "List the REAL, currently purchasable plans for a service that needs one \u2014 DATA bundles, CABLE packages, or EDUCATION products (WAEC/JAMB) \u2014 with their exact codes and current VTpass prices. ALWAYS call this before pay_bill for these three services and pass back one of the returned codes as variation_code. Never guess a plan, a code, or a price \u2014 if this returns nothing usable, say so rather than i",
"tags": [
"catalogue",
"data",
"cable",
"education"
],
"examples": [
"List MTN data plans"
]
},
{
"id": "list_international_options",
"name": "Browse international options",
"description": "Browse the REAL, live international top-up catalogue (170+ countries) one level at a time. Call with no country to see supported countries. Add country to see its product types. Add product_type_id to see operators. Add operator_id too to see real, currently purchasable plans with their exact codes, foreign-currency price, and NGN-equivalent cost. ALWAYS call this before pay_bill with service: INT",
"tags": [
"international",
"airtime",
"data",
"catalogue"
],
"examples": [
"What airtime operators are available in Ghana?"
]
},
{
"id": "transaction_history",
"name": "Recent transaction history",
"description": "List recent real transactions for the linked wallet \u2014 same data as the AbaPay app's History tab (service, provider, amount, status, tx hash). Read-only, no PIN required.",
"tags": [
"history",
"receipts"
],
"examples": [
"What bills were paid recently?"
]
},
{
"id": "pay_bill",
"name": "Pay a bill",
"description": "Pay a real bill \u2014 Nigerian (airtime, data, electricity, cable TV, a WAEC/JAMB education PIN) or international airtime/data across 170+ countries \u2014 from the linked wallet, settled on-chain and delivered via the same pipeline as the AbaPay app. For DATA, CABLE (when changing package), and EDUCATION, call list_plans first and use a real variation_code from it. For service: INTERNATIONAL, call list_in",
"tags": [
"payment",
"airtime",
"data",
"electricity",
"cable",
"education",
"international"
],
"examples": [
"Pay 1000 NGN MTN airtime for 08012345678"
]
}
]
}