Plug & play install · under 5 minutes
From zero to first confirmed payment
Pick your stack, paste your payout addresses, copy three files. No account required. Your keys stay on your server — we just watch the chain and ping your webhook.
1
Stack
2
Chains
3
Code
4
Verify
Where will you integrate?
We’ll generate code that’s drop-in for your stack. You can change this later.
Which chains will you accept?
Paste the payout address for each chain. These stay in your .env — we never see your keys.
How this works.
Customers send to your address from any wallet they own. We watch the chain, verify the on-chain transfer, and POST a signed webhook to your server.
ZettaPay never holds funds. Read the wallet-less spec →
Copy these 3 files
Drop them into your repo. Pubkeys are already filled in. Every line has a comment so you can read it before you trust it.
// We never custody. Funds flow directly to YOUR address.
1 · Install the SDK
2 · Drop these files in your repo
Verify the install
Five checks. None require an account. None send your keys anywhere.
CLI · coming soon
# single command runs all 5 checks against your local server npx @zettapay/cli verifyBeta · PR pending
Manual checklist · works today
1
SDK installed
Run
npm ls @zettapay/sdk (or your package manager equivalent) and confirm a version appears.2
Env vars are set
In your dev shell:
echo $ZETTAPAY_WEBHOOK_SECRET should print a hex string. If empty, restart your dev server after editing .env.3
Pubkeys reach the chain listener
Curl our public listener:
curl https://zettapay.vercel.app/api/status
Status should return ok with the chains you selected listed under enabled.4
Webhook endpoint reachable
From your dev shell run the sample POST shown in the generated handler comments. Your handler should log a 200 OK.
5
Signature verification works
Tamper one byte of the body and re-POST — your handler should reject with 401. That’s Ed25519 doing its job. Your webhook secret never leaves your server.
★
You’re live.
Send a test payment to your address from any wallet. The next confirmed transfer will POST to your webhook within seconds. Open the live status page to watch listener uptime.
ZettaPay is 100% open-source.
Every endpoint, every signature, every line of code is on GitHub. We never custody — payments flow directly between your customer’s wallet and your address.