pnpm add @ic-pay/icpay-widget @ic-pay/icpay-sdkJohn Doe
john@example.com
| Amount | Status | Date | Actions |
|---|---|---|---|
$1,234.56 1.5 ETH | Completed | Dec 29, 2024 | |
$856.23 0.02 BTC | Completed | Dec 28, 2024 | |
$2,450.00 2,450 USDC | Completed | Dec 27, 2024 | |
$1,890.12 2.1 ETH | Completed | Dec 25, 2024 | |
$3,200.00 3,200 SOL | Completed | Dec 24, 2024 | |
$1,500.00 1,500 USDT | Completed | Dec 23, 2024 |
$1,234.56
1.5 ETH
29/12/2024
$856.23
0.02 BTC
28/12/2024
$2,450.00
2,450 USDC
27/12/2024
$1,890.12
2.1 ETH
25/12/2024
$3,200.00
3,200 SOL
24/12/2024
$1,500.00
1,500 USDT
23/12/2024
Connect wallet
Awaiting wallet connection
Awaiting confirmation
Awaiting wallet signature
Transferring funds
Awaiting transfer to merchant
Verifying payment
Please wait while we verify
Build agents that can earn and spend crypto autonomously.
Learn about Agent →Refreshing beverage
Accept payments as low as $0.01 with instant settlement.
Create a payment →Integrate icpay into any project with our universal SDK. Works seamlessly with Next.js, Vue, Angular, and vanilla HTML.
View SDK docs →# Install
npm install @ic-pay/icpay-widget
# Usage (app/checkout/page.tsx)
'use client'
import { useEffect, useRef } from 'react'
import '@ic-pay/icpay-widget'
export default function Checkout(){
const elRef = useRef<any>(null)
useEffect(() => {
const el = elRef.current as any
if (!el) return
el.config = {
"publishableKey": "pk_test_key1",
"apiUrl": "https://api.betterstripe.com",
"relayMode": false,
"amountUsd": 12,
"buttonLabel": "Pay ${amount} with crypto",
"metadata": {
"context": "pay-button"
},
"plugNPlay": {
"enabled": true,
"adapters": {
"walletconnect": {
"enabled": true,
"config": {
"projectId": "39ece95f2d812230831471a551ddaf3d",
"umdUrls": [
"/wc/index.umd.js"
]
}
},
"coinbase": {
"enabled": true
}
}
}
}
const onSuccess = (e: any) => console.log('success', e.detail)
const onError = (e: any) => console.error('error', e.detail)
el.addEventListener('icpay-pay', onSuccess)
el.addEventListener('icpay-error', onError)
return () => {
el.removeEventListener('icpay-pay', onSuccess)
el.removeEventListener('icpay-error', onError)
}
}, [])
return <icpay-pay-button ref={elRef}></icpay-pay-button>
}We integrated icpay in under an hour. Settlement in under 2 seconds, fees at 0.5% — it's not even close to what we were paying before. Finally, crypto payments that just work.
Marcus Chen
CTO, NovaPay Labs
Our AI agents needed a payment rail that could keep up. icpay was the only solution fast enough. Game-changer for agentic commerce.
Priya Sharma
Founder, AutoNode AI
We've used ICPay from small pilots to scale — consistently solid. Setup is easy, docs are clear, and it's built by people who actually understand payments. We've worked with Stripe on similar use cases. ICPay is more flexible, more transparent, and easier to work with. Highly recommend, even if you aren't already into crypto.
Ben Manuel
FantasyDartsLeague
2026 © icpay, Inc.