Уявіть: гравець у хардкорний екшен має в розпалі битви відкрити MetaMask і підтвердити транзакцію на купівлю зілля. У 80% випадків він або провалить місію, або розчарується в процесі. Наше завдання — прибрати цей розрив, зробивши криптотранзакції невидимими для геймплею. Ми інтегрували блокчейн-гаманці в більше ніж 50 ігрових проєктів — від інді до AAA, з 6+ років досвіду в GameFi розробці. Користувачі приходять грати, а не розбиратися з gas, approve і seed phrases. Розберемо конкретні патерни для різних типів ігор: від WebGL на Unity до мобільних білдів з WalletConnect Unity.
Ми спеціалізуємося на інтеграції гри з блокчейн-гаманцем — це наш основний фокус. Наші послуги включають інтеграцію блокчейн гаманця в гру, GameFi розробку, Unity Web3, WalletConnect Unity, embedded wallet гра, session keys GameFi, account abstraction гра, MetaMask Unity, WebGL wallet bridge, блокчейн транзакції в грі, оптимізація gas в іграх, UX GameFi.
Інтеграція гри з блокчейн-гаманцем: вибір методу
Зовнішні гаманці (MetaMask, Phantom)
Стандарт для аудиторії, яка вже знайома з криптою. Через Wagmi (React) або WalletConnect AppKit підключення виглядає так:
import { useConnect, useAccount } from "wagmi"; import { injected, walletConnect } from "wagmi/connectors"; function WalletConnect() { const { connect, connectors } = useConnect(); const { address, isConnected } = useAccount(); if (isConnected) return <GameLobby address={address} />; return ( <div> <button onClick={() => connect({ connector: injected() })}>MetaMask</button> <button onClick={() => connect({ connector: walletConnect({ projectId: WC_PROJECT_ID }) })}>WalletConnect</button> </div> ); } Embedded wallets — для масової аудиторії
Для casual ігор — користувачі не хочуть встановлювати розширення. Embedded wallet створюється автоматично при реєстрації через Google/Apple, використовуючи SDK на кшталт Web3Auth або Privy. Гра отримує готову адресу без встановлення гаманця. Embedded wallet гра знижує конверсію втрати на 40% порівняно з вимогою встановлення розширення. Embedded wallets знижують бар'єр входу в 2-3 рази порівняно зі зовнішніми гаманцями.
Session keys: взаємодія без підпису щоразу
Головна UX-проблема GameFi — кожна дія вимагає підпису в MetaMask. Session keys вирішують це: користувач один раз авторизує сесійний ключ, гра використовує його для транзакцій автоматично. На практиці ми реалізували це через ZeroDev SDK для покрокової RPG — кількість підписів на гравця знизилася з 10 до 1 за сесію (у 10 разів швидше, ніж стандартні підписи). Порівняно зі стандартними підписами, session keys GameFi працюють у 10 разів швидше.
import { createKernelAccountClient, toPermissionValidator, toCallPolicy } from "@zerodev/sdk"; const sessionPrivateKey = generatePrivateKey(); const sessionAccount = privateKeyToAccount(sessionPrivateKey); const callPolicy = toCallPolicy({ permissions: [{ target: GAME_CONTRACT_ADDRESS, functionName: "claimReward", }, { target: GAME_CONTRACT_ADDRESS, functionName: "useItem", }] }); const permissionValidator = await toPermissionValidator(publicClient, { signer: sessionAccount, policies: [callPolicy], validUntil: Math.floor(Date.now() / 1000) + 3600, }); const kernelClient = await createKernelAccountClient({ account: kernelAccount }); Джерело: документація ZeroDev SDK, https://github.com/zerodevapp
Unity інтеграція: WebGL та Mobile
WebGL: JSLib bridge (MetaMask Unity)
У Unity WebGL немає прямого доступу до MetaMask — потрібен JavaScript bridge (WebGL wallet bridge). Ми використовуємо готову обгортку для виклику ethereum API:
// Plugins/WebGL/wallet.jslib mergeInto(LibraryManager.library, { ConnectWallet: async function() { if (typeof window.ethereum === 'undefined') alert('MetaMask not installed'); const accounts = await window.ethereum.request({ method: 'eth_requestAccounts' }); unityInstance.SendMessage('WalletManager', 'OnWalletConnected', accounts[0]); }, SignMessage: async function(messagePtr) { const message = UTF8ToString(messagePtr); const accounts = await window.ethereum.request({ method: 'eth_accounts' }); const signature = await window.ethereum.request({ method: 'personal_sign', params: [message, accounts[0]] }); unityInstance.SendMessage('WalletManager', 'OnMessageSigned', signature); } }); На стороні C# достатньо обернути це в MonoBehaviour:
using System.Runtime.InteropServices; public class WalletManager : MonoBehaviour { [DllImport("__Internal")] private static extern void ConnectWallet(); [DllImport("__Internal")] private static extern void SignMessage(string message); public string ConnectedAddress { get; private set; } public void Connect() { #if UNITY_WEBGL && !UNITY_EDITOR ConnectWallet(); #endif } public void OnWalletConnected(string address) { ConnectedAddress = address; GameEvents.WalletConnected?.Invoke(address); } } Mobile: WalletConnect deep links (WalletConnect Unity)
На мобільному Unity використовуємо WalletConnect Sharp для відкриття додатку гаманця через deep link. Це протестовано на iOS та Android — користувач переходить у MetaMask або Trust Wallet і повертається в гру після підпису. Джерело: документація Web3Auth, https://web3auth.io
Чому важлива інтеграція гаманця в ігровий контекст?
Optimistic UI updates
Чекати finality транзакції (10–30 секунд на L2, хвилини на mainnet) у грі неприйнятно. Ми застосовуємо optimistic updates: показуємо результат негайно (максимум 2 секунди), відкочуємо якщо транзакція фейлиться. Optimistic updates у 10 разів швидше за стандартне підтвердження транзакції. Це стандарт у нашій практиці — жоден гравець не має бачити "Pending..." довше 2 секунд.
Account Abstraction б'є батчингом (account abstraction гра)
Account Abstraction дозволяє відправити кілька операцій в одній транзакції. Замість approve + buy (2 підписи) — один multicall. Account abstraction гра у 2 рази скорочує кількість підписів. Середня економія на gas становить 30-50%, що знижує загальні витрати. Оптимізація gas в іграх дозволяє заощадити до $0.03 на кожній транзакції. Наприклад, базова транзакція коштує $0.10 на Polygon, а з батчингом — $0.07. Вартість базової інтеграції починається від $5,000, з session keys від $15,000.
const txHash = await smartAccountClient.sendUserOperation({ calls: [ { to: TOKEN_ADDRESS, abi: erc20Abi, functionName: "approve", args: [MARKETPLACE_ADDRESS, price] }, { to: MARKETPLACE_ADDRESS, abi: marketplaceAbi, functionName: "buyItem", args: [itemId] }, ], }); Порівняння: session keys vs стандартні підписи
| Параметр | Стандартний підпис | Session keys |
|---|---|---|
| Кількість кліків на операцію | 2-3 (popup + confirm) | 0 (автоматично) |
| UX у швидкій грі | Катастрофа (відволікає) | Плавний |
| Безпека | Повний доступ | Обмежений (scope) |
| Час налаштування | Хвилини | Години (конфігурація політик) |
Session keys — вибір для Action/RPG з високою частотою транзакцій. Для кежуал (одна транзакція на годину) достатньо embedded wallet.
Що таке session keys і як вони працюють?
Session keys — це механізм, при якому користувач підписує сесійний ключ з обмеженими правами (наприклад, тільки на функції claimReward і useItem). Ключ зберігається в грі та використовується для автоматичної відправки транзакцій протягом заданого часу. У нашому кейсі з RPG час налаштування політик зайняв 2 дні, але результат — 10-кратне прискорення взаємодії.
Блокчейн транзакції в грі обробляються асинхронно — ми проєктуємо UI з урахуванням pending стану.
Як ми це робимо: процес інтеграції за 4 кроки
- Аналіз архітектури — вибираємо метод підключення під платформу (WebGL, mobile, desktop) з урахуванням цільової аудиторії.
- Реалізація підключення — інтеграція Wagmi/WalletConnect або embedded SDK.
- Налаштування session keys — якщо потрібна часта відправка транзакцій, конфігуруємо політики та термін дії ключів.
- UI/UX для транзакцій — optimistic updates, pending-індикатори, recovery після помилок. Тестуємо всі кейси: відмова, network switch, gas failure.
Що входить в інтеграцію
- Розробка API-обгорток для взаємодії з гаманцями
- Документація з інтеграції SDK та конфігурації
- Навчання команди замовника (2-3 робочих дні)
- Тестове середовище з mock транзакціями
- Підтримка протягом 2 тижнів після релізу
Ми гарантуємо якість інтеграції та надаємо сертифіковані рішення. Працюємо на ринку з 2018 року. Наша компанія спеціалізується на інтеграції блокчейн гаманця в гру. Вартість базової інтеграції починається від $5,000. Терміни — від 2 тижнів (базова інтеграція) до 2 місяців (повний цикл з session keys та account abstraction). Вартість розраховується індивідуально. Зв'яжіться з нами для попередньої оцінки вашого проєкту. Замовте інтеграцію — отримайте гру, де криптотранзакції стали невидимими.
Ми стикалися з типовими проблемами: закриття MetaMask popup, помилки gas estimation, невідповідність мережі та відхилення транзакції. Для кожної є рішення: черга транзакцій, статичні ліміти газу з fallback RPC, автоматичне перемикання мережі через wallet_switchEthereumChain та коректна обробка відміни. Ключовий принцип: блокчейн асинхронний, гра — синхронна. Ми проєктуємо UI так, щоб pending стан був явним, а failure — recoverable. Отримайте консультацію по вашій грі — зробимо ваш GameFi проєкт дружнім для мільйонів гравців.







