Free protocol · Non-custodial · Network gas only

A protocol, not a
middleman

ZettaPay is peer-to-peer infrastructure — non-custodial, open-source, and free. We don’t take a cut of your transactions because we never touch them. The on-chain transfer is the settlement; ZettaPay just listens to the network and confirms it for you. You pay only the network gas your wallet would already cost.

Free protocol
No subscription, no take rate
Non-custodial
P2P, payer→merchant direct
Listener confirms
Webhook the moment it lands
The whole price list

$0

Free protocol. Forever.

No subscription. No per-transaction take. No monthly minimums. No surprise card-network surcharges. You pay only the network gas your customer’s wallet would already pay — the same fee any standard on-chain transfer costs.

Typical gas (paid by payer, not you)
  • Solana (USDC) ~0.000005 SOL · confirms in <2s
  • Ethereum (Base / Polygon) L2 gas · finality in seconds
  • Bitcoin Network fee · ~10 min

Gas goes to validators / miners, never to ZettaPay.

Confirmation listener
Chain tracking, 24/7

We watch every relevant block and confirm payments to your pubkey so your backend doesn’t have to.

Stripe-grade webhooks
HMAC-signed, 3× retry

Idempotency keys, signed payloads with verified amount and tx hash — the API you already know.

x402 + MCP native
AI agents pay autonomously

A first-class MCP server and x402 header spec out of the box — ready for Claude, GPT, and friends.

Comparison

ZettaPay vs card rails

ZettaPay is not a card processor — it’s peer-to-peer settlement infrastructure with a confirmation listener attached. Different model, different properties.

Property
ZettaPay P2P · Non-custodial
Stripe Card rails
PayPal Wallet rails
Protocol take rate
$0 — free
2.9% + $0.30
3.49% + $0.49
Who pays the network fee
Payer’s wallet (gas)
Merchant absorbs
Merchant absorbs
Custody of funds
Non-custodial — payer→merchant direct
Held until payout
Held until payout
Confirmation time
<2s on Solana · ~10m on Bitcoin
2–7 days
1–3 days
Chargebacks & disputes
None — cryptographic finality
$15 per dispute, 120-day window
$20 per dispute, 180-day window
AI agent payments (x402)
Native — signed tx in HTTP header
Not supported
Not supported
MCP tool integration
First-class MCP server
Not in scope
Not in scope
Confirmation webhooks
Listener-driven, HMAC + 3× retry
Yes
Limited retry policy
Idempotency keys
Required on /pay and /merchants/register
Optional
Not standard
KYC for the merchant
None — just paste a pubkey
Required (SSN, EIN, bank)
Required (SSN, EIN, bank)
Currency
Bitcoin · ETH (Base/Polygon) · USDC Solana
135+ fiat currencies
25 fiat currencies
Wallet connect required
Never — merchant pastes pubkey
N/A — card data
N/A — account login
SDK & embed
@zettapay/sdk · widget · open spec
Stripe.js / Elements
JS Buttons / Smart Buttons
Where money lands
Your own wallet, on-chain — immediate
Your bank account, on a delay
PayPal balance, then bank

ZettaPay sits one layer up from the underlying chains, the way Stripe sits above ACH. We don’t replace card rails for cross-border fiat retail; we replace them for AI agents, SaaS, and crypto-native merchants who want non-custodial peer-to-peer settlement with a confirmation receipt.

Built to trust

No surprises in the small print

Always free
Zero protocol fee, forever

No tiers, no usage caps, no “after X transactions we start charging.” The protocol is infrastructure; infrastructure is free.

No lock-in
Open SDK, open spec

SDK and protocol spec are MIT-licensed. Your pubkey is yours; you can leave on any block and your funds never lived here.

Public status
Listener health is public

Live chain-listener metrics and confirmation latencies are exposed on the /status page.

FAQ

Quick answers

The three questions every merchant asks before integrating.

How do I get started?
Three steps, ~5 minutes:
  1. Hit Get your pubkey and paste your merchant address (Bitcoin, Ethereum, or Solana) — no wallet connect, no email, no card.
  2. Copy your API key and the <script> tag from the install page, or install @zettapay/sdk on your backend.
  3. Drop the embed onto your checkout. The listener confirms your first on-chain payment in seconds and fires a signed webhook to your endpoint.

Full walkthrough lives in /docs/quickstart and the embed install in /docs/embed.

Why is it free? What’s the catch?
There’s no catch — just a different model. ZettaPay never holds your funds, so we don’t have a custody float to monetize. We don’t sit in the payment path, so we don’t skim a percentage. The on-chain transaction is the settlement; our job is just listening to the network and giving you a confirmation receipt — same primitive as a Stripe webhook, but peer-to-peer and verifiable on-chain.

The protocol stays free because that’s the moat — open infrastructure that AI agents can rely on without asking for permission. Optional managed plans for high-volume merchants (priority listener lanes, SLA support) may come later, but the core protocol is and stays $0.

What about KYC & compliance?
ZettaPay is non-custodial. Funds move directly from payer to merchant on-chain — we never hold them, so we are not a money-services business in the regulatory sense. You can register a merchant with just a pubkey.

If your customers need to convert fiat to crypto, they can use any onramp you choose (independent of ZettaPay). Crypto-native customers paying directly from their wallet skip that entirely.

Mainnet support and the listener’s health metrics are tracked at /status and /launch.

Paste your pubkey.
We’ll watch the chain.

No credit card. No call with a sales rep. No protocol fee, ever. Paste your address, copy the embed, ship. The listener confirms your first on-chain payment in seconds.