Build Payment Apps
in Minutes, Not Weeks
ArcPay reduces 50+ lines of blockchain code to just 3 lines
WITHOUT ArcPay
50+
lines of code
⏱️ 2+ hours
→
WITH ArcPay
3
lines of code
⏱️ 2 minutes
See the Difference
Real code comparisons for common payment tasks
💳
Send Payment
15+ → 2 lines saved❌Without ArcPay
import { ethers } from 'ethers';
import { createPublicClient, http } from 'viem';
const provider = new ethers.JsonRpcProvider(RPC_URL);
const wallet = new ethers.Wallet(PRIVATE_KEY, provider);
const usdcContract = new ethers.Contract(
USDC_ADDRESS,
['function transfer(address to, uint256 amount)'],
wallet
);
const decimals = await usdcContract.decimals();
const amount = ethers.parseUnits('100', decimals);
const tx = await usdcContract.transfer(recipient, amount);
await tx.wait();
console.log('TX:', tx.hash);📝 15+ lines⏱️ 30 min
✅With ArcPay
const arc = await ArcPay.init({ network: 'arc-testnet' });
await arc.sendUSDC('0x...', '100');📝 2 lines⏱️ 30 sec
Try in Playground →🔒
Create Escrow
50+ → 1 lines saved❌Without ArcPay
// Deploy escrow contract
const EscrowFactory = await ethers.getContractFactory('Escrow');
const escrow = await EscrowFactory.deploy(
seller, amount, deadline, arbiter
);
await escrow.deployed();
// Handle deposits
await usdc.approve(escrow.address, amount);
await escrow.deposit();
// Set up event listeners
escrow.on('Released', () => { /* ... */ });
escrow.on('Refunded', () => { /* ... */ });
escrow.on('Disputed', () => { /* ... */ });
// Release/refund logic
// ... 30+ more lines📝 50+ lines⏱️ 2 hours
💸
Salary Streaming
100+ → 1 lines saved❌Without ArcPay
// Complex streaming contract deployment // Per-second calculation logic // Withdraw mechanism implementation // Balance tracking system // Cancel & refund logic // Event handling // ... 100+ lines of code
📝 100+ lines⏱️ 1 day
📇
Contact Payments
Hours → Seconds lines saved❌Without ArcPay
// Set up database for address book // Create CRUD operations // Implement address validation // Build search functionality // Handle name resolution // ... hours of development
📝 N/A⏱️ Hours
✅With ArcPay
await addContact('ahmed', '0x...');
await pay('ahmed', '50'); // Use names, not 0x!📝 2 lines⏱️ Seconds
Try in Playground →🎤
Voice Payments
200+ → 0 lines saved❌Without ArcPay
// Set up speech recognition // Implement intent parsing // Integrate NLP for commands // Build command routing // Handle confirmations // ... 200+ lines of code
📝 200+ lines⏱️ Days
Everything You Need
9 powerful modules, all with one-liner APIs
Quick Reference
All the one-liners you need
| Action | Code | Copy |
|---|---|---|
| Send payment | await pay('0x...', '100') | |
| Check balance | await balance() | |
| Create escrow | await escrow('0x...', '500', 7) | |
| Start stream | await stream('0x...', '1000', 30) | |
| Add contact | await addContact('ahmed', '0x...') | |
| Pay contact | await pay('ahmed', '50') | |
| Get due bills | await getDueBills() | |
| Pay all bills | await payAllDueBills() | |
| Voice command | "Send 50 to ahmed" |
Ready to Build?
Start building payment applications in minutes