Referrals and Fees#
What Seesaw charges you to trade, who gets that money, and how referrals work
— in plain English. If you're a developer building against the fee system,
the technical reference is at
docs/sdk/referral-and-creator-fees.
What the fee actually costs you#
Seesaw charges a fee only on trades that fill immediately against the order book (called a taker fee). If your order rests on the book and someone else matches against it, you pay nothing.
The fee depends on the price of the fill. Trades at coin-flip prices pay the most; trades at very confident prices pay almost nothing.
The formula:
fee_bps(price) = min(fee_cap_bps, floor(decay_rate_bps × (10000 − price) / 10000))
With the shipped defaults —
fee_cap_bps = 200 (2%), decay_rate_bps = 400 —
the fee in basis points at a given fill price is:
| Fill price | What it means | Fee (bps) | Fee (%) |
|---|---|---|---|
| 5000 bps (50%) | Pure coin flip | 200 bps | 2.00% |
| 6000 bps (60%) | Slight lean | 160 bps | 1.60% |
| 6666 bps (≈ 67%) | Reasonably confident | 133 bps | 1.33% |
| 8000 bps (80%) | Confident | 80 bps | 0.80% |
| 9000 bps (90%) | High confidence | 40 bps | 0.40% |
| 9500 bps (95%) | Very high confidence | 20 bps | 0.20% |
| 9900 bps (99%) | Near certainty | 4 bps | 0.04% |
The cap applies at prices ≤ 5000 bps (50%) — any trade at even odds or below pays the flat 2% cap. Above that, the fee decays linearly toward zero.
Fee amounts round up to the smallest settlement-token unit. Recipient allocations round down, and the protocol receives the exact fee remainder. Vault dust at market teardown is a separate accounting flow.
The app shows the exact fee in the order preview before you sign.
Where the fee goes#
The shipped configuration allocates each taker fee across four legs:
<!-- src: program/src/logic/fee.rs:168 FeeSplit4::TARGET --> <!-- F-01: update with builder fee allocation -->| Slice | Who gets it | Why |
|---|---|---|
| 50% | Protocol treasury | Funds development, infrastructure, security work |
| 5% | Market creator | The person who set up the market |
| 5% | Your referrer | Your eligible referrer; otherwise the protocol treasury |
| 40% | Maker rebate | The resting maker, when the fill meets the resting-age gate |
On a $2.00 fee (for example, $100 of notional filled at a 50% share price under the shipped curve), with an eligible referrer and maker:
- $1.00 → protocol treasury
- $0.10 → market creator
- $0.10 → your referrer
- $0.80 → the maker's per-market free-funds balance
You pay the same total either way. Having an eligible referrer redirects the
referral slice from the protocol to the person who introduced you. An ineligible
maker receives no rebate, and that unused allocation remains with the protocol.
Maker rebates are credited to TraderLedger.quote_free and withdrawn with
WithdrawFunds; they are not sent directly to the maker's wallet on each fill.
What's a referrer?#
A referrer is someone who invited you to Seesaw. With the shipped split, they earn 5% of every taker fee you pay during the 365-day earning window. The first-touch binding is permanent: after earning expires, you cannot pick a replacement.
Set your referrer once by either:
- Tapping a referral link (e.g.
https://seesaw.markets/r/<wallet>) and connecting your wallet, or - Going to Settings → Referrer and pasting a wallet address.
After you set it, nobody can change it on your behalf and you cannot replace it later. It earns for 365 days. You also can't set yourself as your own referrer — the protocol blocks that.
If you don't have an eligible referrer, the referral slice flows to the protocol treasury in addition to its own allocation.
How to refer other people#
Anyone can refer. No signup, no minimum.
- Open the Referrals tab.
- Copy your personal referral link.
- Share it — DM, social post, group chat, wherever.
- When someone new opens your link and connects their wallet, the protocol records you as their referrer.
- During the earning window, the configured referral share of each taker fee is retained as a market-local pending amount, then becomes claimable in your Referrer Earnings account after permissionless rollup.
Where your referral earnings show up#
In the Referrals tab:
- Earnings to date — total accumulated since you started referring.
- Claimable now — the rolled-up amount you can withdraw right now.
- People you've referred — wallets that picked you.
Tap Claim to send the accumulated stablecoin to your wallet in one transaction. There's no minimum, but claiming costs a tiny bit of SOL.
Illustrative referral earnings#
Suppose 10 eligible referrals each trade $1,000 of notional per day. If their aggregate fees are $50–$200 per day, the shipped referral share gives:
<!-- src: program/src/logic/fee.rs:168 FeeSplit4::TARGET.referral_bps -->| Volume across your referrals | Assumed aggregate fee | Your 5% slice |
|---|---|---|
| $10,000 / day | $50–$200 / day | $2.50–$10 / day |
| $300,000 / 30 days | $1,500–$6,000 / 30 days | $75–$300 / 30 days |
This is arithmetic under stated assumptions, not a forecast. Actual earnings depend on filled notional, fill prices, current fee settings, eligibility, and rounding.
Fee parameter bounds#
Fee settings are admin-tunable but bounded on-chain:
| Parameter | Current default | Hard maximum |
|---|---|---|
| Fee cap | 200 bps (2%) | 500 bps (5%) |
| Decay rate | 400 bps | 1000 bps |
| Rate limit on changes | — | 1 change per hour |
Changes are prospective only — they affect future fills, including fills against already-resting orders, without recalculating past trades. The app shows the current fee in the order preview before you sign.
Common questions#
Do I lose my referrer if I switch wallets? The referrer is tied to the wallet that set it. A new wallet starts fresh.
Can a referrer see my individual trades? They see aggregate earnings from you, not individual positions. On-chain history is public (your wallet address and transaction record), but that's true for any Solana wallet.
Can the market creator and referrer be the same person? Yes — you collect both slices independently if you created the market and also referred the traders in it.
When do fees land for referrers to claim? Each fill records the referral amount immediately in that market. A permissionless keeper then rolls it into your bound treasury shard and earnings account; it becomes claimable after that rollup. Rollup does not need to wait for market resolution.
Pending referral fees have a terminal cleanup deadline. Seven days after a market resolves, permissionless position closure may reclassify any amount that was never rolled up to market-creator fees. Referrers and keepers should roll up pending amounts before that grace period ends.
Why is the fee higher at coin-flip prices? The fee curve design rationale is explained in Treasury and Fee Split.
Next steps#
- Creating Your Own Market — how creator fees accrue and how to claim them
- Placing Orders — order book details and the fee preview in the order form
- Risks — fee parameter changes and other things to know
- How funds flow through the protocol
Technical reference#
| Mechanism | Instruction |
|---|---|
| Set referrer (permanent first-touch; earns 365 days) | SetReferrer (0x21) |
| Create referrer earnings account | InitReferrerEarningsAccount (0x22) |
| Roll pending referral fees | RollupReferralFees (0x36) |
| Provision referral treasury shard | InitializeReferrerTreasuryShard (0x37) |
| Claim creator fees | ClaimCreatorFees (0x23) |
| Claim referrer earnings | ClaimReferrerEarnings (0x24) |
| Update fee curve (admin, rate-limited) | UpdateFeeConfig (0x1F) |