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
  • 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
  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. Webhookwallet.deposit_confirmed event is sent to your webhook endpoint
  6. 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
  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. HSM Sign — Transaction is signed using the HSM (or KMS in cloud environments)
  5. Broadcast — Signed transaction is broadcast to the blockchain network
  6. Confirm — Wait for required confirmations
  7. Webhookwallet.withdrawal_completed (or wallet.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.