Четыре метода. Это вся интеграция.
Вы выставляете кошелёк. Мы к нему обращаемся. Ничего об игроках не покидает вашу сторону границы.
Контракт кошелька
Эти методы реализуете вы. Мы аутентифицируемся общим ключом и идемпотентно повторяем запросы при сетевых сбоях.
/wallet/balanceВернуть текущий баланс по ID игрока и валюте.
/wallet/debitСписать сумму ставки. Идемпотентно по transaction_id.
/wallet/creditНачислить выигрыш по рассчитанному раунду. Идемпотентно по transaction_id.
/wallet/rollbackОтменить списание, по которому не было расчёта — после таймаута или отменённого раунда.
Раунд целиком
Это весь обмен по одной ставке. ID игрока — любая непрозрачная строка на ваш выбор; кроме неё мы не храним ничего.
1. player opens the game
GET https://mines.example.com/?token=<your session token>
2. we ask your wallet for the balance
POST /wallet/balance
{ "player_id": "8f2c…a91d", "currency": "usd" }
→ { "balance": "249.00" }
3. player bets 1.00
POST /wallet/debit
{ "player_id": "8f2c…a91d", "currency": "usd", "amount": "1.00",
"game": "mines", "round_id": "r_8814", "transaction_id": "tx_5f21" }
→ { "balance": "248.00" }
4. round settles at 3.6x
POST /wallet/credit
{ "player_id": "8f2c…a91d", "currency": "usd", "amount": "3.60",
"game": "mines", "round_id": "r_8814", "transaction_id": "tx_5f22" }
→ { "balance": "251.60" }
5. proof is published with the result
{ "round_id": "r_8814", "server_seed_hash": "9c1f…", "server_seed": "b7a0…",
"client_seed": "player-chosen", "nonce": 41 }
Как выглядит запуск
По операторам, которых мы подключали последними.
В тот же день
Доступы в песочницу, весь каталог, игровые деньги
2–5 дней
Типичная реализация кошелька одним бэкенд-разработчиком
1 день
Прохождение нашего набора приёмочных тестов
Меньше недели
Первая реальная ставка в проде
Честность, которую проверяет сам игрок
Каждый раунд до ставки фиксирует хеш серверного сида. После расчёта мы раскрываем сид, и игрок — или регулятор, или вы — может пересчитать результат независимо. Варианта, где итог зависит от доверия к нам, просто не существует.