Crypto Wallet Integration
Slotty Labs supports deposits and withdrawals across 9 blockchain networks with native tokens and major stablecoins.
Supported Chains
| Chain | Family | Native Token | Decimals |
|---|---|---|---|
| Ethereum | EVM | ETH | 18 |
| BSC | EVM | BNB | 18 |
| Polygon | EVM | MATIC | 18 |
| Arbitrum | EVM | ETH | 18 |
| Base | EVM | ETH | 18 |
| Avalanche | EVM | AVAX | 18 |
| Solana | SVM | SOL | 9 |
| Bitcoin | UTXO | BTC | 8 |
| Tron | TVM | TRX | 6 |
Supported Tokens
| Token | Chain | Contract Address | Decimals |
|---|---|---|---|
| USDT | Ethereum | 0xdAC17F958D2ee523a2206206994597C13D831ec7 | 6 |
| USDC | Ethereum | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 | 6 |
| USDT | BSC | 0x55d398326f99059fF775485246999027B3197955 | 18 |
| USDC | BSC | 0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d | 18 |
| USDT | Polygon | 0xc2132D05D31c914a87C6611C10748AEb04B58e8F | 6 |
| USDC | Polygon | 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 | 6 |
| USDT | Arbitrum | 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9 | 6 |
| USDC | Arbitrum | 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 | 6 |
| USDT | Base | 0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2 | 6 |
| USDC | Base | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | 6 |
| USDT | Avalanche | 0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7 | 6 |
| USDC | Avalanche | 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E | 6 |
| USDT | Solana | Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB | 6 |
| USDC | Solana | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v | 6 |
| USDT | Tron | TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t | 6 |
| USDC | Tron | TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8 | 6 |
EVM Chain Configurations
| Chain | Chain ID | Block Time | Confirmations | EIP-1559 |
|---|---|---|---|---|
| Ethereum | 1 | ~12s | 12 | ✅ |
| BSC | 56 | ~3s | 15 | ❌ |
| Polygon | 137 | ~2s | 64 | ✅ |
| Arbitrum | 42161 | ~0.25s | 1 | ✅ |
| Base | 8453 | ~2s | 1 | ✅ |
| Avalanche | 43114 | ~2s | 1 | ✅ |
Bitcoin Configuration
| Setting | Value |
|---|---|
| Address Type | native_segwit (bc1q...) |
| Standard Confirmations | 3 |
| High-Value Confirmations | 6 (≥ 0.1 BTC) |
| RBF | Enabled |
| Fee Estimation | Next-block target |
Solana Configuration
| Setting | Value |
|---|---|
| Commitment | finalized |
| Priority Fee | Dynamic (based on recent slots) |
| ATA Creation | Auto-created for token deposits |
| Transaction Version | v0 (versioned transactions) |
Architecture Overview
The crypto wallet system consists of these components:
- Deposit Scanners — Monitor each chain for incoming transactions to player deposit addresses
- Withdrawal Pipeline — Queue-based withdrawal processing with pre-flight checks
- Sweep Engine — Periodically sweeps deposits from player addresses to hot wallet
- Cold Wallet Management — Automated hot-to-cold transfers based on threshold rules
- Nonce Management — Sequential nonce tracking for EVM chains to prevent stuck transactions
- Gas Estimation — Real-time gas price estimation with configurable multipliers
- Reconciliation — Hourly balance reconciliation between on-chain and database states
- HD Key Derivation — BIP-44 / BIP-84 compliant key derivation for address generation
- HSM Support — Hardware security module integration for signing high-value transactions
Deposit Flow
Player requests → Generate unique → Deposit scanner → Confirm after
deposit address deposit address detects incoming N blocks
(HD derived) transaction
→ Credit player → Fire webhook: → Sweep to
balance wallet.deposit_confirmed hot wallet- Generate Address — Each player gets a unique deposit address per chain, derived via HD key derivation
- Scan for Deposits — Chain-specific scanners poll for incoming transactions every block
- Confirm — Wait for required confirmations (chain-specific, see tables above)
- Credit Balance — Player balance is credited in the internal ledger
- Webhook —
wallet.deposit_confirmedevent is sent to your webhook endpoint - Sweep — Deposits are periodically swept from player addresses to the platform hot wallet
Withdrawal Flow
Player requests → Pre-flight → Queue → HSM sign → Broadcast
withdrawal checks transaction transaction to chain
→ Wait for → Fire webhook:
confirmations wallet.withdrawal_completed- Request — Player or operator initiates a withdrawal via API
- Pre-flight Checks — Verify sufficient balance, withdrawal limits, AML rules, cooling periods
- Queue — Transaction is queued for processing (batched for gas efficiency on EVM chains)
- HSM Sign — Transaction is signed using the HSM (or KMS in cloud environments)
- Broadcast — Signed transaction is broadcast to the blockchain network
- Confirm — Wait for required confirmations
- Webhook —
wallet.withdrawal_completed(orwallet.withdrawal_failed) event is sent
WARNING
Withdrawal addresses must be whitelisted by the player before use. First-time withdrawals to a new address have a 24-hour cooling period by default.