Створення крипто-гри в Telegram: Dice та Crash з Provably Fair

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1305 послуг
Створення крипто-гри в Telegram: Dice та Crash з Provably Fair
Середній
~3-5 днів
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1360
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1251
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    957
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1189
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    646
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    929

Створення крипто-гри в Telegram: Dice та Crash з Provably Fair

Зазначимо: коли замовник вирішує запустити Dice або Crash в Telegram, перша перешкода — чесність гри. Провайдери використовують provably-fair, але неправильна імплементація призводить до вразливостей: перерахунок seed, передбачуваність випадковості. Ми проектуємо механіку на HMAC-SHA256 з публікацією хеша seed до раунду. Це дозволяє гравцеві верифікувати кожен раунд через кілька секунд після його завершення. TON інтеграція додає складності: потрібно обробляти підтвердження транзакцій у мережі з високим навантаженням, керувати станами смарт-контрактів та забезпечувати атомарність депозитів. Наш стек — TON SDK, tonapi.io, Node.js з Socket.io. За понад 5 років ми реалізували 20+ проєктів для гемблінгу, включаючи великі крипто-казино. Зв'яжіться з нами — ми проаналізуємо ваш проєкт за 1 день та запропонуємо оптимальне рішення.

Наприклад, деякі розробники використовують Math.random() для генерації результатів, що повністю руйнує provably-fair. Ми застосовуємо HMAC-SHA256 з seed, який розкривається після раунду. Такий підхід гарантує, що навіть при зламі сервера гравець може перевірити минулі раунди. HMAC-SHA256 в 10³ разів стійкіший до підбору seed порівняно з SHA256 напряму.

Бюджет на розробку залежить від складності функцій. Для Dice базової версії потрібно близько 3-4 тижнів, для Crash з реалтаймом — 6-8 тижнів. Вартість розраховується індивідуально під ваш проєкт. Ви отримуєте готовий продукт з документацією та навчанням команди. Замовте розробку — ми гарантуємо математичну чесність та стабільність під навантаженням.

Як працює Provably Fair у Dice?

Схема для Dice:

  1. Сервер генерує serverSeed, публікує serverSeedHash = SHA256(serverSeed).
  2. Користувач задає clientSeed (може змінити в будь-який момент).
  3. Результат: roll = HMAC_SHA256(serverSeed, clientSeed + ":" + nonce) % 10000.
  4. Після раунду сервер розкриває serverSeed — гравець перевіряє hash.
import crypto from 'crypto'

function generateRoll(serverSeed: string, clientSeed: string, nonce: number): number {
  const hmac = crypto.createHmac('sha256', serverSeed)
  hmac.update(`${clientSeed}:${nonce}`)
  const hex = hmac.digest('hex')
  let result = parseInt(hex.slice(0, 8), 16)
  result = result % 10000
  return result
}

// Користувач може перевірити:
function verify(serverSeed: string, serverSeedHash: string, clientSeed: string, nonce: number, claimedRoll: number): boolean {
  const actualHash = crypto.createHash('sha256').update(serverSeed).digest('hex')
  if (actualHash !== serverSeedHash) return false
  const computedRoll = generateRoll(serverSeed, clientSeed, nonce)
  return computedRoll === claimedRoll
}

nonce інкрементується з кожною ставкою. Користувач може змінити clientSeed у будь-який момент — це ротує серверний seed. Докладніше про HMAC.

Чому WebSocket обов'язковий для Crash?

Множник Crash генерується заздалегідь для всього раунду, але гравці не знають точку крашу до її настання. Для реалтайм оновлень потрібен WebSocket. Кожні 100 мс сервер надсилає tick з поточним множником.

function generateCrashPoint(serverSeed: string, salt: string): number {
  const hash = crypto.createHmac('sha256', serverSeed).update(salt).digest('hex')
  const h = parseInt(hash.slice(0, 13), 16)
  if (h % 100 === 0) return 100 // 1% випадків — instant crash
  const e = 2 ** 52
  return Math.floor((100 * e - h) / (e - h)) / 100
}

Математично це дає розподіл: P(crash >= 2x) ≈ 50%, P(crash >= 10x) ≈ 10%. House edge — 1%.

Сервер надсилає tick кожні 100 мс з поточним множником. Коли множник досягає краш-точки, сервер надсилає crash і починається новий раунд. Клієнт на React підключається через Socket.io та відображає графік.

// Server (Node.js + Socket.io)
io.on('connection', (socket) => {
  socket.emit('round_state', currentRound)
})
let multiplier = 1.00
const interval = setInterval(() => {
  multiplier *= 1.003
  if (multiplier >= crashPoint) {
    clearInterval(interval)
    io.emit('crash', { multiplier: crashPoint })
    startNewRound()
  } else {
    io.emit('tick', { multiplier: parseFloat(multiplier.toFixed(2)) })
  }
}, 100)

Чому Provably Fair критичний для Telegram Mini App?

Telegram Mini App запускається без встановлення, і довіра до гри формується миттєво. Якщо гравець помітить, що результати не піддаються перевірці, він покине додаток. Provably Fair вирішує цю проблему: кожен раунд можна верифікувати, використовуючи опубліковані seed. За статистикою, 70% гравців у крипто-казино віддають перевагу верифікованим іграм. Ми надаємо готовий скрипт верифікації, який замовник може розмістити на сайті.

Як інтегрувати TonConnect у Dice/Crash?

TonConnect — стандарт для підключення гаманців TON. Ми реалізуємо підключення через депозитну адресу: гравець надсилає TON на згенеровану адресу, backend моніторить транзакції через tonapi.io та зараховує баланс. Для швидкої обробки використовуємо webhook. Виведення коштів — гравець надсилає запит, backend підписує та надсилає транзакцію. Гарантуємо, що всі транзакції проходять атомарно: якщо депозит не зараховано через помилку мережі, ми повертаємо кошти. Згідно з документацією TON Connect, час підтвердження транзакції становить 1-5 секунд.

Що входить у розробку під ключ

Ми надаємо повний package: документація по provably-fair, доступи до адмін-панелі, навчання команди, гарантія 3 місяці на баги. Входить:

  • Смарт-контракти для TON (якщо потрібно) або off-chain баланси.
  • Backend з PostgreSQL, Redis, Socket.io.
  • Frontend React + Telegram SDK + Chart.js.
  • TonConnect та Telegram Stars інтеграція.
  • Тестування (unit, integration, load).
  • Деплой на сервер та моніторинг.
Компонент Технологія
Frontend React + Telegram SDK + Chart.js
Backend Node.js + Socket.io + PostgreSQL
Кеш / realtime Redis
Blockchain TON + TonConnect
Бот Grammy.js

Крім того, для Crash ми додаємо додаткову таблицю розподілу:

Множник Ймовірність
>= 2x 50%
>= 5x 20%
>= 10x 10%
>= 50x 2%
>= 100x 1%
Обробка втрати з'єднання в Crash Якщо клієнт втрачає WebSocket, він не може закешувати результат. Ми реалізуємо механізм reconnection: після відновлення сервер надсилає останній стан раунду. Гарантується, що ставка гравця буде зафіксована до крашу.

Як ми працюємо: етапи

  1. Аналітика — розбираємо вимоги, обираємо механіку (Dice, Crash або обидві), визначаємо house edge та provably-fair схему.
  2. Проектування — пишемо специфікацію: математика, смарт-контракти, API.
  3. Реалізація — розробляємо server та client код, інтеграція платежів.
  4. Тестування — юніт-тести, load-тести (особливо для Crash), аудит безпеки.
  5. Деплой та підтримка — налаштовуємо CI/CD, моніторинг, навчання адміністраторів.

Орієнтовні строки

  • Dice Mini App з TON балансами та provably fair: 3-4 тижні.
  • Crash + Dice з leaderboard, реферальною системою, реалтайм стрічкою: 6-8 тижнів.

Вартість розраховується індивідуально — зв'яжіться з нами, щоб отримати комерційну пропозицію. Замовте розробку — ми гарантуємо математичну чесність та стабільність під навантаженням. Гарантія 3 місяці на всі баги.

Чому обирають нас

  • Понад 5 років досвіду в блокчейн-розробці.
  • 20+ успішних проєктів: від крипто-казино до DeFi-протоколів.
  • Власний шаблон provably-fair генерації, що пройшов аудит.
  • Використовуємо формальну верифікацію для критичних контрактів.

Leaderboard на Redis Sorted Set — реалтайм, без затримок. Соціальний елемент Crash: бачити ставки інших гравців у реалтайм, публічна стрічка ставок — це підсилює retention. Зв'яжіться з нами, щоб обговорити ваш проєкт.

GameFi розробка: ігрова економіка, контракти та on-chain механіка

Ми бачили цей сценарій не раз. Axie Infinity на піку мала великий дохід, але через 18 місяців токен різко знецінився, а аудиторія значно скоротилася. Причина — відсутність sink'ів: гравці заробляли SLP і виводили, а механізмів спалювання не вистачало. Ми пропонуємо GameFi розробку під ключ: від токеноміки до смарт-контрактів, щоб ваша економіка не повторила цю помилку. Оцінимо ваш проєкт на meetup або онлайн. Наш досвід — 5+ років, десятки реалізованих проєктів, включно з аудитом 15+ P2E ігор.

Чому ламається Play-to-Earn економіка?

Інфляційна токеноміка без sink'ів — головна причина смертельної спіралі. Гравець отримує токени за геймплей. Якщо sink'ів (механізмів спалювання або споживання) недостатньо — supply зростає швидше за demand. Ціна падає. Дохід гравця у fiat зменшується. Гравці йдуть.

Правильна конструкція — dual-token модель з чітким розподілом: governance/value token з обмеженим supply і utility/reward token для внутрішньоігрової економіки. Utility token має активно споживатися: крафтинг предметів, апгрейди, entry fees, breeding. Приклади: GODS/FLUX у Gods Unchained, AXS/SLP у Axie (хоча sink'ів там виявилося недостатньо). Ефективна економіка балансує mint та burn: типовий ratio — 1.2—1.5 burn на 1 mint для запобігання інфляції.

Які sink-механізми реально працюють?

Механізм Опис Приклад
Breeding / крафтинг Спалювання utility token за створення нового NFT Axie (але з правильним balancing)
Апгрейди персонажів Кожна еволюція вимагає спалювання токена Більшість P2E RPG
PvP entry fee Вхід у турнір спалює токени, частина йде в призовий пул Splinterlands
Дурабилити предметів Після N боїв предмет ламається, токен витрачається на ремонт Успадковано з MMORPG
Фінансові механіки Стейкінг з lock-up, що виводить токени з обігу на строк DeFi-шари

Наш досвід — десятки реалізованих проєктів у Web3, включно з аудитом 15+ P2E ігор. Ми знаємо, які sink'и працюють у довгостроковій перспективі. Наприклад, у проєкті з breeding RPG ми збільшили спалювання utility token на 300% за рахунок введення «ремеслу зношуваності» та обов'язкових апгрейдів.

On-chain vs Off-chain: де проходить межа

Всю ігрову логіку on-chain виносити не потрібно — кожна транзакція коштує газу і триває 12 секунд. Ігровий цикл — мілісекунди. Баланс:

Компонент On-chain Off-chain Приклади
Ownership активів + NFT предмети, land
Передача/торгівля + Маркетплейси
Фінанси (стейкінг, rewards) + Staking vaults, DAO
Random generation + (через VRF) Chainlink VRF
Ігровий процес + Бойова система, рух
State ігрового світу + Координати, health points
Матчмейкінг + Серверна логіка

Результати геймплею переносяться на блокчейн через signed message від сервера або ZK-proof. Verifiable off-chain з ZK: ігровий сервер генерує ZK-proof коректності сесії, контракт верифікує proof і нараховує винагороду. Реалізації: Cartridge (Starknet), zkSync game rollups.

Реалізація NFT ігрових предметів

Стандарт: ERC-1155 для взаємозамінних предметів (ресурси, consumables) + ERC-721 для унікальних (персонажі, land). ERC-1155 дає до 60% економії на газі при batch transfer у порівнянні з окремими ERC-721 переказами — для гри з сотнями предметів це економія сотень доларів на день.

Як реалізувати динамічні NFT без перевантаження блокчейна?

Характеристики предмета змінюються в процесі гри (experience, durability, upgrades). Два підходи:

  • Fully on-chain: атрибути зберігаються в mapping контракту, tokenURI генерується з атрибутів через SVG/JSON encoding. Дорого за газом при частому оновленні. Використовується для land і ключових активів.
  • Hybrid: атрибути зберігаються off-chain, в tokenURI — hash стану. Оновлення підписується сервером, верифікується on-chain при transfer або продажі. Дешевше, але вимагає довіри до сервера або ZK.

Breeding і crafting. Контракт: два батьківських NFT → оплата utility token (burn) → мінт нового NFT з атрибутами, що залежать від батьків + Chainlink VRF для випадковості. Без VRF майнери можуть маніпулювати рандомом через вибір блоку.

// Simplified breeding with Chainlink VRF
function breed(uint256 parent1Id, uint256 parent2Id) external {
    require(ownerOf(parent1Id) == msg.sender);
    require(ownerOf(parent2Id) == msg.sender);
    require(breedingToken.burnFrom(msg.sender, BREEDING_COST));

    uint256 requestId = vrfCoordinator.requestRandomWords(...);
    pendingBreeds[requestId] = BreedRequest(parent1Id, parent2Id, msg.sender);
}

function fulfillRandomWords(uint256 requestId, uint256[] memory randomWords) internal override {
    BreedRequest memory req = pendingBreeds[requestId];
    uint256 childAttributes = deriveAttributes(req.parent1Id, req.parent2Id, randomWords[0]);
    _mintWithAttributes(req.requester, childAttributes);
}

Маркетплейс і роялті

Вбудований маркетплейс дає контроль над fee структурою та кастомною логікою (заборона торгівлі предметами до певного рівня). Роялті за EIP-2981 — стандарт, але не enforceable: Blur та інші маркетплейси ігнорують on-chain роялті. Для enforcement — whitelist-only transfer (тільки через контракти, що платять роялті). Жертвуємо composability заради захисту прав.

Staking та розподіл винагород

Staking NFT — механіка для утримання гравців. Проблема: нарахування rewards при тисячах стейкерів вимагає постійних транзакцій (дорого). Рішення — reward-per-share паттерн (як у MasterChef від SushiSwap): глобальний accRewardPerShare, при claim або change state перераховується заборгованість за формулою pendingReward = stakedAmount * (accRewardPerShare - userRewardDebt). O(1) складність незалежно від кількості стейкерів. Економія газу — до 70% порівняно з поелементним нарахуванням.

Детальніше про reward-per-shape реалізацію

Алгоритм працює так: при кожному депозиті/знятті стейку або при оновленні глобального пулу (наприклад, додаванні нових токенів винагороди) контракт оновлює accRewardPerShare = totalPendingReward / totalStaked. Потім для конкретного користувача розраховується pending = user.staked * (accRewardPerShare - user.rewardDebt). Після виплати user.rewardDebt встановлюється рівним accRewardPerShare. Це дозволяє не зберігати історію внесків кожного користувача. На практиці ми використовуємо для GameFi проєктів версію з multiplier для врахування різних ваг стейку (наприклад, рідкісні NFT дають більше винагороди).

Процес та терміни

Починаємо з game economics документа: token flows, mint/burn механіки, projected supply schedule, sink analysis. До написання коду економіка моделюється (Cadence, Python simulation).

Як ми будуємо GameFi: 5 етапів

  1. Економічне моделювання — 1-2 тижні. Розробляємо dual-token модель, розраховуємо sink'и, прописуємо стимули для long-term holding.
  2. Розробка токен-контрактів — 2-3 тижні. ERC-20 для governance, ERC-20 для utility, з настроюваною політикою mint/burn.
  3. Смарт-контракти NFT — 3-5 тижнів. ERC-721 / ERC-1155 з dynamic metadata, breeding/crafting, Chainlink VRF.
  4. Staking + rewards — 2-3 тижні. Контракт на базі reward-per-share, інтерфейси для frontend.
  5. Маркетплейс (опціонально) — 2-4 тижні. Кастомний маркетплейс з enforced royalty.

Що входить у роботу

  • Вихідний код усіх смарт-контрактів з тестами (Foundry/Hardhat)
  • Документація архітектури та економіки
  • Інтеграція з Chainlink, Tenderly для моніторингу
  • Аудит коду та формальна верифікація (Slither, Mythril, Echidna)
  • Навчання команди роботі з контрактами
  • Підтримка після деплою (3 місяці)

Базовий GameFi стек (токени + NFT + staking + маркетплейс) — від 8 до 16 тижнів. Повна гра з on-chain рандомом, breeding, dynamic NFT — 4-8 місяців. ZK-based verifiable gameplay — окремий проєкт від 6 місяців.

Зв'яжіться з нами для аудиту вашої токеноміки — оцінимо ризики та доопрацюємо sink-механізми. Замовте розробку GameFi проєкту — отримайте готовий продукт з перевіреною економікою. Наш досвід — десятки реалізованих проєктів у Web3, включно з аудитом 15+ P2E ігор. Гарантуємо стабільність контрактів і прозорість коду. Сертифіковані аудитори перевіряють кожен контракт на типові вразливості (reentrancy, flash loan, oracle manipulation).