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.
A hard split between what we run and what you run — so custody can never leak across the boundary.
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.
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.
Your storefront calls the Session API on your node. It reserves a sub-wallet from the pool and returns a checkout URL + transfer code.
The customer pastes the code into their Zucoins wallet and sends the exact ZKZ amount — peer-to-peer, on SplitChain.
Your node verifies the payment against gateway state, co-signs the two-step transfer, and settles it — fail-closed on any ambiguity.
Funds sweep to your treasury; a byte-exact signed event pushes to your dashboard so you can fulfil the order immediately.
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.
The wallet pool serialises payments so exactly one transaction is ever in flight per wallet — no double-spends, no chain-link races, consistent settlement.
Funds sweep to your treasury via dual-signed, self-settling transfers, serialised per treasury for a consistent chain-link state.
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.
Signed reporting events fire the moment a session settles, byte-compatible with the frozen contract — fulfil orders the instant ZKZ clears.
Export any treasury or sub-wallet in a format byte-compatible with the official Zucoins app — restore anywhere, no lock-in.
A short list of golden rules the whole system is built to guarantee — not policies, invariants.
Enforced in code and proven by an end-to-end test that the action key appears in zero platform requests.
The pool serialises payments so a wallet is never double-spent.
Signed payloads are never reformatted — byte-for-byte, or discard.
A failed money submit fails closed with a clear terminal error — never a silent retry.
No sandbox exists; every ZKZ transaction is real and handled as such.
Self-host at no cost. Add the hosted platform when you want Stripe-style dashboards and multi-node management.
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).
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.
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.
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.
Deploy a node in one click, or spin up the hosted dashboard in minutes.