Розробка мобільного додатку для крипто-казино
Уявіть: користувач вносить 1 ETH, транзакція зависає на півгодини, баланс не зараховано, підтримка завалена. У своїй практиці ми стикалися з такими кейсами — на одному з проєктів запровадили моніторинг on-chain статусів з real-time оновленнями та посиланнями на блокчейн-експлорер. Це знизило навантаження на саппорт на 50% і підвищило довіру. Отримайте консультацію щодо вашого проєкту — ми запропонуємо архітектуру під ключ за 6–10 тижнів, вартість MVP починається від $15,000.
Чому користувачі йдуть? Типові проблеми
Депозит завис. Користувач відправив ETH/USDT, транзакція pending, баланс у грі не зараховано. Якщо UI показує лише спінер без деталей (txHash, block explorer посилання, очікуваний час) — підтримка завалена тікетами. Правильна схема: додаток показує статус транзакції в реальному часі (pending → X/12 confirmations → credited), посилання на Etherscan/BscScan, і приблизний час через eth_getBlockByNumber + середній block time.
WalletConnect нестабільний. WalletConnect v2 (WalletConnectSwift / WalletConnect Kotlin) — стандарт для підключення MetaMask, Trust Wallet та інших. Але v2 relay іноді втрачає сесії, особливо при зміні мережі. Потрібна логіка перепідключення та детектування невідповідності chainId — якщо користувач переключився на Ethereum, а очікується BSC, показуємо prompt «Переключіть мережу на BSC». Згідно з документацією WalletConnect v2, рекомендується використовувати relay сервер з підтримкою reconnection та перевіркою chainId при кожному запиті.
Важливо: ми використовуємо fallback RPC-провайдери. Alchemy, Infura, публічні вузли — всі вони періодично лагають або віддають 429 Too Many Requests. Додаток з єдиним RPC падає при його недоступності. Рішення: fallback список провайдерів з health-check (вимірюємо latency останнього блоку, автоматично переключаємося на найшвидший), реалізується через web3.js/ethers.js на React Native або нативні бібліотеки (web3swift, web3j).
Як реалізувати provably fair на мобільному?
Криптоказино продає «provably fair» — можливість перевірити чесність результату. Це не маркетинг, це технічна особливість: результат гри детермінований seed'ом, який користувач може змінити (client seed) і перевірити після розкриття server seed. Реалізація на мобільному клієнті:
- Користувач задає
client_seed (або генерується автоматично — CSPRNG).
- Сервер віддає
hashed_server_seed до початку гри.
- Після гри сервер розкриває
server_seed — клієнт верифікує: HMAC-SHA256(server_seed, client_seed + ":" + nonce) відтворює результат гри.
Екран верифікації — стандартний UI компонент у crypto-casino додатках, підвищує довіру. Протокол використовує ланцюжок хешів: сервер генерує seed, хешує його і відправляє клієнту до гри. Після результату клієнт може відновити результат за опублікованим seed. Вся логіка реалізована на клієнті — користувач може перевірити чесність навіть офлайн.
Slot/crash/dice движок на мобілці найчастіше — WebView з iframe або React Native з нативними мостами для перформанс-критичної анімації. Нативна реалізація дає в 2–3 рази більш плавну анімацію і знижує затримки при оновленні графіків. Lottie використовується для анімацій виграшів. Реальний real-time multiplayer crash game потребує WebSocket з latency < 100ms — додаток отримує кожен тік ({"multiplier": 1.23, "status": "running"}) і оновлює графік через Canvas/Metal/OpenGL ES.
| Критерій |
WebView |
Нативний (React Native / Swift/Kotlin) |
| Продуктивність анімацій |
30-40 fps |
60 fps, можлива 90 fps |
| Затримка WebSocket |
+10-30ms |
<5ms |
| Доступ до нативних API |
Через мости |
Прямий |
| Розмір додатку |
~5 MB |
~10-15 MB |
| Складність розробки |
Низька |
Середня/висока |
Порівняйте: WebView виграє у швидкості розробки, але поступається в плавності в 2-3 рази. Для crash-ігор затримка в 30ms може коштувати користувачеві програшу — нативний підхід кращий.
Безпека та KYC в мобільному крипто-казино
Крипто-казино в ліцензованих юрисдикціях (Кюрасао, Мальта) вимагає KYC. Інтеграція з провайдерами верифікації: Sumsub SDK (SumSubMobileSDK для iOS/Android) або Onfido. Обидва надають нативний/Flutter SDK з liveness-check, document scanning та anti-spoofing. Зберігання сесійних токенів — iOS Keychain (.whenUnlockedThisDeviceOnly), Android EncryptedSharedPreferences через Keystore. Біометрична аутентифікація (LocalAuthentication / BiometricPrompt) для підтвердження виведення коштів. За статистикою, використання біометрії знижує кількість шахрайських виведень на 60%. Наша команда гарантує відповідність вимогам ліцензій та сертифікатів безпеки.
| Провайдер |
Сканування документів |
Liveness check |
Підтримка крипто-гаманців |
| Sumsub |
Так |
Так |
Так (API) |
| Onfido |
Так |
Так |
Ні |
Як налаштувати WalletConnect?
- Встановіть бібліотеку
WalletConnectSwift для iOS або WalletConnect Android.
- Створіть екземпляр
WalletConnect з вашим projectId з WalletConnect Cloud.
- Реалізуйте делегат для обробки сесій:
onSessionRequest, onDisconnect.
- Додайте підтримку зміни мережі: перевіряйте
chainId у кожному запиті та при неспівпадінні показуйте користувачеві пропозицію переключитися.
Стек технологій для мобільного додатку крипто-казино
React Native з Expo Modules API (кастомні нативні модулі для Keychain/Biometrics) або нативний Swift + Kotlin для максимального контролю над WebSocket та crypto-операціями. WalletConnectSwift-v2 / reown-appkit для iOS, WalletConnect Android для Android. ethers.js через JSI-bridge або web3swift/web3j нативно.
Архітектура: окремий BlockchainService з провайдер-ротацією, TransactionMonitor (polling eth_getTransactionReceipt з exponential backoff), WalletSessionManager, GameHistoryRepository (Core Data / Room, пагінація).
Процес розробки мобільного додатку для крипто-казино
Аудит вимог + вибір блокчейнів → проектування wallet-flow та депозит/виведення → розробка ігрового лобі + окремих ігрових модулів → KYC інтеграція → безпека та penetration testing → QA → публікація (App Store не приймає gambling-додатки в більшості країн — публікація через Progressive Web App або пряма APK дистрибуція).
Що входить у нашу роботу?
- Детальна документація архітектури та API
- Доступ до репозиторію з вихідним кодом
- Інтеграція з обраними блокчейнами та гаманцями
- Реалізація provably fair для кожної гри
- KYC/AML модуль з SDK провайдера
- Навантажувальне тестування та пентест
- Інструкції з деплою та підтримка 1 місяць після запуску
- Гарантія якості та безпеки
Наша команда має 5+ років досвіду в розробці криптоказино, реалізувала 15+ успішних проєктів. Ми надаємо сертифікованих розробників з досвідом у блокчейні. Зв'яжіться з нами для детального обговорення — оцінимо ваш проєкт і запропонуємо оптимальне рішення.
Орієнтири за термінами
MVP крипто-казино (лобі, 2–3 гри, депозит/виведення через WalletConnect, історія транзакцій): 6–10 тижнів. Повноцінна платформа з multiple blockchains, KYC, live dealer іграми та affiliate системою: 3–5 місяців.
Монетизація мобільних додатків: IAP, підписки та рекламна медіація
Додаток з погано реалізованими покупками втрачає гроші не тому що користувачі не хочуть платити, а тому що StoreKit транзакція зависає, Receipt Validation падає з помилкою або restore purchases не працює — і користувач пише в підтримку або залишає 1 зірку. Наш досвід (більше 7 років у мобільній розробці) показує, що грамотна монетизація збільшує LTV на 30–60% вже в перші три місяці після впровадження. Отримайте консультацію з монетизації вашого додатка — проаналізуємо поточну модель і знайдемо точки зростання.
Чому StoreKit 2 — найкращий вибір для IAP?
StoreKit 2 (iOS 15+) — сучасний API з async/await та верифікованими транзакціями на стороні пристрою без сервера. Transaction.currentEntitlements повертає всі активні покупки. Ключова зміна порівняно з StoreKit 1: верифікація JWS-підпису на пристрої через VerificationResult<Transaction> — не потрібно надсилати receipt на сервер для базової перевірки.
Але сервер-сайд валідація все одно потрібна для consumable покупок та проти fraud. App Store Server API замінює старий /verifyReceipt endpoint. Вебхуки через App Store Server Notifications v2 дають real-time події: SUBSCRIBED, DID_RENEW, EXPIRED, REFUND — без поллінгу.
Типова помилка: не обробляють paymentQueue(_:updatedTransactions:) у фоні для незавершених транзакцій. Користувач купив consumable, додаток впав до finishTransaction — покупка висить у черзі, при наступному запуску відновлюється та вимагає повторної обробки на сервері. Без ідемпотентності сервера — подвійне нарахування.
Як не втратити дохід на підписках?
Підписочна модель вимагає відстеження станів: тріал → активна → grace period → expired → refunded. RevenueCat — фактичний стандарт для керування підписками в продакшні. Абстрагує StoreKit та Google Play Billing, дає unified API, webhooks, аналітику когорт та A/B тести paywall.
Альтернатива RevenueCat — власна реалізація з Adapty або Qonversion. Повністю кастомна — тільки якщо дані не повинні залишати інфраструктуру або є нестандартна логіка. Ми гарантуємо, що налаштування webhooks та обробка подій життя підписки виконується без втрат — перевірено на проектах з аудиторією понад 500 тис. DAU.
Google Play Billing Library 6+ вимагає обробки PurchasesUpdatedListener та явного виклику acknowledgePurchase() або consumePurchase() протягом 3 днів — інакше Google автоматично скасовує покупку та повертає гроші. Середня вартість такої помилки — втрата значної суми на користувача на місяць (за даними наших проектів).
Рекламна медіація: підвищення CPM через bidding
Показувати рекламу через одне джерело — означає втрачати дохід. Медіація (waterfall або bidding) запитує рекламу у декількох мереж і показує найкращу ставку. Google AdMob — основа для banner, interstitial, rewarded. Медіація через AdMob Mediation або MAX (AppLovin) — другий де-факто стандарт. MAX використовує In-App Bidding — real-time аукціон без водоспаду. На практиці MAX дає CPM на 15-30% вище класичного waterfall (залежить від гео та аудиторії). У США для rewarded відео CPM може перевищувати певну суму. При 100 000 показів rewarded відео на день перехід з waterfall на In-App Bidding може приносити додатково значну суму щоденно.
ironSource (Unity Ads) — сильна позиція в ігровому сегменті, особливо rewarded video. Mintegral — добре закриває азійську аудиторію.
Налаштування медіації вимагає ATT (App Tracking Transparency) на iOS 14+. Без requestTrackingAuthorization рекламний CPM падає в 3-5 разів для користувачів, які не погодилися. SKAdNetwork та Privacy Manifest (iOS 17) — обов'язкові вимоги, без яких рев'ю падає.
| Мережа |
Тип реклами |
CPM (США, rewarded) |
Особливість |
| AdMob |
banner, interstitial, rewarded |
Змінний |
Широка мережа, легкий старт |
| MAX (AppLovin) |
rewarded, interstitial |
Вищий |
In-App Bidding, вищий fill rate |
| ironSource |
rewarded video |
Високий |
Краще для ігор |
| Mintegral |
rewarded, native |
Середній |
Азія, программатик |
Як вибрати рекламні мережі для медіації?
Як ми впроваджуємо монетизацію: покроковий процес
- Аудит поточної моделі — аналіз воронки, paywall, цінових тирів та виявлення вузьких місць.
- Проектування моделі — вибір типу (subscription, consumable, non-consumable) та оптимізація цінових точок.
- Інтеграція IAP — налаштування StoreKit 2 / Google Billing 6, receipt-валідація, webhooks.
- Рекламна медіація — підключення 3-6 мереж, налаштування waterfall або In-App Bidding, тестування fill rate.
- Аналітика та когорти — інтеграція RevenueCat, Amplitude або Firebase для відстеження LTV.
- A/B тестування paywall — використання Remote Config для експериментів без релізу.
- Запуск та моніторинг — 2 тижні безкоштовної підтримки після запуску, фікс багів по SLA 24 години.
Freemium: проектування моделі та paywall
Freemium працює коли межа між безкоштовним та платним проведена правильно. Занадто жорсткий paywall на старті — користувач видаляє. Занадто щедрий безкоштовний тир — немає стимулу платити.
Як проєктувати paywall для freemium?
Паттерн, який працює технічно: feature flags з сервера (Remote Config у Firebase або LaunchDarkly) керують доступом до фіч. Це дозволяє A/B тестувати paywall без релізу, змінювати умови тріалу, проводити акції.
Реалізація на рівні коду: EntitlementManager — єдина точка перевірки доступу до фіч, яка знає про статус підписки, флаги та промо. Жодних перевірок isPremium розкиданих по всьому коду. Досвід показує: такий підхід знижує кількість багів з paywall на 80% (підтверджено на 30+ проектах).
Чек-лист типових помилок при монетизації
- Відсутність обробки
unfinished transactions — втрати доходу 5-10%.
- Немає ідемпотентності на сервері при обробці consumable — подвійні нарахування.
- Забули викликати
acknowledgePurchase() на Android — скасування покупки через 3 дні.
- Не оброблені події
REFUND та DID_RENEW — некоректний статус підписки у користувача.
- Paywall без A/B тестів — залишають 20-40% потенціалу монетизації.
- Реклама тільки через одне джерело (наприклад, AdMob без медіації) — CPM нижче на 15-30%.
Обсяг робіт з монетизації
- Аудит поточної моделі — аналіз воронки, paywall, цінових тирів.
- Інтеграція IAP — StoreKit 2 / Google Billing 6, receipt-валідація, webhooks.
- Рекламна медіація — налаштування MAX / AdMob, підключення 3-6 мереж, тестування fill rate.
- Налаштування аналітики — RevenueCat, Amplitude / Firebase, когортний аналіз.
- Документація — опис ентайтлментів, процедура відновлення, чек-лист рев'ю.
- Навчання команди — розбір типових помилок, рекомендації з підтримки.
- Гарантія — безкоштовна підтримка 2 тижні після запуску, фікс багів по SLA 24 години.
Терміни орієнтовно
| Етап |
Тривалість |
| Базова IAP (один store) |
1–2 тижні |
| Підписочна система + RevenueCat + paywall |
3–5 тижнів |
| Рекламна медіація (MAX + 3 мережі) |
1–2 тижні |
| Повний цикл (IAP + реклама + аналітика) |
4–8 тижнів |
Вартість розраховується індивідуально. Ми працюємо в цій сфері більше 8 років і реалізували більше 40 проектів з монетизацією — багато з них пройшли App Store Review без жодного блокування. Зв'яжіться з нами для аудиту або замовте консультацію — розповімо, які точки зростання є у вашому додатку.
Джерела: Apple StoreKit 2 Documentation, RevenueCat Best Practices, Wikipedia: Freemium.