Payments Engine

Documentation

Everything needed to run this engine and integrate an application against it. Start with the quickstart if you want a payout on your own machine in ten minutes; start with authentication if you are implementing the signing scheme in a language without an SDK.

The shape of it

The engine is one process (plus a worker) in front of one Postgres database. Your application talks to it over a signed HTTP API and receives signed webhooks back. It holds keys, watches chains and moves money; it does not hold your account balances, your pricing or your product logic, and it never asks about them.

YOUR SIDE — no keys, no chain code Customer pays in / takes out Your app balances, limits SDK signs each call THE ENGINE — you run this Operator API HMAC signature, replay guard, idempotency Deposit detection credit exactly once Payouts one broadcast, ever Key custody the only signer Treasury hot / cold float OUTSIDE Chains EVM networks Postgres every guarantee lives here signed instruction signed webhook back to your app Everything above the line runs on infrastructure you control The chain is the only thing that is not yours
What it is not. Not a custodian — it runs on your infrastructure. Not a wallet — a customer never authenticates to it. Not a ledger for your business — it is authoritative for what happened on-chain, and your application stays authoritative for what a customer is owed.

Where to start

If you are…Start hereThen
Integrating an existing applicationQuickstartDeposits, Payouts, Webhooks
Implementing the protocol by handAuthenticationErrors, API reference
Deploying and operating itSelf-hostingTreasury, Reconciliation
Evaluating whether to trust itHow it worksMoney, Idempotency

All guides