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







