Your systems describe an operation once. CryptoRail carries it through approvals, signing, gas, nonces, retries and finality, and tells your systems what happened. Every statement below without a badge is tested on every change.
A blockchain network drops, delays and reorders transactions. CryptoRail keeps every operation until the network has made it final, replaces what gets stuck, follows reorganisations, and never turns a retry into a second payment.
flowchart TD
I[Operation received] --> P{Policy and approvals}
P --> S[Signed by your signer]
S --> B[Sent to the network]
B --> M[Included in a block]
M --> C[Confirmed, final]
B -->|not picked up| R[Replaced, higher fee] --> M
M -->|block reorganised| BCryptoRail never holds your keys. It prepares exactly what must be signed, waits for the approvals your policy requires, has it signed where your keys live, and checks the signature before anything leaves.
flowchart TD
X[CryptoRail prepares the exact bytes] --> Q{Approval quorum met?}
Q -->|not yet| W[Waits for the approvers]
W --> Q
Q -->|yes| K[Your HSM, cloud KMS or signer]
K --> V[Signature checked against the address]
V --> N[Network]When your end customers have their own accounts, holding gas is the step that loses them. CryptoRail pays it for them, within the budgets you set, using the open standards wallets already speak.
flowchart TD
U[End customer's own account] --> O[Operation, gas not held]
O --> Y{Your sponsorship policy and budget}
Y -->|approved| G[Paymaster signs the sponsorship]
G --> E[EntryPoint executes, your deposit pays the gas]
E --> T[Cost attributed to account and policy]What happens on chain only matters once your ledger, ERP or customer systems know it. CryptoRail watches your contracts and your own operations and delivers each event, decoded and signed, until your systems have it.
flowchart TD
C[Contract events and your own operations] --> D[Decoded, deep enough to trust]
D --> O[(Outbox, same database write)]
O --> W[Signed webhook]
W --> B[Your back office]
W -.->|retries exhausted| L[Dead letter, redeliverable]Built for the team that keeps it running: it reports its own health, explains every failure, scales by adding workers, survives a node going away and plugs into the monitoring you already have.
flowchart TD
A[API] --> DB[(PostgreSQL)]
W1[Worker] --> DB
W2[Worker] --> DB
IX[Indexer] --> DB
W1 --> E1[Node endpoint 1]
W1 -.->|failover| E2[Node endpoint 2]The same product in three shapes, so that a pilot, a self-hosted deployment and a service run for you behave the same. Compare the deployment options.
A pilot environment stood up in minutes with nothing installed on your side.