Requirements
tools, versions, accounts.
What you need on your computer, which versions the code expects, and which services cost money.
01Tools and versions
| Tool | Version | Where the code says so |
|---|---|---|
| Flutter (stable) | 3.41 or newer (unchanged in 4.0.0). Built and tested with 3.41.4 | app/pubspec.yaml (flutter: ">=3.41.0") |
| Dart | ^3.7 (comes with Flutter) | app/pubspec.yaml (sdk: ^3.7.0) |
| Android | minSdk 24 (Android 7.0), compileSdk 36, targetSdk 36. Android Studio with Android SDK 36 and JDK 17 or newer; the project uses Android Gradle Plugin 8.11.1, Gradle 8.14 and Kotlin 2.2.20 | app/android/app/build.gradle.kts |
| iOS | iOS 15.0 or newer. A Mac with Xcode 16 or newer and CocoaPods 1.16 or newer | app/ios/Podfile (platform :ios, '15.0') |
| Node.js and npm | 22 | firebase/functions/package.json (engines), firebase/firebase.json (runtime nodejs22), admin/package.json (engines >=22) |
| Firebase CLI | firebase-tools 14 or newer (tested with 15.12.0) (npm i -g firebase-tools) | firebase/README.md |
| FlutterFire CLI | For flutterfire configure | app/lib/firebase_options.dart |
| Java | 21 or newer, only for the Firebase emulators | firebase/README.md |
| Docker | Optional, to run the console in a container | admin/Dockerfile |
Check what you have:
flutter --version
node --version
firebase --version
java -version
02Paid services
Who pays what: the item price buys the source code, the operator console and this documentation, once. Everything in the table below is a third-party service billed to your own account by its provider, on that provider's own terms - the purchase of this item covers none of it, and the author receives none of it. Several are free to open but still need an account the provider has to approve, and two of them (Firebase beyond its free tier, and PayPal's fee on every payout) are charged by usage, so what you pay grows with your app. Check each provider's current pricing yourself before you commit: these docs quote no prices, because the providers change them.
| Service | Why you need it | |
|---|---|---|
| Firebase Blaze (pay-as-you-go) plan | Cloud Functions, Cloud Scheduler and the outbound calls to ad networks and stores only run on Blaze. Google bills usage above the free tier. Set a budget alert in Google Cloud Billing. | Required |
| Google Play developer account | One-time registration fee to publish on Google Play. | Required for Android |
| Apple Developer Program | Yearly membership to publish on the App Store and use Sign in with Apple, push and in-app purchases. | Required for iOS |
| Ad network account | AdMob, Unity Ads or ironSource LevelPlay, or several for a waterfall. Free to open, but each network reviews your app and has its own payout terms. | Required |
| Offerwall and survey providers | AdGem, Lootably, BitLabs, CPX Research: publisher accounts, reviewed by each provider. Only for the providers you turn on. | Optional |
| PayPal Business account with Payouts | Only if you pay cash out by PayPal through the Payouts API. Live Payouts needs PayPal's approval, and PayPal charges fees per payout. You can also pay PayPal requests by hand. | Optional (cash wallet) |
| The money you pay out, and its costs | With the cash wallet on, you pay users their share from your own funds: PayPal balance, your crypto wallet (plus network fees), your bank (plus bank charges) or a gift-card supplier. See Wallet and payouts. | Optional (cash wallet) |
| Legal and tax advice | Paying users real money brings duties such as identity checks, anti-money-laundering rules, tax and consumer law, depending on where you and your users are. See Your legal duties. | Before the cash wallet |
| Hosting for the operator console | Any host that runs Node 22 (a VPS, Render, Railway, Fly, Cloud Run, a container), plus HTTPS and a domain if you want one. Optional Postgres for serverless hosts. | Required |
| Web pages for privacy policy, terms and rewards rules | Stores and ad networks require them. Any hosting works. | Required |
03Accounts you will set up
- A Google account for Firebase and Google Cloud
- One ad network account (you can switch or add more later in the console)
- Offerwall or survey provider accounts, if you want them (Offerwalls and surveys)
- A PayPal developer account and a REST app, only if you use PayPal Payouts (PayPal setup)
- Google Play Console, and Apple Developer Program if you ship iOS
- A Firebase service account key for the console (created in Operator console)