Funds and vault
Your funds sit in a vault smart contract that you own. We can only pay your players out of it, within limits you set on-chain.
How money moves
- A player pays into their deposit address.
- Once final, the deposit is credited to your balance (
deposit.confirmed). - Deposits are swept into your vault, with our fee taken in the same transaction.
- Payouts are paid from your vault to the player's wallet.
Your vault
- You are the vault's owner. Our key is only an operator, and it can only call
payout. - You set a per-transaction and daily payout limit on the vault. Even if our systems were compromised, nothing above your limits could leave it.
- Each payout id is paid at most once, enforced by the contract.
- You can withdraw from the vault at any time, even while it is paused. Your balance updates automatically (
vault.withdrawal). - You can also top up the vault directly. The amount is credited without a fee (
vault.topup).
Keep enough funds in the vault for payouts. If it runs short, for example while deposits are still being swept, payouts wait in
queued and are sent as soon as funds arrive.Sweeping
Sweeping moves confirmed deposits from deposit addresses into your vault. It happens in the background and never delays crediting: a deposit is already in your balance at deposit.confirmed.
- We check every few seconds. Addresses that are due are swept together in one batch transaction.
- An address is due when its confirmed, unswept deposits reach the network's sweep threshold, or when its oldest one has waited the maximum delay. On networks with low fees the threshold is zero, so deposits are swept within seconds; where each sweep costs more (for example TRON energy), small deposits are collected first and swept together.
- The current rule for each asset, the amount still waiting and the latest expected sweep time are shown on the console's Vault page. Through the API,
pending_sweepgives the amount waiting per asset. - Each sweep sends
deposit.sweptfor the deposits it moved. It's informational: don't credit the player again.
Confirmation times
Deposits are credited once they can no longer be reversed:
| Network | Typical time to credit |
|---|---|
| TRON | About 1 minute |
| BSC, Polygon | Seconds |
| Ethereum | About 2.5 minutes for small deposits, about 13 minutes for large ones |
| Arbitrum, Base | Seconds for small deposits, 15–20 minutes for large ones |
On networks with slow finality, small deposits are credited early. The webhook then says finality: "fast"; larger ones wait for full finality ("finalized"). The threshold is agreed per account.
Fees
- The fee is the higher of the percentage fee and the network minimum fee (see fees by network). Use Quote to show the exact numbers.
- Deposits: you are credited
net = amount − fee. - Payouts: with
on_top(default) the player receives the full amount and your balance is chargedamount + fee. Withdeducted, the player receivesamount − fee. - Deposits below the minimum are not credited (
deposit.below_min). Contact us to resolve them.
Safety checks on our side
- Every deposit is verified independently before it is credited.
- Your balance is continuously reconciled with the blockchain. If it ever disagrees, payouts are paused and we contact you.
- Our signing keys are held in hardware and never leave it.