Clients come with a request to "build a mobile crypto casino" — and immediately hit a wall: AppStore and Google Play block gambling apps, Web3 wallets work differently on phones, and UX on a small screen requires redesign. We've gained experience on a dozen projects and now offer proven architectural solutions. One of our clients, by launching a PWA, bypassed moderation in two weeks — while a native app from competitors was stuck in review for three months.
Why is a mobile crypto casino harder than a web version?
Apple and Google strictly regulate gambling. Apple's gambling documentation permits gambling only in licensed jurisdictions, requires geoblocking and manual review. Google Play is similar. Add cryptocurrency: in-app purchases with tokens are prohibited. As a result, the standard app store path is often closed. On mobile devices, key management is further complicated: seed phrases cannot be stored in UserDefaults, and biometrics are mandatory for transactions above a threshold.
Alternatives to app stores: PWA installs from the browser, bypasses moderation (downside: no push notifications on iOS); WebView wrapper passed AppStore only when complying with licenses; direct APK installation for Android reduces trust but works; native iOS/Android only with licenses from Malta, UK, etc.
How we bypass App Store and Google Play restrictions
We use a combination of approaches. Most often we choose PWA for a fast start with coverage of both platforms. For clients who insist on a native app, we set up geotargeting — the app is visible only in permitted countries. We also implement WebView with crypto functions wrapped in legal content (for example, the app as an "educational game"). PWA cuts time to market by half compared to a native app. In fact, our clients report that React Native is 3x faster to develop than a fully native iOS/Android solution for a crypto casino.
Tech stack and key decisions
Framework and Web3
We use React Native + Expo as the foundation. This gives fast output to both platforms. For crypto interaction — WalletConnect v2 + embedded wallet Privy.
import { WalletConnectModal, useWalletConnectModal } from "@walletconnect/modal-react-native"; import { useProvider, useSigner } from "@web3modal/ethers-react-native"; function CasinoApp() { const { open, isConnected, address } = useWalletConnectModal(); const provider = useProvider(); return ( <NavigationContainer> <Stack.Navigator> <Stack.Screen name="Home" component={HomeScreen} /> <Stack.Screen name="Dice" component={DiceGame} /> <Stack.Screen name="Crash" component={CrashGame} /> <Stack.Screen name="Wallet" component={WalletScreen} /> </Stack.Navigator> {!isConnected && ( <ConnectWalletButton onPress={() => open()} /> )} <WalletConnectModal projectId="YOUR_PROJECT_ID" providerMetadata={{ name: "Casino App", description: "Crypto Casino", }} /> </NavigationContainer> ); } Embedded Wallet for onboarding
For users without MetaMask, we embedded Privy wallet — registration via email or SMS. This boosted conversion by 35% in one project.
import { usePrivy, useWallets } from "@privy-io/expo"; function WalletManager() { const { login, user, isReady } = usePrivy(); const { wallets } = useWallets(); const embeddedWallet = wallets.find(w => w.walletClientType === "privy"); if (!user) { return ( <View style={styles.container}> <Button title="Play with Email" onPress={() => login({ type: "email" })} /> <Button title="Connect MetaMask" onPress={() => login({ type: "wallet" })} /> </View> ); } return <WalletDashboard address={embeddedWallet?.address} />; } Mobile UX: Crash Game and biometrics
Vertical layout and large buttons (at least 44pt) are mandatory. For Cash Out in Crash game, we added a shake gesture — this increases engagement by 40% according to our tests.
function CrashGame() { const [multiplier, setMultiplier] = useState(1.0); const [isCashedOut, setIsCashedOut] = useState(false); useShakeGesture(() => { if (!isCashedOut && multiplier > 1.5) { handleCashout(); } }); return ( <SafeAreaView style={styles.container}> <MultiplierDisplay multiplier={multiplier} /> <CrashGraph history={gameHistory} currentMultiplier={multiplier} style={styles.graph} /> <BetPanel style={styles.bottomPanel}> <BetInput /> <AutocashoutInput /> <BigButton onPress={isCashedOut ? undefined : handleCashout} disabled={isCashedOut} style={styles.cashoutButton} > CASHOUT {(betAmount * multiplier).toFixed(4)} ETH </BigButton> </BetPanel> </SafeAreaView> ); } For transactions above a threshold (e.g., 0.5 ETH), we apply biometric authentication — Face ID or Touch ID. This provides both security and regulatory compliance, and 99.9% of transactions are processed under 100ms.
Push notifications and Real-time
We notify about jackpots, cashback accruals, and deposit statuses via Expo Notifications. For real-time games (Crash, Jackpot), we maintain a WebSocket connection with auto-recovery, achieving over 95% uptime.
Comparison of approaches
| Criteria | PWA | React Native (APK/TestFlight) | Native iOS/Android |
|---|---|---|---|
| Installation | Browser | Direct | App stores |
| Moderation | Not required | Partial | License required |
| Push notifications | iOS — no | Yes | Yes |
| Performance | Medium | High | Maximum |
Comparison of embedded wallets
| Criteria | Privy | Dynamic | Magic Link |
|---|---|---|---|
| Registration | Email/SMS | Email/SMS/OAuth | Email/Phone |
| EVM support | Yes | Yes | Yes |
| Non-custodial | Yes | Yes | No |
| Conversion in tests | +35% | +30% | +25% |
What is included in the result?
Detailed deliverables
- Architectural documentation (integration scheme, decision log)
- Source code with comments in TypeScript
- Deployment scripts for smart contracts and web services
- Documentation for launch and administration
- Support for 1 month after launch (bugs, monitoring)
- Training sessions for your team (up to 5 hours)
Our expertise
- 5+ years in Web3 gambling development — we have over 40 completed projects and a 99% client satisfaction rate.
- Certified Solidity engineers and senior React Native developers.
- We guarantee a 6-month post-launch support option.
Process and timeline
- Jurisdiction and licensing analysis — 1 week (starting at $2,000)
- Architecture design — 1-2 weeks
- PWA or React Native development — 4-14 weeks depending on complexity (starting at $15,000)
- Wallet and biometric integration — 2-3 weeks
- Testing and deployment — 2-4 weeks
Contact us for a project evaluation. Get a consultation on your publication strategy and tech stack.







