Live on SplitChain · ZKZ

Accept ZKZ payments.
Keep every key.

ZuPayments is a Stripe-style gateway for Zucoins (ZKZ) on SplitChain. Merchants self-host a treasury node that holds the keys and moves the money — the hosted platform never touches either. Full self-custody, by construction.

POST /v1/sessions
{
  "amount": "100.00",
  "currency": "ZKZ",
  "order_id": "ord_8f2c"
}
→ 201 { checkout_url, transfer_code }
Zero key custody on the platform — enforced in code, proven by test.
One-click Railway deploy of your own treasury node.
Hosted, Stripe-style merchant dashboard for reporting & control.
Byte-exact settlement events — fulfil orders the instant ZKZ clears.
Architecture

Two trust domains. One product.

A hard split between what we run and what you run — so custody can never leak across the boundary.

🔐

Your treasury node

A one-click Railway template you deploy. Holds every private key, runs the payment engine, wallet pool, sweep engine, vault, backups, and a TOTP-gated admin UI. You control it end to end.

Generates & holds all keys
Signs and moves every ZKZ
“Create Treasury Node” Railway launcher
📊

The hosted platform

Zero key custody. Onboarding, a Stripe-style dashboard, node registration, a zero-knowledge credential vault, template updates, and a vanity redirect — nothing that can move a coin.

Read-only reporting key only
Never receives an action key
Browser→node directly for money actions
Payment Flow

From click to settlement

01
Create a session

Your storefront calls the Session API on your node. It reserves a sub-wallet from the pool and returns a checkout URL + transfer code.

02
Customer pays

The customer pastes the code into their Zucoins wallet and sends the exact ZKZ amount — peer-to-peer, on SplitChain.

03
Node verifies & co-signs

Your node verifies the payment against gateway state, co-signs the two-step transfer, and settles it — fail-closed on any ambiguity.

04
Sweep & report

Funds sweep to your treasury; a byte-exact signed event pushes to your dashboard so you can fulfil the order immediately.

Features

Everything a payment engine needs.
None of the custody risk.

Self-custodial by design

Every private key is generated and held inside your treasury node. The hosted platform sees only a read-only reporting key — never the action key that signs or moves ZKZ.

One-in-flight-per-wallet

The wallet pool serialises payments so exactly one transaction is ever in flight per wallet — no double-spends, no chain-link races, consistent settlement.

Auto-sweep & consolidate

Funds sweep to your treasury via dual-signed, self-settling transfers, serialised per treasury for a consistent chain-link state.

TOTP-gated money actions

Outbound transfers, per-treasury consolidation, backups and admin all sit behind a fresh time-based one-time code entered at your own node — a captured key alone moves nothing.

Byte-exact settlement events

Signed reporting events fire the moment a session settles, byte-compatible with the frozen contract — fulfil orders the instant ZKZ clears.

Portable backups

Export any treasury or sub-wallet in a format byte-compatible with the official Zucoins app — restore anywhere, no lock-in.

Security

Non-negotiable, by design.

A short list of golden rules the whole system is built to guarantee — not policies, invariants.

The platform never touches private keys

Enforced in code and proven by an end-to-end test that the action key appears in zero platform requests.

One in-flight transaction per wallet

The pool serialises payments so a wallet is never double-spent.

Byte-exact signing

Signed payloads are never reformatted — byte-for-byte, or discard.

Never blind-retry a submit

A failed money submit fails closed with a clear terminal error — never a silent retry.

Production-only, treated with production care

No sandbox exists; every ZKZ transaction is real and handled as such.

0
Keys the platform holds
1-click
Railway node deploy
ZKZ
SplitChain-native
100%
Self-custody
Pricing

The node is free. Forever.

Self-host at no cost. Add the hosted platform when you want Stripe-style dashboards and multi-node management.

Self-hosted node

Free / forever
One-click Railway deploy
Full payment engine + admin UI
Unlimited transactions
You hold every key
Deploy on Railway
FAQ

Questions, answered plainly

Can ZuPayments touch my funds?

No, and structurally can't. Every key is generated and stored inside the treasury node you deploy. The hosted platform only ever receives a read-only reporting public key — it never receives the full-access action key required to sign or move anything (Golden Rule: the platform never touches private keys).

Is there a sandbox / testnet?

No. The SplitChain gateway is production-only. Every payment touches real fractional ZKZ, serialised through a single runner with jitter backoff — the same care live traffic gets. There is no separate test chain to lull you into false confidence.

What exactly is a “treasury node”?

A one-click Railway template you deploy to your own infrastructure. It bundles the Session API, hosted checkout page/widget, payment engine, wallet pool, sweep engine, credential vault, backups, and a TOTP-gated admin UI — all under your control.

How do I move money out?

From the hosted dashboard or your node's admin UI: outbound transfers and treasury consolidation, each gated by a fresh node-side TOTP. Money actions go browser→your-node directly — the platform is never on that connection.

Ship self-custodial checkout today.

Deploy a node in one click, or spin up the hosted dashboard in minutes.