Credits
and third-party licenses.
Watch And Earn is built on open-source packages and the ad networks' SDK plugins. Each keeps its own license. The full list of resolved packages is in THIRD-PARTY-LICENSES.md.
01Summary
The open-source packages in the app, the Functions and the console are under permissive licenses (MIT, BSD, Apache-2.0, ISC, 0BSD), with two exceptions under MPL-2.0, below. No GPL or AGPL packages; two Linux-only MPL-2.0 dependencies (dbus, nm), used unmodified. The full list with versions: THIRD-PARTY-LICENSES.md.
The app uses connectivity_plus (for the VPN signal). Its Linux implementation (connectivity_plus_linux.dart) depends on dbus 0.8.0 and nm 0.6.0, both MPL-2.0, which flutter pub get resolves as transitive dependencies (app/pubspec.lock). They are Linux-only dependencies of connectivity_plus: they are not compiled into the Android, iOS or web builds of this app, and the package uses them unmodified. MPL-2.0 is a file-level copyleft: if you modify those packages' files and distribute them, you must publish those modified files under MPL-2.0. Using them unmodified asks nothing more of you than keeping their notices.
The app bundles two open-source fonts, Bricolage Grotesque and Inter, under the SIL Open Font License 1.1 (below), and no third-party images. The operator console ships the Geist and Geist Mono fonts (SIL Open Font License 1.1, The Geist Project Authors) and a prebuilt UI bundle with React and React DOM (MIT) and Lucide icons (ISC) in admin/packages/admin-kit/ui/assets/, with the full font licence texts beside them (Geist-OFL.txt, GeistMono-OFL.txt); all are listed in THIRD-PARTY-LICENSES.md. App icons are Flutter's Material Icons (Apache-2.0); the app logo, the cosmetic avatars, frames and themes, the mini-game illustrations (all drawn in code) and the screenshots are our own.
02Fonts in the app 4.0
| Font | Copyright | License | Files |
|---|---|---|---|
| Bricolage Grotesque (variable) | © 2022 The Bricolage Grotesque Project Authors (github.com/ateliertriay/bricolage) | SIL Open Font License 1.1 | app/assets/fonts/BricolageGrotesque.ttf, licence text app/assets/fonts/BricolageGrotesque-OFL.txt |
| Inter (variable) | © 2020 The Inter Project Authors (github.com/rsms/inter) | SIL Open Font License 1.1 | app/assets/fonts/Inter.ttf, licence text app/assets/fonts/Inter-OFL.txt |
The OFL allows using, modifying and redistributing the fonts with your app; the font files may not be sold on their own, and the licence text must stay with them. How to replace them: Design and theming.
03App (Flutter, from pub.dev)
| Package | Version | License |
|---|---|---|
| firebase_core, firebase_auth, cloud_firestore, cloud_functions, firebase_app_check, firebase_messaging | 4.15.0, 6.7.0, 6.10.0, 6.5.0, 0.4.8, 16.7.0 | BSD |
| google_mobile_ads | 9.0.0 | Apache-2.0 |
| unity_ads_plugin | 0.5.0 | MIT (community plugin) |
| unity_levelplay_mediation | 9.3.0 | Unity Advertising Terms, see below |
| in_app_purchase | 3.3.1 | BSD |
| provider | 6.1.5+1 | MIT |
| shared_preferences, url_launcher, share_plus, package_info_plus, intl | 2.5.5, 6.3.3, 13.3.1, 10.2.2, 0.20.2 | BSD |
| device_info_plus | 13.3.0 | BSD-3-Clause |
| connectivity_plus | 7.3.2 | BSD-3-Clause (its Linux code pulls in dbus and nm, MPL-2.0) |
| crypto | 3.0.7 | BSD-3-Clause |
| clock | 1.1.2 | Apache-2.0 |
| flutter_localizations | Flutter SDK | BSD-3-Clause (part of Flutter) |
| cupertino_icons | 1.0.9 | MIT |
04Ad network SDKs
unity_levelplay_mediation is © ironSource Ltd. and is made available under the Unity Advertising Terms of Service as a "Service Asset". It is not included in the download: app/pubspec.yaml declares it and flutter pub get fetches it from pub.dev, so you accept Unity's terms directly when you use it.
The native SDKs that the Flutter plugins pull in when you build (Google Mobile Ads, Unity Ads, ironSource) come under each network's own terms. Opening an account with a network means accepting its publisher terms.
Redistribution and per-buyer obligations
None of the ad network plugins or native SDKs is copied into this package. app/pubspec.yaml only names them; flutter pub get, Gradle and CocoaPods download them on your computer when you build. So the item does not redistribute any SDK, and nothing in it needs a per-buyer licence from a network.
| Plugin (pub.dev) | Publisher | Licence | Selling this template | What you accept as a buyer |
|---|---|---|---|---|
google_mobile_ads 9.0.0 | Google (googleads-mobile-flutter) | Apache-2.0 | Allowed; not bundled | AdMob terms and policies with your own AdMob account |
unity_ads_plugin 0.5.0 | Pavel Zaichyk (community plugin) | MIT | Allowed (MIT); not bundled | Unity Ads terms with your own Unity account, which cover the native Unity Ads SDK it downloads |
unity_levelplay_mediation 9.3.0 | ironSource Ltd. (Unity) | Unity Advertising Terms of Service ("Service Asset") | Not redistributed: fetched from pub.dev by you | Unity's terms, directly, when you use it |
No author ad ids in the code
The package contains no AdMob publisher id, Unity game id or LevelPlay app key of the author. Every AdMob id in the source is one of Google's public test ids, publisher ca-app-pub-3940256099942544: the default units in app/lib/ads/ad_adapter.dart, the app ids in app/android/app/src/main/AndroidManifest.xml and app/ios/Runner/Info.plist, and two test fixtures in admin/test/. The Unity and LevelPlay ids are empty until you enter yours in the console. Replace the AdMob app ids in the manifest and Info.plist with your own before release (Ads, Release). You can check it yourself:
grep -rnoE "ca-app-pub-[0-9]+" app admin firebase --exclude-dir=node_modules | grep -v 3940256099942544 # prints nothing
The offerwall and survey providers (AdGem, Lootably, BitLabs, CPX Research) ship no code in this package. The app opens their web walls, and their own publisher terms apply. PayPal ships no code here either: the Functions call the PayPal REST API, and PayPal's own terms apply to your account.
05Cloud Functions and console (from npm)
The PayPal integration uses PayPal's REST API directly, with no PayPal SDK.
| Package | License |
|---|---|
| firebase-admin, google-auth-library | Apache-2.0 |
| firebase-functions | MIT |
| jose | MIT |
| hono, @hono/node-server | MIT |
| better-sqlite3, pg, tsx | MIT |
The console's admin framework, the MIKODES Admin Kit (admin/packages/admin-kit/), is the author's own code written for this item and is covered by your item license, like the rest of the source (admin/packages/admin-kit/LICENSE.md). It is not a third-party package and is not published on npm.
06Your license
All code in the package that is not listed above as a third-party package (the app, the Cloud Functions, the console and the Admin Kit) is the author's original work and is licensed to you under the Envato licence you bought. LICENSE.md in the package root says so, and every package.json of that code points to it with "license": "SEE LICENSE IN LICENSE.md". Their "private": true only stops npm from publishing the folders by accident; it does not limit your rights.
The item is sold under the Envato Market licenses. A Regular License covers one end product that end users are not charged for; an Extended License covers one end product that end users are charged for. Read the license terms to choose the right one; in-app purchases and subscriptions are a factor in that choice.