Skip to content

Crypto Wallet Integration

Slotty Labs supports deposits and withdrawals across 9 blockchain networks with native tokens and major stablecoins.

Supported Chains

ChainFamilyNative TokenDecimals
EthereumEVMETH18
BSCEVMBNB18
PolygonEVMMATIC18
ArbitrumEVMETH18
BaseEVMETH18
AvalancheEVMAVAX18
SolanaSVMSOL9
BitcoinUTXOBTC8
TronTVMTRX6

Supported Tokens

TokenChainContract AddressDecimals
USDTEthereum0xdAC17F958D2ee523a2206206994597C13D831ec76
USDCEthereum0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB486
USDTBSC0x55d398326f99059fF775485246999027B319795518
USDCBSC0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d18
USDTPolygon0xc2132D05D31c914a87C6611C10748AEb04B58e8F6
USDCPolygon0x3c499c542cEF5E3811e1192ce70d8cC03d5c33596
USDTArbitrum0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb96
USDCArbitrum0xaf88d065e77c8cC2239327C5EDb3A432268e58316
USDTBase0xfde4C96c8593536E31F229EA8f37b2ADa2699bb26
USDCBase0x833589fCD6eDb6E08f4c7C32D4f71b54bdA029136
USDTAvalanche0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c76
USDCAvalanche0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E6
USDTSolanaEs9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB6
USDCSolanaEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v6
USDTTronTR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t6
USDCTronTEkxiTehnzSmSe2XqrBj4w32RUN966rdz86

EVM Chain Configurations

ChainChain IDBlock TimeConfirmationsEIP-1559
Ethereum1~12s12
BSC56~3s15
Polygon137~2s64
Arbitrum42161~0.25s1
Base8453~2s1
Avalanche43114~2s1

Bitcoin Configuration

SettingValue
Address Typenative_segwit (bc1q...)
Standard Confirmations3
High-Value Confirmations6 (≥ 0.1 BTC)
RBFEnabled
Fee EstimationNext-block target

Solana Configuration

SettingValue
Commitmentfinalized
Priority FeeDynamic (based on recent slots)
ATA CreationAuto-created for token deposits
Transaction Versionv0 (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
  • KMS/HSM Adapters — GCP KMS and AWS KMS signing adapters are built in; the default deployment uses the encrypted software key store (HSM_PROVIDER=software). Cloud KMS activates via configuration.

Deposit Flow

Player requests   →  Generate unique    →  Deposit scanner   →  Confirm after
deposit address      deposit address       detects incoming      N blocks
                     (HD derived)          transaction

     →  Credit player    →  Sweep to
        balance              hot wallet
  1. Generate Address — Each player gets a unique deposit address per chain, derived via HD key derivation
  2. Scan for Deposits — Chain-specific scanners poll for incoming transactions every block
  3. Confirm — Wait for required confirmations (chain-specific, see tables above)
  4. Credit Balance — Player balance is credited in the internal ledger
  5. Sweep — Deposits are periodically swept from player addresses to the platform hot wallet

Wallet webhooks

Wallet lifecycle webhooks (wallet.deposit_confirmed, wallet.withdrawal_completed) are on the roadmap — the deliverable webhook catalog currently covers round.completed, round.cancelled, and round.jackpot_won (see Webhooks). Deposit and withdrawal state is available today via the wallet API and the operator dashboard.

Withdrawal Flow

Player requests  →  Pre-flight    →  Queue        →  Key-store   →  Broadcast
withdrawal          checks           transaction      sign           to chain

     →  Wait for
        confirmations
  1. Request — Player or operator initiates a withdrawal via API
  2. Pre-flight Checks — Verify sufficient balance, withdrawal limits, AML rules, cooling periods
  3. Queue — Transaction is queued for processing (batched for gas efficiency on EVM chains)
  4. Sign — Transaction is signed by the configured key provider (encrypted software key store by default; GCP/AWS KMS via HSM_PROVIDER)
  5. Broadcast — Signed transaction is broadcast to the blockchain network
  6. Confirm — Wait for required confirmations
  7. Status — withdrawal status is queryable via the wallet API and shown in the operator dashboard (wallet webhooks are on the roadmap)

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.