AbaPay DOCS & FAQ

The Vision: Global Web3 Utility

AbaPay is a decentralized payment gateway designed to bridge the gap between global Web3 liquidity and real-world utility systems across Africa and the globe. Traditional utility apps require you to deposit local fiat and trust centralized servers. AbaPay reimagines this by allowing users to pay for real-world bills—airtime, mobile data, electricity, cable TV, education PINs, bank transfers and international top-ups—directly from their self-custodial wallets using stablecoins, settled in seconds on the blockchain.

There are three ways in, and they all run on the same payment engine: this app, a chat with our agent on Telegram, WhatsApp or X, or an AI assistant connected over MCP. Whichever you use, the rules, the limits, the refund path and the on-chain guarantees are identical.

The AbaPay Difference

No Deposits. No Fiat Wallets.

You never have to 'fund' an AbaPay account — there is no AbaPay balance. Your money stays in your own wallet (MiniPay, Valora, MetaMask, Coinbase Smart Wallet / Base Account, or any WalletConnect wallet) until the exact moment you pay a bill.

Smart Contract Escrow

Your crypto isn't blindly sent to an admin. It is locked in our smart contracts on the Celo and Base networks. The contract only releases the funds to our treasury after the utility provider confirms the transaction.

Borderless Payments

You do not need a local bank account to pay bills in supported countries. Whether you are in Lagos, London, or Los Angeles, as long as you have stablecoins, you can pay Nigerian bills or top up phones abroad across 170+ supported countries, instantly.

Live Provider Catalogue

Providers, plans and their amount limits are read live from our payment provider rather than a list we maintain by hand — so the app only ever offers what can genuinely be bought right now, and a provider that goes offline simply disappears instead of failing after you've paid.

DeAI — Pay Bills by Chat

DeAI is AbaPay's conversational agent — talk to it on Telegram, WhatsApp, X (Twitter), or the in-app chat widget, and it handles the rest. No menus to memorize: just say what you want, like "top up my 08012345678 with 500 naira" or reply "Celo" and "usdt" instead of hunting for a numbered option.

Two Ways to Pay

If you've approved a spending allowance for a chain and stablecoin (see Agent Hub below), the agent pays instantly with no wallet signature needed. If you haven't, it sends you a secure, one-tap link to review and sign the payment yourself — same verified pipeline as the website either way.

See Your Balance & Limit Before You Choose

When the agent asks which stablecoin to use, it shows the live wallet balance and your remaining approved agent limit for every option on that chain — so you're never picking blind.

Never Left Hanging

Abandon a chat mid-payment and nothing is left dangling — the intent is cleaned up automatically. If a network hiccup happens right after you enter your PIN, the agent tracks the payment through to a confirmed on-chain result before ever telling you it failed, so you're never double-charged or left unsure.

MCP — Connect Your Own AI Assistant

AbaPay runs an MCP (Model Context Protocol) server, so an AI assistant you already use — Claude, or any MCP-speaking client — can pay your bills for you: Nigerian services, or international airtime/data across 170+ countries. It's the same engine chat uses, reached over JSON-RPC instead of a message. Nothing about it is a looser trust boundary: same on-chain allowance, same PIN gate, same kill switches, same operator caps, same spend alerts.

OAuth, or an API key

Preferred: authorize once in your browser with OAuth 2.1 and the connection is remembered — no credential to paste ever again. For clients that can't do OAuth, create an API key in Agent Hub → MCP instead. Either one can be revoked instantly from the Agent Hub, which kills every token issued against it.

Your PIN is still required — every single payment

Authorizing a connection means "this assistant may act for me". It never means "this assistant may spend". Without your PIN a connected assistant can read your balance and the plan catalogue and nothing else. If anything claims it can pay without asking you for your PIN, treat that as a red flag.

Real plans, real prices — never guessed

A list_plans tool gives the assistant the actual purchasable data bundles, cable packages and exam products with their real codes and current prices, straight from our payment provider. A separate list_international_options tool does the same for the international catalogue — country, product type, operator and priced plan. It's what stops an assistant inventing a plausible-sounding "1GB for ₦1,000" that doesn't exist — a real code is required or it can't pay at all.

Premium receipts, and your own history — right in chat

Every successful payment comes back with a branded receipt card and a shareable receipt link, not just a line of text. A transaction_history tool lets the assistant answer "what did I pay recently" with the same records as your app's History tab, without you needing to open it.

Agent Hub — Your Spending Allowance

The Agent Hub tab is where you link a messaging account (or create an MCP credential) and grant the agent permission to pay on your behalf — entirely optional, and entirely under your control.

  • Choose Your Own Chain & StablecoinApprovals are independent per chain and per token — approve USDC on Celo, USD₮ on Base, both, or neither. Each approval is its own on-chain transaction that only you can sign.
  • Bounded and Revocable, On-ChainThe smart contract itself — not AbaPay's servers — enforces the cap. The agent can never spend more than the remaining amount you've approved, and you can lower it, raise it, or set it to zero at any moment. Setting it to zero is the real revocation; unlinking a chat account stops that channel but doesn't touch the on-chain limit.
  • No Allowance? No Problem.If you ask the agent to pay with a token you haven't approved yet, it tells you plainly and gives you the choice — approve it now in the Agent Hub, or complete just this one payment with a signed link instead.
  • You Hear About Every Agent SpendThe moment an agent moves money, an alert goes out to your other linked channels and your email — so a leaked key or a compromised chat account is visible to you immediately, not at the end of the month.

Scheduled & Recurring Bills

Tell the agent in plain language — "every Tuesday buy ₦200 MTN airtime", "pay my meter on the 28th every month", or a one-off "top up 08012345678 in an hour" — and it becomes a schedule. Ask it to "show my schedules" or "cancel my airtime schedule" the same way.

Automatic execution is opt-in, per schedule

By default a schedule only reminds you when it's due. Only if you explicitly turn on automatic execution does it pay by itself — and even then it's bounded by the same on-chain allowance and the same per-transaction and daily caps as any other agent payment. A schedule runs at most once per due date, re-checks every service rule before it fires, warns you ahead of time if your balance looks short, and pauses itself after repeated failures rather than retrying forever.

What You Can Pay For

  • Airtime & mobile data — MTN, Airtel, Glo, 9mobile, including SME data bundles. No platform fee.
  • Electricity — prepaid and postpaid, across the Nigerian distribution companies. Your meter is verified with the disco before you pay.
  • Cable TV — DStv, GOtv, Startimes. Smartcard/IUC verified before payment.
  • Education PINs — WAEC result-checker and WAEC registration PINs, buyable in the app, in chat and through a connected AI agent. JAMB is built but not currently enabled on our merchant account, so it can't be bought today.
  • International airtime & data — every country our payment provider currently covers, read live from their own list.
  • Bank transfersapp only, deliberately. Moving money to a third party needs your own wallet signature, so the agent will never execute one from an allowance.

The exact providers, plans and amount limits inside each category come live from our payment provider and can change without an app update.

AbaPoints & Rewards

AbaPoints (⚡) are our way of rewarding loyal users. You can see your live AbaPoints balance glowing in the top right corner of the app, directly in the header.

Global Earning Ratio

1 Stablecoin = 1.00 Point

AbaPoints are globally pegged to the stablecoin (cUSD/USDm, USDC, USD₮) value of your utility purchase. Spend exactly 5.50 USDC on a utility bill? You earn exactly 5.50 points instantly. This ensures your rewards are completely protected against local fiat currency inflation!

Future Utility Plans

Keep stacking your points! In future updates, you will be able to redeem AbaPoints for free Airtime/Data, use them to cover transaction fees, or qualify for exclusive ecosystem airdrops.

Saved Beneficiaries (Recents)

Typing the same meter number or international phone number every time is stressful. AbaPay automatically saves your successful transactions as "Recent" shortcuts right below the input field.

How to Delete a Saved Number

Did you save a number by mistake or no longer need it? You can easily remove it from your recents list:

1

Press and hold (Long-press) on the saved name/number pill for 1 second.

2

The pill will turn red and say "Delete". Click it to remove it forever!

Receipts & Support

Sharing Your Receipt

Click the dark "SHARE" button at the bottom of any successful transaction receipt. AbaPay generates a clean image of your receipt that you can send straight to WhatsApp or Telegram via your phone's share sheet — or, where that isn't available (desktop and some wallet browsers), save it as a PNG or PDF, or simply long-press the preview image.

Note: The dopamine "+AbaPoints" animation happens on the app screen to celebrate your purchase, but it is intentionally hidden from the final receipt image so your receipts look professional when shared.

In-App Support System

Did a transaction fail or is a token delayed? Click the "Support" button on any receipt to instantly send a ticket, complete with your transaction hash, directly to our admin ops center.

Security & Failsafes

Domestic and international utility networks can occasionally experience downtime. AbaPay is built with Defensive Programming to ensure you never lose money to a dropped connection.

  • Strict Token RequirementsIf a provider claims "Success" but fails to generate your electricity token or education PIN, our system refuses to accept it. Your transaction goes into a PENDING state while our background webhook safely hunts down your token.
  • Deep On-Chain Payload DecodingOur API does not trust front-end claims. It directly fetches your blockchain transaction and decodes the smart contract data to verify the exact amount and service you paid for before vending.
  • Preflight Intent RecoveryIf your mobile app crashes or your network drops immediately after signing the transaction in your wallet, your funds are not lost. The system actively scans the blockchain to recover your "abandoned" preflight intent and completes the vending in the background.
  • Verified Refunds OnlyEvery refund is checked against the blockchain — correct token, correct recipient, sufficient amount — before it can be marked as refunded. A refund can never be recorded that didn't actually happen.

Frequently Asked Questions

Everything in one place — no separate FAQ page to hunt for.

Getting paid up

Three ways, all running the same payment engine. In this app: pick the service, enter the number, confirm, and sign in your wallet. By chat: message AbaPay on Telegram, WhatsApp or X in plain language — "send ₦500 airtime to 08012345678". Through an AI assistant: connect AbaPay as a tool over MCP and just ask it to pay.

Chat and AI payments need a spending allowance approved first (or they'll send you a signed link to pay yourself, one time).

Yes — add the bot to a group and tag it (@AbaPayAgentBot) to use it there. Anything sensitive (balances, receipts, PINs) is always sent to you privately, never posted where the group can see it.

One group-only trick: ask it to pick a few phone numbers that were posted in the chat recently and recharge them — e.g. "recharge 5 random numbers from the last 30 minutes, 200 each", or the same with data instead of airtime. It confirms the total and asks for your PIN by DM first, then posts the result (numbers, amounts, proof) back in the group once it's done. Electricity and cable aren't included in this — there's no safe way to tell a meter or smartcard number apart from any other number someone posts, so those still need you to name the account directly.

MiniPay (Opera Mini's Celo wallet), Valora, MetaMask, Coinbase Smart Wallet / Base Account, and any other wallet reachable over WalletConnect or injected into your browser. AbaPay also runs as a Farcaster Mini App.

Wallets that support smart-account gas sponsorship on Base get it automatically — the app detects the capability and batches the token approval and the payment into one sponsored transaction. Every other wallet just pays normal network fees, with no difference in behaviour.

Celo and Base — those two, plus their public test networks, and nothing else. USD₮ and USDC work on both; cUSD/USDm is Celo-only.

The token picker filters itself to whatever chain your wallet is on, so you can't accidentally choose one that doesn't exist there. Sending funds to our contract by hand, on another network or in another token, is not a payment and can't be matched to an order.

The blockchain part confirms in roughly a few seconds on both Celo and Base. Utility delivery normally follows immediately after confirmation — electricity tokens and education PINs appear on the receipt itself. If a provider is slow, the transaction sits in a PENDING state and our webhook keeps chasing it rather than declaring failure.

No. There's no AbaPay balance to top up, and we never hold your keys. Your stablecoins stay in your own wallet until the moment you pay a bill, and they go straight into the payment smart contract. We can't move your funds without either your signature or an allowance you explicitly approved on-chain.

Yes, and they're always shown in the total before you confirm. There's a small flat platform fee on electricity, cable TV, education and bank transfers. Airtime, mobile data and international top-ups carry no platform fee at all.

Blockchain gas is separate, goes to the network rather than to us, and depends on your wallet and chain — Base smart wallets are often sponsored, so free.

What you can buy

Airtime, mobile data (including SME bundles), electricity (prepaid and postpaid), cable TV (DStv, GOtv, Startimes), education PINs, bank transfers, and international airtime/data.

The providers inside each category are pulled live from our payment providers, so the list only ever shows what can genuinely be bought right now. If a provider disappears from the picker, it isn't purchasable at that moment — which is deliberately better than letting you pay for it and fail afterwards.

Type the destination account number — we check it against every Nigerian bank automatically and tell you whose account it is, so you don't need to know or select the bank yourself. If more than one bank has an account under that exact number, we show you the short list of matches so you can confirm which one is yours.

Once confirmed, the transfer settles in real time as an actual bank payout, not a top-up voucher.

Not right now, honestly. WAEC result-checker and WAEC registration PINs work — in the app, in chat, and through a connected AI agent. JAMB is fully built on our side, but it isn't enabled on our current merchant account with our payment provider, so it doesn't appear in the live product list and can't be bought.

If that changes at their end it will simply start appearing, with no update needed from us.

Every country our payment provider currently covers — including Ghana, Kenya, South Africa, the UK and the US. We deliberately don't publish a count, because we read that list live from the provider rather than keeping our own copy of it, so it can change without us knowing.

Pick the country in the app (or just name it in chat) and you'll see its own operators, plans and local currency. If a country isn't in the live list, the agent will tell you so instead of promising something that would fail at delivery.

Yes — just say so in chat: "every Tuesday buy ₦200 MTN airtime", "pay my meter on the 28th every month", or a one-off "top up 08012345678 in an hour". Ask to "show my schedules" or "cancel my airtime schedule" the same way.

Automatic execution is opt-in per schedule; by default a schedule only reminds you. When it is on, it's still bounded by your on-chain allowance and our per-transaction and daily caps, runs at most once per due date, and pauses itself after repeated failures.

On the receipt, immediately after a successful payment — shown in full, and shareable as an image or saveable as a PNG/PDF. It's also in your History tab, and sent by email where we have your address.

Agents, MCP and your PIN

In the app, you sign every payment in your wallet — nothing moves without that signature. With an agent, you approve an on-chain spending allowance once from the Agent Hub, for one specific chain and one specific stablecoin. After that the agent can pay without a fresh signature each time, but only up to what's left of that allowance.

The cap is enforced by the smart contract itself, not by our servers, so it cannot reach the rest of your wallet no matter what goes wrong on our side. Our own per-transaction and daily limits sit on top of yours.

Open the Agent Hub tab, pick the chain and stablecoin you want the agent to be able to use, and approve a limit — that's an on-chain transaction only you can sign. To revoke, set the limit back to zero; it takes effect on-chain immediately. Note that unlinking a chat account stops that channel but does not by itself zero your allowance, so do both if you want a full stop.

MCP (Model Context Protocol) is the standard that lets an AI assistant like Claude use AbaPay as a tool. A connected assistant can describe what AbaPay supports, list real purchasable plans with real prices, read your balance and remaining allowance, and — with your PIN — pay a bill.

It reaches exactly the same engine as chat: same on-chain allowance ceiling, same PIN gate with lockout, same kill switches, same operator caps, same spend alerts. It is not a looser door.

OAuth if your client supports it: you authorize once in the browser and the connection is remembered, so there's no credential to paste into every new conversation. The API key you create in Agent Hub → MCP is the fallback for clients that can't do the OAuth flow.

Both can be revoked instantly from the Agent Hub, and revoking kills every token issued against that link. An expired or revoked authorization makes the assistant ask you to reconnect rather than quietly failing.

Yes — every single payment, every time. Authorizing the connector means 'this assistant may act for me'; it never means 'this assistant may spend'. Without the PIN a connected assistant can only read your balance and the plan catalogue. If something claims it can pay without asking for your PIN, treat that as a red flag.

No, and it's important not to confuse them. Your wallet password and recovery phrase belong to your wallet app and we never see them. Your AbaPay PIN is a separate 4–6 digit code you set when linking a chat account or creating an MCP credential.

It gates one thing: authorising a payment through those channels. It can't move funds on its own — it only unlocks spending inside the allowance you already approved on-chain. Repeated wrong PINs lock the channel out.

It can't, for the services where that would matter. Data bundles, cable packages and education products all require a real plan code, and the connector exposes a list_plans tool that returns the actual purchasable plans, codes and current prices from our payment provider. If an agent can't get a real code, the payment is refused before any money moves rather than settling on-chain and failing at delivery.

It checks first. If there's no allowance for that chain and token, it says so and gives you the choice — approve a limit now in the Agent Hub, or complete just that one payment via a secure signed link. If another stablecoin on the same chain already has both the balance and the approved limit to cover it, it will tell you that too, so you can just use that one instead.

Yes — Telegram, WhatsApp and X can be linked independently to the same wallet, alongside one or more MCP credentials, and each can be managed or unlinked separately from the Agent Hub.

No, and that's deliberate. Bank transfers move money to a third party, so they must be confirmed with your own wallet signature in the app. The agent will refuse and point you there rather than spending from an allowance.

When something goes wrong

You get refunded, and you don't have to chase it. The moment a delivery fails after your money has landed on-chain, the transaction is flagged, queued for a refund, and our operators are alerted. You're told on the channel you used (and by email if we have one), then again when the refund actually lands.

It goes back to the same wallet, in the same stablecoin, and is verified against the blockchain — correct token, correct recipient, sufficient amount — before it can be marked as refunded. Refunds are released by an operator rather than instantly; we aim for 24–72 hours. The gas you originally paid to submit the transaction isn't recoverable.

There's nothing to refund — if the transaction reverted or never landed, your money never left your wallet. Refunds exist for the case where we received your funds and the provider then failed to deliver. Check your wallet balance; if you're still unsure, tap Support on the receipt and the ticket carries your transaction hash automatically.

Usually one of four things. (1) The service, or that one specific provider, is paused — we do that during an outage, a dispute or a security concern, and we'd rather refuse up front than take your money for something we know is broken. (2) The amount is outside the provider's own limits, which vary by network and by biller rather than following one flat rule. (3) You picked a provider our payment provider can't currently sell. (4) For agent payments: the amount exceeds your remaining allowance, your daily limit, or our operator cap.

The refusal message tells you which one it was.

We can pause things at two levels — a whole category (all electricity, say) or a single provider within it (just one disco). Both are applied identically to the app, chat, the MCP connector and the scheduler, so nothing can slip through a side door while the website correctly refuses. It's almost always a provider outage or a dispute, and it's temporary.

You do. AbaPay is a non-custodial gateway. We do not have access to your private keys, and we cannot move your funds without you either signing a transaction or having explicitly approved an on-chain allowance — which you can revoke at any moment.

x402 is an HTTP-native payment protocol that some app payments settle through automatically instead of a direct contract call, where the chain and token support it. It's invisible in day-to-day use — same wallet signature, same vault, same refund protection — it simply makes that payment independently verifiable on public x402 explorers. Which rail is used is our routing decision, not something you pick.

Tap Support on any receipt — the ticket goes straight to our ops team with your transaction hash attached, which is by far the fastest route.

Otherwise, email support@abapays.com. Our Terms and Privacy Policy spell out the formal version of everything above.