Setting up earnings
what exists, how to switch it on.
The revenue tools built into the code and how to turn each one on. On a fresh install the fee is off and the fee wallets and prices are 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, 2 % at most, added to 0x and 1inch quotes on EVM chains and to Jupiter quotes on Solana, paid on-chain by the aggregator to your fee wallet. No custom contract. Off by default. | Admin → Monetization |
| PRO subscription | App Store and Google Play subscriptions, or a direct crypto payment you approve. | Stores, Admin |
| Promo codes, trials, campaigns | Growth tools around PRO and the fee. | Admin → Monetization, Campaigns, Users |
| Card on-ramp | The Buy screen opens Transak. Any revenue share is agreed in your contract with Transak. | .env, Admin → Monetization |
Not active in this version
These appear in the admin, marked Not active in this version. They collect nothing and pay nothing. Do not plan around them until a changelog entry says they are active.
| Setting | Where you see it |
|---|---|
| Bridge fee | Admin → Swap Config → Bridge Platform Fee |
| Referral commission and bonus days | Admin → Monetization → Referral Program |
| PRO through Stripe (web checkout) | STRIPE_* variables in functions/.env; leave them empty |
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
- Open Admin → Monetization → Swap Fee Configuration
- EVM fee walletAn 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. - Solana fee walletA Solana address you control. Leave it empty if you do not want a fee on Solana swaps. Before you fill it, read Solana token accounts below.
- 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 %). The maximum is 200 bps (2 %); the admin and the app refuse anything higher. A fresh install starts at Free. - 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 EVM fee wallet as recipient |
| 1inch (EVM) | Sent as the 1inch referrer fee, your EVM fee wallet as referrer |
| Jupiter (Solana) | Sent as the Jupiter platform fee, paid into your Solana fee wallet's token account for the token the user receives |
| 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.
Solana token accounts
On Solana each token sits in its own token account that belongs to a wallet. Jupiter pays your fee in the token the user receives, into your Solana fee wallet's token account for that token. That account must already exist; if it does not, your fee cannot be paid for swaps into that token.
- Create the accounts for the tokens your users swap into most (for example USDC, USDT, wrapped SOL). Receiving a small amount of a token in the fee wallet creates its account in most Solana wallet apps.
- With the Solana command-line tools you can create one directly:
spl-token create-account <token-mint-address> --owner <your-solana-fee-wallet>. - Opening a token account costs a small refundable SOL deposit (rent), paid by whoever creates it.
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; the admin value is what the app displays, so keep them identical.
3 · Web
Stripe web checkout is Not active in this version. The code and the STRIPE_* variables are present; leave them empty. On the web, grant PRO by hand (Admin → Users); the crypto payment below is hidden in the web build. On iOS, digital features must be sold with In-App Purchase (Apple guideline 3.1.1).
4 · Crypto payment (optional)
iOS and Android apps only: the web build does not show the crypto payment. 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 can share a personal code from the app's referral screen. Referral tracking is Not active in this version: Admin → Users has a referral card, but the wallet does not record referrals to the server, so the card stays empty. Commission % and bonus days are Not active in this version: nothing is paid or added automatically. Reward referrers yourself if you wish (for example with Grant PRO).
05Bridge fee
Admin → Swap Config shows the Bridge Platform Fee as not active. The live bridge routes (LI.FI and Mayan) are requested without an integrator fee, so bridging earns you nothing in this version. The changelog will say when that changes.
06Earnings checklist
- EVM fee wallet set to a wallet you control, preset chosen (2 % at most), published.
- Solana fee wallet set, or left empty on purpose; token accounts exist for the tokens users swap into.
- 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 prices.
- Crypto payment wallet set, or the feature turned off.