Built for the next generation of commerce, icpay is the easiest way to accept crypto payments.

Get started
icpay

$1,234.56

1.5 ETH

Completed

29/12/2024

$856.23

0.02 BTC

Completed

28/12/2024

$2,450.00

2,450 USDC

Completed

27/12/2024

$1,890.12

2.1 ETH

Completed

25/12/2024

$3,200.00

3,200 SOL

Completed

24/12/2024

$1,500.00

1,500 USDT

Completed

23/12/2024

Accept payments in Bitcoin, Ethereum, and more.

Agents can earn and spend

Build agents that can earn and spend crypto autonomously.

Learn about Agent →
icpay
icpay
Can of soda

Can of soda

Refreshing beverage

1 USDC$1.00
Price
1.00 USDC
Network
Base
Powered by icpay

Microtransactions made easy

Accept payments as low as $0.01 with instant settlement.

Create a payment →

Build anywhere

Integrate icpay into any project with our universal SDK. Works seamlessly with Next.js, Vue, Angular, and vanilla HTML.

View SDK docs →
icpay
# 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

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

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

Ben Manuel

FantasyDartsLeague

Try icpay now.