Інтеграція гри з блокчейн-гаманцем — Web3 та Unity

Уявіть: гравець у хардкорний екшен має в розпалі битви відкрити MetaMask і підтвердити транзакцію на купівлю зілля. У 80% випадків він або провалить місію, або розчарується в процесі. Наше завдання — прибрати цей розрив, зробивши криптотранзакції невидимими для геймплею. Ми інтегрували блокчейн-гама

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

Часті запитання

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

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

Уявіть: гравець у хардкорний екшен має в розпалі битви відкрити 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 кроки

  1. Аналіз архітектури — вибираємо метод підключення під платформу (WebGL, mobile, desktop) з урахуванням цільової аудиторії.
  2. Реалізація підключення — інтеграція Wagmi/WalletConnect або embedded SDK.
  3. Налаштування session keys — якщо потрібна часта відправка транзакцій, конфігуруємо політики та термін дії ключів.
  4. 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 проєкт дружнім для мільйонів гравців.