Send and receive USDC/USDT crypto payments via PayMe smart wallets. Use when the user wants to check their crypto balance, send stablecoins to someone, view...
PayMe provides gasless USDC/USDT payments through ERC-4337 smart wallets on Base, Arbitrum, Polygon, BNB Chain, and Avalanche.
API Base URL: https://payme.feedom.tech
Copy this skill folder into your agent's skills directory:
~/.codex/skills/payme/~/.cursor/skills/payme/If the user does not have a PayMe account yet, they need to create one first:
/start to create a wallet/setpinAlternatively, sign up at payme.feedom.tech.
Connect the user's PayMe account to get an agent token:
curl -X POST https://payme.feedom.tech/api/agent/connect \
-H "Content-Type: application/json" \
-d '{"identifier": "USERNAME_OR_ADDRESS", "pin": "USER_PIN"}'
Alternatively, restore by master private key: {"masterPrivateKey": "0x..."}.
The response contains an agentToken. Store it and use it as Authorization: Bearer <agentToken> on all subsequent requests. Tokens last 90 days.
All endpoints use base URL https://payme.feedom.tech and require Authorization: Bearer <agentToken>.
GET /api/agent/balances
Returns total USDC/USDT across all chains plus per-chain breakdown.
Step 1 — Prepare:
POST /api/agent/send
{ "recipient": "username, email, or 0x address", "amount": "10", "token": "USDC" }
Returns a confirmationId and a preview with fee breakdown. Always show the preview to the user before confirming.
Step 2 — Confirm:
POST /api/agent/confirm
{ "confirmationId": "uuid-from-step-1" }
Returns txHash on success. Confirmations expire after 5 minutes.
GET /api/agent/history?limit=20
GET /api/agent/contacts
POST /api/agent/contacts { "name": "Alice", "address": "0x..." }
DELETE /api/agent/contacts/:name
GET /api/agent/wallet
Returns kernel address, supported chains, and supported tokens.
POST /api/agent/revoke
Revokes the current agent token immediately.
Convert USDC/USDT to Nigerian naira. Your crypto goes into escrow, a vendor sends naira to your bank, you confirm receipt, escrow releases to vendor.
POST /api/agent/p2p/bank-accounts
{ "bankName": "GTBank", "accountNumber": "0123456789", "accountName": "John Doe" }
List saved accounts: GET /api/agent/p2p/bank-accounts
GET /api/agent/p2p/rates?token=USDC¤cy=NGN
Returns vendor rates sorted by best rate. Each entry includes vendorId, vendorName, rate (NGN per USD), avgRating, and order limits.
Before calling this endpoint, always compute and show the user a preview: amount x rate = naira they'll receive. Get explicit approval.
POST /api/agent/p2p/sell
{ "token": "USDC", "amount": 50, "bankAccountId": 1 }
Optionally pass vendorId to pick a specific vendor; otherwise the best available vendor is auto-selected. This locks crypto in escrow immediately.
GET /api/agent/p2p/orders/:id
Poll this endpoint to check status. Key statuses:
escrow_locked — waiting for vendor to acceptaccepted — vendor accepted, will send naira soonfiat_sent — vendor says naira was sent, check your bankcompleted — you confirmed, escrow releaseddisputed — dispute opened, admin reviewingOnce the user confirms money arrived in their bank:
POST /api/agent/p2p/orders/:id/confirm
This releases escrow to the vendor. Irreversible.
If naira was not received or something is wrong:
POST /api/agent/p2p/orders/:id/dispute
{ "reason": "Vendor marked paid but naira not received after 1 hour" }
This cancels auto-release and triggers admin investigation.
POST /api/agent/p2p/orders/:id/rate
{ "rating": 5, "comment": "Fast payment" }
{"identifier": "...", "pin": "..."} for /api/agent/connect. Only use masterPrivateKey if the user explicitly provides it and understands the risk.PAYME_AGENT_TOKEN), a secrets manager, or an encrypted config file. Never store it in plain text in code, logs, or chat history./api/agent/connect when expired. Revoke tokens you no longer need via POST /api/agent/revoke.https://payme.feedom.tech only. Never send your agent token to any other domain./api/agent/confirm./api/agent/p2p/sell. Get explicit user approval./api/agent/p2p/orders/:id/confirm after the user verifies naira is in their bank.0x wallet address.For complete request/response schemas and error codes, see references/api-reference.md.
ZIP package — ready to use