Logo Lanfrica

ogeleka/ArcPay

Domain:

digital infrastructure

Record type:

software
Creator:
oge
Host:
USDC payment gateway built natively on Arc: sub-second settlement, non-custodial, African merchant-first # ArcPay **USDC payment gateway built natively on Arc.** Sub-second settlement. Non-custodial. Price in Dirham, Naira, Cedis, Shillings or Rand — settle in stable dollars. Two API calls to integrate. --- ## How it works ``` Merchant creates a payment → Customer pays USDC on-chain ↓ ↓ ArcPay smart contract Funds land in merchant wallet fires a signed webhook in r.json()); // 2. Redirect your customer window.location = payment_url; ``` The customer opens a hosted checkout, connects MetaMask, and pays. You receive a signed webhook when the transaction settles. --- ## Stack | Layer | Technology | |---|---| | Smart contract | Solidity — deployed on Arc testnet | | Backend API | Node.js / Express / SQLite | | Frontend | React / TypeScript / Viem / wagmi | | FX service | Node.js micro-service, live rates every 60 s | | Infra | PM2 + Nginx, VPS-ready | --- ## Project structure ``` arcpay/ ├── contracts/ # ArcPay.sol — atomic on-chain settlement (no escrow) ├── backend/ # REST API (merchants, payments, webhooks) │ └── src/ │ ├── routes/ # auth · merchants · payments │ ├── middleware/ # auth guard, rate limiter │ ├── fx.js # live FX rates (AED / NGN / GHS / KES / ZAR) │ ├── listener.js # on-chain event watcher │ └── webhook.js # signed webhook dispatcher ├── frontend/ # React dashboard + hosted checkout ├── footie/ # Reference merchant integration (demo store, priced in AED) ├── ngn/ # FX micro-service (separate process) ├── nginx/ # Nginx site config ├── scripts/ # deploy, setup, e2e └── test/ # Hardhat contract tests (27 passing) ``` --- ## Run locally **Prerequisites:** Node.js 18+, MetaMask, Arc testnet USDC ```bash # 1. Install root deps (Hardhat) npm install # 2. Run contract tests npx hardhat test # 3. Start the backend cd backend && npm install cp .env.exa …