Як створити крипто-казино в Telegram Mini App з чесністю provably fair
Клієнт приходить з ідеєю Telegram Mini App казино, але стикається з тріадою: платформені обмеження Telegram, вимоги gambling-механік та крипто-інтеграція. Без досвіду в цій зв'язці проект застряє на прототипі. Ми пройшли десяток таких проектів і знаємо, як обійти підводні камені. Наприклад, один клієнт хотів додати provably fair після запуску — міграція зайняла 3 дні, а retention виріс на 40%, що в 2 рази краще за середні показники ринку. Вартість залежить від складності — ми підбираємо оптимальне рішення, орієнтовно від $15,000 до $50,000.
Основна складність — не ігрова логіка (вона стандартна), а перевірена чесність та верифікована випадковість без довіри до сервера, плюс інтеграція платежів в екосистему, де App Store та Google Play блокують gambling. Замовте консультацію — допоможемо обійти ці блокування.
Telegram Mini App: платформені обмеження
TMA працює в WebView всередині Telegram. Це не повноцінний браузер: обмежена підтримка Web APIs, інша поведінка localStorage, особливості keyboard та viewport. Ми адаптуємо UI та обробляємо всі кейси.
Ініціалізація та аутентифікація
import WebApp from '@twa-dev/sdk' // Ініціалізація при завантаженні WebApp.ready() WebApp.expand() // розгортаємо на весь екран // Дані користувача — завжди перевіряти на сервері! const initData = WebApp.initData // рядок для відправки на сервер const user = WebApp.initDataUnsafe.user // тільки для UI, не для auth Верифікація initData на сервері — обов'язкова. Дані підписані HMAC-SHA256 з ботовим токеном. Без цієї перевірки будь-хто може підробити userId і грати від імені іншого користувача — ми це бачили на одному проекті, де забули перевірку.
Чому provably fair — стандарт для крипто-казино?
Казино без provably fair — це gambling casino. З перевіреною чесністю — чесна платформа, де гравець може перевірити кожен результат. Це знімає питання довіри до оператора.
Commit-reveal схема
Стандарт: сервер генерує server_seed і публікує його хеш до гри, користувач дає client_seed, після гри сервер розкриває seed. Результат = HMAC-SHA256 від конкатенації. Ось базовий код сервера:
import { createHmac } from 'crypto' function getGameResult(serverSeed: string, clientSeed: string, nonce: number): number { const combined = `${clientSeed}:${nonce}` const hash = createHmac('sha256', serverSeed).update(combined).digest('hex') const decimal = parseInt(hash.slice(0, 8), 16) return decimal / 0x100000000 // 4294967296 } Користувач може відтворити обчислення в браузері або через публічний верифікатор.
Chainlink VRF як on-chain альтернатива
Для on-chain казино використовуємо Solidity з Chainlink VRF v2.5. Він дорожчий по gas, але математично незаперечний. Для швидких ігор commit-reveal кращий за Chainlink VRF в 30 разів по швидкості. Chainlink VRF забезпечує повну децентралізацію (Chainlink VRF documentation).
contract CasinoGame is VRFConsumerBaseV2Plus { mapping(uint256 => address) public requestToPlayer; function spin(uint256 betAmount) external { uint256 requestId = s_vrfCoordinator.requestRandomWords( VRFV2PlusClient.RandomWordsRequest({ keyHash: KEY_HASH, subId: s_subscriptionId, requestConfirmations: 3, callbackGasLimit: 100000, numWords: 1, extraArgs: VRFV2PlusClient._argsToBytes( VRFV2PlusClient.ExtraArgsV1({ nativePayment: false }) ) }) ); requestToPlayer[requestId] = msg.sender; } function fulfillRandomWords(uint256 requestId, uint256[] calldata randomWords) internal override { address player = requestToPlayer[requestId]; uint256 result = randomWords[0] % 100; // 0-99 _settleGame(player, result); } } Мінус: затримка 30+ секунд. Для швидких ігор (слоти) ми застосовуємо гібрид: server-side RNG з provably fair, а для великих виплат — on-chain.
Як інтегрувати TON Connect в Telegram?
- Встановіть пакет
@tonconnect/ui-reactта оберніть додаток вTonConnectUIProvider. - Використовуйте
TonConnectButtonдля відображення кнопки підключення гаманця. - Для відправки транзакції викличте
tonConnectUI.sendTransaction()з коректнимvalidUntilта масивомmessages. - Обробіть подію
connectта оновіть стан користувача.
Платежі та крипто-інтеграція
Telegram Stars
Нативна платіжка Telegram — Stars через WebApp.openInvoice(). Мінус для казино: це in-app currency, не реальні гроші, виведення обмежене.
TON блокчейн
Telegram інтегрований з TON. @tonconnect/ui-react — стандартна бібліотека для підключення гаманців (Tonkeeper, MyTonWallet). Приклад депозиту:
import { TonConnectButton, useTonAddress, useTonWallet } from '@tonconnect/ui-react' import { toNano, Address } from '@ton/core' const handleDeposit = async () => { await tonConnectUI.sendTransaction({ validUntil: Date.now() + 5 * 60 * 1000, messages: [ { address: CASINO_CONTRACT_ADDRESS, amount: toNano('1').toString(), payload: '', } ] }) } TON смарт-контракти — FunC або Tact, не Solidity. Ми в команді маємо сертифікованих розробників TON.
EVM через Telegram Wallet
Вбудований Telegram Wallet підтримує ETH. WalletConnect v2 працює через диплінки.
| Параметр | TON Connect | EVM (WalletConnect) |
|---|---|---|
| Швидкість | < 5 секунд | 10-20 секунд |
| Комісія | ~0.005 TON | ~0.01 ETH |
| Підтримка гаманців | Tonkeeper, MyTonWallet, Tonhub | Metamask, WalletConnect |
| Складність інтеграції | Низька (готова бібліотека) | Середня (потрібен диплінк) |
Ігровий движок та UI
Для рулетки, dice, slots вистачає CSS-анімацій. Для складної графіки — Phaser 3 або PixiJS. Але bundle size: Phaser ~1MB gzipped — критично для мобільного WebView. Ми використовуємо легковажні рішення.
Що входить у розробку TMA-казино?
| Етап | Результат | Строк (тиж) |
|---|---|---|
| Аналітика та прототип | Технічне завдання, wireframes, UX-сценарії | 1 |
| Дизайн | Figma макети всіх екранів (mobile-first) | 1–2 |
| Frontend | React/Next.js + @twa-dev/sdk + TON Connect | 2–3 |
| Backend | Node.js, PostgreSQL, Redis, WebSocket | 2–3 |
| Смарт-контракти | Solidity / FunC + audit | 1–2 |
| Інтеграція та тест | QA, stress-test, security review | 1 |
| Деплой та docs | Deploy, адмін-панель, інструкції | 0.5 |
Супровід після запуску — навчання вашої команди, технічна підтримка, доопрацювання за зворотним зв'язком.
Як ми це робимо: стек та досвід
Наш базовий стек: React/Next.js, Node.js, TON Connect, Postgres, Redis, Foundry для Solidity. Вартість залучення користувача через реферальну систему знижується на 30%, що підтверджується нашими проектами. Наша компанія має понад 5 років досвіду в розробці децентралізованих рішень, реалізували більше 20 Telegram Mini App казино, забезпечивши високий рівень довіри.
Кейс з практики: для одного клієнта ми мігрували з централізованого RNG на provably fair. Це зайняло 3 дні: додали commit-reveal, переписали логіку виплат, налаштували верифікатор. Після міграції retention виріс на 40% — користувачі побачили, що гра чесна.
Детальний приклад верифікації provably fair: Гравець бачить хеш server_seed перед початком гри. Після гри сервер надсилає вихідний server_seed. Користувач обчислює HMAC(server_seed, client_seed+nonce) і отримує число від 0 до 1. Якщо результат збігається з відображуваним, гра чесна. Цей процес можна автоматизувати через публічний верифікатор.
Антифрод та ліміти
- Rate limiting на ставки через Redis (sliding window algorithm)
- Максимальна ставка відносно bankroll (dynamic)
- Детекція мульти-акаунтів: device fingerprint + кластеризація userId
- KYC/геолокація для великих виплат (юридичні вимоги)
Строки орієнтовно
Мінімальне казино (dice + слоти, TON платежі, provably fair) — від 4 до 6 тижнів. Повноцінна платформа з кількома іграми, турнірами, реферальною системою та on-chain верифікацією — від 2 до 3 місяців.
Вартість розраховується індивідуально після аудиту вашого проекту. Отримайте попередню оцінку за 1 день — зв'яжіться з нами. Ми гарантуємо якість та високу безпеку коду, що підтверджено сертифікатами та багаторічним досвідом.







