Setting up earnings
what exists, how to switch it on.
TIDE has one revenue mechanism: a percentage of each swap, taken by Jupiter when the trade executes and paid into a wallet you own. You can give part of it back through referrals and volume cashback. Everything is off in the build you receive.
01What exists in the code
| Tool | How it works | Set it in |
|---|---|---|
| Swap fee | A rate of up to 2 % (200 bps). Sent to Jupiter as platformFeeBps with your fee account; Jupiter settles it on-chain. TIDE never holds it. | Operator panel → Swap fee |
| Referral programme | A share of the fee from a referred trade is recorded for the code owner. 1 or 2 tiers. | Operator panel → Referrals |
| Volume cashback | A trader with enough 30-day volume is credited a share of their own fee. 1 or 2 bands. | Operator panel → Cashback |
| Payout ledger | A local record of what each participant accrued, exported as CSV. TIDE moves no money; you settle. | Earn screen |
Not active in this version
| Setting | Why |
|---|---|
| EVM fee wallet | No EVM quote source is wired, so nothing is charged on Base. |
| Fee minimum (USD) | Jupiter takes only a percentage, so a minimum cannot be collected (below). |
These are tools, not results. What you earn depends on how many people use your app and how much they swap. Referral and cashback amounts are a share of fees actually charged; they are not a yield, not an investment and not a promise of any amount, and the app says so where it shows them.
02Set the swap fee first
Nothing else on this page matters until the fee is collecting: there is nothing to pay referrers from.
- Open the panelSettings → Operator panel → Swap fee — what you earn.
- Switch on Charge a swap fee
- Set Fee rate (bps)100 = 1.00 %. The code maximum is 200. Above 100 the panel warns you but allows it.
- Paste your Solana fee walletA normal Solana wallet address you control.
- Leave Fee minimum empty
- Save and applyThen run a small swap and check the confirm sheet: App fee shows the rate and amount above the button.
Until the switch, the rate and a valid wallet are all set, TIDE charges nothing. Not a reduced fee: nothing. The fee guard also blocks a wallet that is malformed or still looks like a placeholder, and a rate above its cap; the reason appears in the panel and under Settings → About.
03Where the fee lands
Jupiter takes the fee in the token the user receives and pays it into your wallet's associated token account for that token. TIDE derives that address from your wallet and the output token (lib/core/swap/jupiter_fee_parameters.dart).
A token account must exist before it can receive anything. Create your wallet's token accounts for the tokens users usually buy (for example USDC and wrapped SOL) by receiving a small amount of each, or with spl-token create-account <mint> --owner <your-wallet>. What Jupiter does with a fee account that does not exist was not tested for these docs (unverified); test one small swap per token before you rely on it.
04About the fee minimum
The Fee minimum (USD) field exists in the configuration format, but TIDE sends Jupiter only a percentage and Jupiter has no fixed-minimum mechanism. Leave it at zero; the panel tells you the same if you set one. If small trades should carry more, raise the rate.
05Referrals
Every user gets a referral code. When someone trades through a code, a share of the fee from that trade is recorded for the code owner.
| Setting | Range |
|---|---|
| Tiers | 0, 1 or 2. Two is the maximum in code. |
| Tier 1 share | Up to 5000 bps (50 %) of the fee |
| Tier 2 share | Up to 1000 bps (10 %) of the fee |
| Payout threshold (USD) | Accrued amounts below this are not claimable, which keeps dust out of your settlement. |
Switch on Run a referral programme and the referral_enabled switch in Features. The flag is your master switch: turn it off to stop a live programme without losing its settings. Referral links use tide://ref/<code> and https://<TIDE_HOST>/r/<code> (deep links).
06Volume cashback
Up to two bands. Each has a name, a threshold in 30-day traded volume (USD) and a rebate of up to 3000 bps (30 %) of the fee. The threshold is traded volume, not fees: a trader who swaps $50,000 in a month has $50,000 of volume. Switch on Pay volume cashback and the cashback_enabled flag.
07The arithmetic
fee charged = trade value × rate
tier 1 payout = fee × tier 1 share
tier 2 payout = fee × tier 2 share # only with 2 tiers and a second code
cashback = fee × rebate for the trader's 30-day volume
you keep = fee − all of the above
- The rate cannot exceed 200 bps.
- All payouts from one fee together stop at 6000 bps (60 %). You keep at least 40 % of every fee.
- If your settings add up to more, referrers are paid first and the trader's cashback is cut. The panel warns you before you save such a combination, and a cut row still records what was owed next to what was paid.
- The ledger is credited with the fee amount Jupiter reported; nothing is accrued when that amount could not be measured.
Worked example
Rate 100 bps. Tier 1 at 3000 bps, no tier 2. One cashback band: $25,000 of 30-day volume gives 1000 bps back. A referred trader in that band swaps $2,000:
fee charged $20.00
tier 1 $6.00 # 30 % of the fee
cashback $2.00 # 10 % of the fee
you keep $12.00 # 60 % of the fee
08Settling payouts
The payout ledger lives on each user's device. The Earn screen shows what a user accrued and copies the ledger as CSV. That CSV is what you settle from; how and how often you pay is your own process. Rows carry a one-way participant ID, never a wallet address. TIDE has no server that holds funds or moves money.
09When none of it is configured
The app works completely: users swap, follow wallets and read the feed. No fee is quoted or charged, the confirm sheet says App fee: None, the Earn screen says no programme is running, and nothing is accrued. That is the shipped state, and a valid one to publish in.