Setting up earnings
what exists, how to switch it on.
The revenue tools built into the code and how to turn each one on. The fee wallet and the prices ship empty, so nothing is collected until you set them.
01What exists in the code
| Tool | How it works | Set it in |
|---|---|---|
| Swap fee | A percentage added to 0x and 1inch quotes on EVM chains, paid on-chain to your wallet by the aggregator. No custom contract. | Admin → Monetization |
| PRO subscription | App Store and Google Play subscriptions, Stripe on the web, or a direct crypto payment you approve. | Stores, Stripe, Admin |
| Promo codes, trials, campaigns | Growth tools around PRO and the fee. | Admin → Monetization, Campaigns, Users |
| Bridge fee | A setting exists; read the note before you rely on it. | Admin → Swap Config |
| Card on-ramp | The Buy screen opens Transak. Any revenue share is agreed in your contract with Transak. | .env, Admin → Monetization |
These are tools, not results. What you earn depends on your users, their volume, your prices and your market. Check the rules on crypto services, subscriptions and taxes where you and your users are before you charge anything.
02Swap fee on 0x and 1inch
- Open Admin → Monetization → Swap Fee Configuration
- Fee Wallet AddressAn EVM address you control:
0x+ 40 hex characters. The same address receives fees on every EVM chain you offer, so use a wallet you can open on all of them. A hardware wallet or multisig is a good idea. - Pick a presetFree, 0.10, 0.15, 0.20, 0.30, 0.50, 1.0 or 2.0 %. Stored as basis points (
fee_bps, 100 bps = 1 %). - PRO users fee waiverOn: PRO subscribers swap without your fee. Off: everyone pays it.
- Apply Fee Config, then Publish to mobile app
| Route | How your fee is attached |
|---|---|
| 0x (EVM) | Sent as the 0x swap fee, your wallet as recipient |
| 1inch (EVM) | Sent as the 1inch referrer fee, your wallet as referrer |
| Jupiter (Solana) | Not collected Jupiter pays fees only into a Solana fee account. This version of the admin accepts one EVM fee wallet and offers no Solana fee account, so Solana swaps do not carry your fee. |
| Other routes (Uniswap V2-style routers, Tron, Sui) | Not collected |
The swap screen shows the fee, price impact and minimum received before the user confirms.
Example, not a forecast
| Swap size | 0.10 % | 0.30 % | 1.0 % |
|---|---|---|---|
| $100 | $0.10 | $0.30 | $1.00 |
| $1,000 | $1.00 | $3.00 | $10.00 |
Tracking
After each swap the app calls recordFeeEvent; aggregateFeeStats rolls the records up every night (02:00 UTC). You see them in Revenue, Overview and Analytics. The records are reporting only — the money is already in your fee wallet; check it on a block explorer.
03PRO subscription
1 · Create the product in the stores
- Pick one product IDFor example
com.yourcompany.wallet.pro.weekly. Use the same ID in both stores. - App Store ConnectYour app → Monetization → Subscriptions → a group and an auto-renewable weekly subscription with that ID. Set the price.
- Google Play ConsoleYour app → Monetize → Subscriptions → the same ID with one weekly base plan. Set the price.
- Put the ID in both configs
IAP_PRO_WEEKLY_IDin the app's.envandPRO_WEEKLY_PRODUCT_IDinfunctions/.env. - Turn on purchase checksFill the App Store and Google Play variables in
functions/.env(table) and redeploy the functions.
2 · Show the price
Admin → Monetization → PRO Pricing: weekly price in EUR and trial days. Customers pay what you set in the store or Stripe; the admin value is what the app displays, so keep them identical.
3 · Web: Stripe
Create a product with a weekly recurring price in Stripe, set STRIPE_SECRET_KEY and STRIPE_WEEKLY_PRICE_ID in functions/.env, deploy. Subscribers manage or cancel through the Stripe portal. Web only — on iOS, digital features must be sold with In-App Purchase (Apple guideline 3.1.1).
4 · Crypto payment (optional)
Admin → System Config → Crypto PRO Payment: your receiving wallet, token (ETH, USDT, USDC), chain ID, amount in EUR, confirmations, validity. When a user pays, check the transaction hash in Admin → Users → Crypto PRO Payments, then approve or reject.
04Promo codes, trials, campaigns, referrals
- Promo Codes (Monetization): free months or a discount, with a use limit. The app checks each code with
validatePromoCodeand shows the user what it is worth. Store subscriptions are charged by Apple and Google, so honour a discount with a matching offer code in the store, or grant PRO by hand. - Manual PRO (Users): grant, revoke or start a 24-hour trial for one person — useful for support, partners and store reviewers.
- Campaigns: zero-fee or reduced-fee periods and PRO trials for a target group.
- Referral Program: users share a personal code from the app's referral screen. The commission % and bonus days you set are saved in your config, but in this version neither the app nor the backend pays a commission or adds bonus days automatically; handle rewards yourself (for example with Grant PRO).
05Bridge fee
Admin → Swap Config → Bridge Platform Fee saves a percentage and the app includes it in its own bridge estimates. The live bridge routes in this version (LI.FI and Mayan) are requested without an integrator fee, so the setting does not send income to your wallet on those routes. Treat it as not earning until a changelog entry says otherwise.
06Earnings checklist
- Fee wallet set to a wallet you control, preset chosen, published.
- A small test swap on a cheap EVM chain shows your fee and it arrives in your wallet.
- The swap appears in Admin → Revenue (totals after the nightly roll-up).
- PRO product created in both stores with the same ID as
IAP_PRO_WEEKLY_ID. - Purchase-check variables set in
functions/.env, functions redeployed. - Admin price matches the store and Stripe prices.
- Crypto payment wallet set, or the feature turned off.