TVL–
Volume 24h–
Fees (all time)–
Paid to lockers–
Buybacks–
Epoch ends in–

Incentives and cashback

Anyone can fund a weekly campaign for one market in any ERC-20: rewards for its liquidity providers, cashback for its traders, or cashback for referred traders and their referrers. Each week's amounts are computed from public chain data and published as one Merkle root.

Campaign kinds

KindWho earnsHow much
LP rewardsThe market's position ownersThe week's budget, split by in-range liquidity (hourly minimum × value, as in Points)
Trading cashbackEvery trader of the market`rateBps` of the LP fees they paid that week
Referral cashbackTraders bound to a referrer (Referrals contract) and the referrer`rateBps` to the trader, `referrerBps` to the referrer

Cashback is exact and scaled down pro rata only when a week's total is above the budget. Rates are at most 90% of the LP fees (checked on-chain), and each trade's cashback (trader and referrer together) is also capped at 90% of the protocol fee it paid: an LP fee can come back to a trader who holds the liquidity the trade goes through, the protocol fee never does, so trading or self-referring only for cashback always loses money. Cashback pays in one of the market's two tokens. Fees come from each Swap event (input × LP fee), the trader is the transaction sender, and swaps by our own contracts and team wallets never earn.

Lifecycle

  1. createCampaign(market, token, perWeek, start, weeks, kind, rateBps, referrerBps) pulls the whole amount (fee-on-transfer tokens are refused) plus an optional fee (0 at launch, cap 10%).
  2. After each week (Thursday 00:00 UTC) the publisher posts one root for every campaign; claims open 24 hours later. The guardian can cancel a wrong root.
  3. What nobody earned goes back to the funder through the root. stopCampaign refunds every week that has not started.
  4. reclaim returns what is still unclaimed 26 weeks after a week ends.

Fund on Incentives; claim on Portfolio or with the SDK (fetchIncentiveClaims + buildClaimIncentives).