Executive Summary
AbabilPay is a USDC-native, multichain-abstracted payment infrastructure platform. It is built on Circle's developer APIs for wallet and payment operations, Supabase as the primary backend database and auth layer, and an integrated AI Agent system for intelligent automation. Merchants accept crypto with zero volatility risk. Consumers get a unified wallet that works across every blockchain — invisibly.
Problem Statement
| Pain Point | Description |
|---|---|
| Volatility Risk | Merchants accepting crypto face constant price swings making revenue unpredictable and unsettling. |
| Chain Fragmentation | Payments arrive on ETH, Polygon, Solana — different chains creating reconciliation and UX nightmares. |
| Integration Complexity | Adding crypto checkout to Shopify or WooCommerce requires deep blockchain expertise most merchants lack. |
| No Unified Wallet UX | Users manage separate wallets per chain, juggling seed phrases, gas tokens, and different interfaces. |
| Manual Operations | Invoice follow-ups, payment retries, FX conversion, and reporting are all done manually today. |
| Zero Smart Insights | Merchants have no AI-driven analytics for fraud detection, cash flow forecasting, or payment optimization. |
How AbabilPay Solves These
User Types & Roles
| User Type | Who They Are | Primary Goals | Key Features |
|---|---|---|---|
| Consumer | Individual end users | Pay merchants, send/receive USDC, manage wallet | Wallet, Bridge, Split, On-Ramp |
| Merchant | E-commerce stores, freelancers | Accept payments, issue invoices, track revenue | Dashboard, Invoice, Plugins, Off-Ramp |
| Developer | Shopify/WooCommerce builders | Integrate payments into apps or stores | REST API, SDKs, Webhooks, Sandbox |
| Enterprise | Large businesses, DAO treasuries | Bulk payments, payroll, multi-sig approvals | Payroll Module, Multi-sig, White-label |
| AI Agent System | Autonomous system actor | Automate tasks, detect anomalies, trigger actions | Agent Orchestrator, Supabase, Circle API |
Technology Stack
pgvector (AI agent long-term memory) — all in one
managed platform with Row Level Security baked in.
Authentication & Onboarding
Users sign in exclusively with Google OAuth via Supabase Auth. On first login, AbabilPay automatically provisions a Circle Developer Controlled Wallet and creates the user record in Supabase. KYC is only triggered for on/off ramp access.
| Step | Action | Storage |
|---|---|---|
| 1 — Google Sign-In | Supabase Auth handles full OAuth flow |
users.google_id
|
| 2 — Wallet Create | Circle API provisions developer-controlled wallet per chain |
wallets.circle_wallet_id
|
| 3 — Role Setup | User selects Consumer or Merchant; merchant store profile created |
users.role, merchants.*
|
| 4 — KYC (Optional) | Required for on/off ramp; ID document uploaded |
Supabase Storage +
users.kyc_status
|
| 5 — Onboarding Done | Redirect to appropriate dashboard based on role | Session stored via Supabase Auth |
Unified Smart Wallet
Each user has one logical wallet showing a unified USDC balance across all chains. Circle Programmable Wallets manages separate accounts per chain under the hood. Supabase Realtime pushes balance changes to the frontend instantly — no polling.
| Feature | Description |
|---|---|
| Unified Balance View | Aggregated USDC total from ETH, Polygon, Base, Arbitrum, Solana, Avalanche |
| Per-Chain Breakdown | Expandable panel showing balance breakdown by chain |
| Dev Controlled Keys | Circle manages private keys — users never see a seed phrase |
| Realtime Sync | Supabase Realtime subscription fires on every confirmed transaction |
| Transaction History |
Full ledger from
transactions table —
filter by chain, type, date range
|
| QR Receive | Generate QR for any chain address for in-person or remote payments |
| Address Book | Save frequent recipient wallets stored in Supabase per user |
| Multi-sig Support | Enterprise accounts can require 2-of-3 approvals before any outgoing transfer |
Auto-Convert Any Token → USDC on Deposit
Flagship feature. When any non-USDC token is deposited, AbabilPay automatically swaps it to USDC via 1inch or 0x aggregator before crediting the wallet. The merchant and user always see a pure USDC balance. Everything inside the app is USDC.
| Mode | Behavior |
|---|---|
| Always Convert Default | Every non-USDC deposit is instantly swapped. Zero user action needed. |
| Manual Confirm | User receives notification and approves swap before execution |
| Threshold Mode | Convert only if token value exceeds a user-defined USD amount |
| Slippage Protection | Max 0.5% slippage enforced. If exceeded, swap is queued and retried after 60 seconds |
| Supported Tokens | ETH, MATIC, SOL, BNB, USDT, DAI, WBTC, AVAX, ARB + any ERC-20 with 1inch liquidity |
Cross-Chain Bridge (Circle CCTP)
Built on Circle's Cross-Chain Transfer Protocol (CCTP). Native USDC burns on the source chain and mints on destination — no wrapped tokens, no bridge exploit risk. The AI Agent auto-selects the optimal route.
| Feature | Detail |
|---|---|
| CCTP Native | Circle burns USDC on source and mints on destination — no wrapped assets or third-party bridges |
| Supported Routes | ETH ↔ Polygon ↔ Base ↔ Arbitrum ↔ Avalanche ↔ Solana (all pairs bidirectional) |
| AI Route Selection | AI Agent picks cheapest + fastest route based on real-time gas and liquidity data |
| Gas Abstraction | AbabilPay sponsors gas; fee deducted from USDC amount (shown to user before confirm) |
| Status Tracking | Live bridge progress shown in UI via Supabase Realtime updates |
| Time Estimates | Estimated arrival shown before confirmation (typically 10–30 seconds on CCTP v2) |
On / Off Ramp
Circle's Payments API powers fiat ↔ USDC conversion. KYC is verified once and stored in Supabase Storage. Limits scale with KYC level.
| Direction | Supported Methods | Regions |
|---|---|---|
| On-Ramp (Fiat → USDC) | Credit card, debit card, bank wire (ACH / SEPA) | US, EU, UK |
| Off-Ramp (USDC → Fiat) | Bank transfer to verified account; local currency settlement | US, EU, UK |
| Limits — KYC Level 1 | Up to $1,000 / day | All regions |
| Limits — KYC Level 2 | Up to $50,000 / day | All regions |
| Fees | 1.5% on-ramp · 0.8% off-ramp (shown before confirmation) | — |
Invoice System
Full-featured invoicing for merchants. Invoices stored in Supabase, PDFs generated server-side and saved to Supabase Storage. Customers pay with any token via a payment link — merchant always receives USDC. AI Agent handles automatic follow-ups.
| Feature | Description |
|---|---|
| Invoice Creation |
Line items, due date, notes, tax fields — stored in
invoices +
invoice_items tables
|
| Payment Link | Unique URL — customer pays with any token, merchant receives USDC |
| PDF Generation | Auto-generated, merchant-branded PDF stored in Supabase Storage |
| Email Delivery | Sent via Resend API with merchant logo and branding |
| Status Lifecycle | Draft → Sent → Viewed → Paid / Overdue / Cancelled |
| Recurring Invoices | Subscription billing — auto-creates on schedule (weekly / monthly / yearly) |
| Partial Payments | Invoice stays open until fully settled; partial amounts tracked per transaction |
| Multi-currency Display | Display in USD, EUR, GBP, BDT etc. — always settle in USDC |
| AI Auto Follow-Up AI | Agent sends reminder emails at 3 days before, 1 day before, and on overdue date |
Split Payment
Group bill splitting. A split session is created in Supabase, a shareable link generated, and each participant pays their share independently with any token (auto-converted to USDC). Organizer sees a live Supabase Realtime dashboard.
| Feature | Description |
|---|---|
| Create Split |
Set total, participant count, and custom note. Stored in
splits table.
|
| Share Link / QR | Each participant pays their share in any token — auto-converts to USDC |
| Equal or Custom | Equal division or manually assign amounts per participant |
| Live Tracking | Supabase Realtime updates who has paid in real-time |
| Expiry | Sessions expire after 7 days (configurable) if not fully funded |
| Auto Payout | Once fully funded, USDC auto-transferred to organizer's wallet |
E-Commerce Payment Suite
Shopify Plugin
Published on the Shopify App Store. Merchant installs the app, connects via OAuth, and crypto checkout appears automatically alongside Stripe/PayPal at checkout.
| Feature | Detail |
|---|---|
| Install | One-click from Shopify App Store; OAuth connects to AbabilPay merchant account |
| Checkout Widget | USDC / crypto payment option at Shopify checkout, customer-facing |
| Auto-Convert | Customer pays in any token; merchant receives USDC |
| Order Sync | Payment confirmed → Shopify order marked paid via Shopify Admin API |
| Refunds | Merchant initiates from AbabilPay dashboard; USDC returned to customer wallet |
WooCommerce Plugin
WordPress plugin (.zip) installable from the WooCommerce plugins panel. Identical features to the Shopify plugin, powered by the PHP SDK and WooCommerce webhook integration.
API & SDKs
| SDK / API | Details |
|---|---|
| REST API |
API key auth; rate-limited; documented at
docs.ababilpay.io
|
| JavaScript SDK | npm package; Node.js + browser; full TypeScript types |
| Python SDK | PyPI package; async with httpx; ideal for backend integrations |
| PHP SDK | Composer package; Laravel + vanilla PHP support |
| Webhooks |
HMAC-signed POST events:
payment.completed,
invoice.paid,
refund.issued
|
| Sandbox | Full sandbox powered by Circle testnet + Supabase test project |
Payroll & Bulk Payment Module
For businesses paying remote teams, DAO contributors, contractors, or affiliates. Employer uploads a CSV or builds a recipient list in the dashboard. One click executes all transfers atomically via Circle's batch transfer API.
| Feature | Description |
|---|---|
| CSV Upload | Columns: recipient wallet/email, amount USDC, note. Bulk resolve emails → wallets via Supabase lookup. |
| One-Click Execute |
All transfers sent via Circle batch API; each logged
individually in
payroll_items
|
| Multi-sig Approval | Enterprise: batch requires 2-of-3 approvals before execution |
| Status Dashboard | Per-recipient status: Pending / Sent / Failed — with retry on failed |
| Tax Export | Generate CSV / PDF summary per batch for accounting; stored in Supabase Storage |
| Scheduled Payroll | Set recurring payroll (weekly/bi-weekly/monthly); auto-triggers via Supabase scheduled Edge Function |
| AI Anomaly Check AI | Agent flags unusual amounts or new recipient wallets before execution for merchant review |
AI Agent System
AbabilPay's AI Agent layer is a multi-agent system built on Claude
(Anthropic) with LangChain for orchestration. Agents operate
autonomously on Supabase data, trigger Circle API actions, and
communicate with users via email/push. Each agent has a defined
role, tool set, and memory stored in
agent_memory via pgvector
embeddings.
agent_logs table for full
auditability.
Agent Roster
- Receives all Supabase webhook events
- Routes tasks to the correct sub-agent
- Handles priority queuing and retries
-
Logs all decisions to
agent_logs
- Triggered on every non-USDC deposit event
- Fetches best quote from 1inch / 0x
- Enforces 0.5% slippage limit
- Executes swap and credits USDC to wallet
- Notifies user via push after conversion
- Monitors all invoices with status = Sent
- Sends email reminder 3 days before due date
- Sends final reminder 1 day before due date
- Marks invoice Overdue and notifies merchant
- Drafts personalized follow-up email via Claude
- Monitors all outgoing transactions in real-time
- Flags unusual amounts vs. user history (pgvector similarity)
- Detects new destination wallets on large transfers
- Temporarily holds suspicious transfers for user confirmation
- Scores each transaction 0–100 risk; logs to agent_logs
- Runs nightly analysis on merchant transaction data
- Generates weekly revenue summary email
- 30-day cash flow forecast using transaction history
- Detects top customers and revenue trends
- Suggests optimal invoice timing based on payment patterns
- Called on every bridge initiation request
- Fetches live gas prices across all supported chains
- Calculates total cost (gas + CCTP fee) per route
- Selects cheapest route meeting user's time requirement
- Falls back gracefully if Circle CCTP is congested
Agent Memory (pgvector)
Each agent stores context as vector embeddings in the
agent_memory table using
Supabase's pgvector extension. This enables semantic search over
past transactions, user behavior patterns, and merchant history —
giving agents long-term memory without expensive LLM context
windows.
INSERT INTO agent_memory (user_id, content, embedding)
VALUES (
'user-uuid',
'User typically sends $200–500 USDC to 3 recurring wallets on Fridays',
openai_embedding('user payment pattern...')
);
-- Fraud agent queries: find similar past patterns
SELECT content FROM agent_memory
WHERE user_id = 'user-uuid'
ORDER BY embedding <-> query_embedding
LIMIT 5;
Agent Event Flow
Supabase Database Schema
All application data lives in Supabase (PostgreSQL). Row Level Security (RLS) policies enforce that users only access their own data. Supabase Auth UID is the foreign key across all tables.
| Table | Key Columns | Purpose |
|---|---|---|
| users | id, email, google_id, kyc_status, role, created_at | All user accounts with Google OAuth link |
| wallets | id, user_id, circle_wallet_id, chain, balance_usdc, updated_at | One row per wallet per chain per user |
| transactions | id, wallet_id, type, amount_usdc, token_in, chain, status, tx_hash, created_at | Every payment, swap, bridge, deposit event |
| invoices | id, merchant_id, customer_email, amount_usdc, status, due_date, pdf_url | Invoice lifecycle from draft to paid |
| invoice_items | id, invoice_id, description, quantity, unit_price_usdc | Line items per invoice |
| splits | id, created_by, total_usdc, description, status, expires_at | Group bill split sessions |
| split_participants | id, split_id, user_id, amount_usdc, paid_at | Individual payment status per participant |
| merchants | id, user_id, store_name, shopify_domain, api_key_hash, webhook_secret | Merchant profile and plugin config |
| payroll_batches | id, merchant_id, total_usdc, recipient_count, status, executed_at | Bulk payment batch jobs |
| payroll_items | id, batch_id, recipient_wallet, amount_usdc, status, tx_hash | Individual payroll line items |
| agent_logs | id, agent_type, action, context_json, result_json, risk_score, created_at | Full audit trail of every AI agent action |
| agent_memory | id, user_id, content, embedding vector(1536), created_at | pgvector embeddings for AI long-term memory |
| webhooks | id, merchant_id, url, events[], secret, last_status, last_fired_at | Merchant webhook subscriptions |
| notifications | id, user_id, type, message, read, created_at | In-app and push notification log |
| address_book | id, user_id, label, wallet_address, chain, created_at | User's saved recipient wallets |
transactions,
invoices, splits, and
notifications tables all have Realtime enabled. The
frontend subscribes to user-scoped channels so balance and status
updates appear instantly without any polling.
API & Webhooks
Core API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST |
/v1/payments/intent
|
Create a payment intent; returns payment link URL |
| GET |
/v1/payments/:id
|
Get payment status and details |
| POST | /v1/invoices |
Create a new invoice with line items |
| POST |
/v1/invoices/:id/send
|
Send invoice to customer via email |
| POST | /v1/transfers |
Send USDC to wallet address or email |
| POST | /v1/bridge |
Initiate cross-chain USDC bridge via CCTP |
| POST |
/v1/payroll/batch
|
Submit a bulk payment batch (CSV or JSON) |
| GET |
/v1/wallet/balance
|
Get unified USDC balance across all chains |
| POST | /v1/refunds |
Issue a refund for a completed payment |
| GET |
/v1/transactions
|
List transactions with filters (chain, type, date) |
| POST | /v1/webhooks |
Register a webhook endpoint and subscribe to events |
Webhook Events
"event": "payment.completed",
"id": "evt_01HX...",
"created_at": "2026-05-10T14:32:00Z",
"data": {
"payment_id": "pay_01HX...",
"amount_usdc": 250.00,
"chain": "polygon",
"merchant_id": "mer_01HX...",
"token_in": "MATIC", // original token before auto-convert
"tx_hash": "0xabc..."
}
}
| Event | Triggered When |
|---|---|
payment.completed
|
Payment confirmed on-chain and USDC credited |
payment.failed
|
Payment attempt failed (slippage, gas, timeout) |
invoice.paid |
Invoice fully settled |
invoice.overdue
|
Invoice past due date with unpaid balance |
refund.issued |
Refund processed and USDC returned |
bridge.completed
|
CCTP bridge settled on destination chain |
payroll.batch_completed
|
All recipients in a payroll batch paid |
fraud.flagged |
AI Agent flagged a suspicious transaction |
Product Roadmap
Future Unique Features
| Feature | Description | Phase |
|---|---|---|
| USDC Yield | Idle USDC in wallet earns yield via Aave / Circle Yield integration | 4 |
| QR POS Payments | Physical store checkout via QR scan — customer pays, merchant receives USDC | 4 |
| AI Expense Categories | Agent auto-tags transactions (Food, Travel, SaaS, Payroll) for merchant accounting | 3 |
| Subscription Engine | Recurring billing with auto-charge for SaaS and subscription merchants | 3 |
| White-label SDK | Other fintech companies embed AbabilPay under their own brand | 3 |
| Carbon Offset Donations | Micro-donation per transaction to carbon offset programs (ESG angle) | 4 |
| Loyalty Points | Consumers earn points for paying with AbabilPay; redeemable for fee discounts | 4 |
| AI Price Recommendations | Agent suggests optimal invoice pricing based on market and customer data | 4 |