Referrals
The DeepBook referral system allows users to earn fees by referring traders to the platform. Referrers can mint a DeepBookReferral object and traders can associate their BalanceManager with a referral. When traders with an associated referral execute trades, a portion of their trading fees is allocated to the referrer based on the referral multiplier.
How referrals work
- Mint a referral: Anyone can mint a
DeepBookReferralwith a specific multiplier - Set referral: Traders associate their
BalanceManagerwith a referral using aTradeCap - Earn fees: When trades are executed, referral fees are automatically allocated based on the multiplier
- Claim rewards: Referrers can claim their accumulated fees in base, quote, and DEEP tokens
API
Following are the referral-related functions that DeepBook exposes.
Mint a referral
Mint a new DeepBookReferral object with a specified multiplier. The multiplier determines the additional trading fees allocated to the referrer. The multiplier must be a multiple of the base referral multiplier and cannot exceed the maximum allowed multiplier.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.Update referral multiplier
Update the multiplier for an existing referral. Only the referral owner can update the multiplier. The new multiplier must meet the same requirements as when minting a referral.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.Claim referral rewards
Claim accumulated referral fees. Only the referral owner can claim rewards. Returns three Coin objects representing the accumulated fees in base asset, quote asset, and DEEP tokens.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.Get referral balances
View the current accumulated balances for a referral without claiming them. Returns the amounts in base, quote, and DEEP tokens.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.BalanceManager referral functions
These functions are available on the BalanceManager to associate or disassociate a referral.
Set referral
Associate a BalanceManager with a referral. Requires a TradeCap to authorize the operation. Once set, all trades executed by this balance manager will generate referral fees according to the referral's multiplier.
packages/deepbook/sources/balance_manager.move. You probably need to run `pnpm prebuild` and restart the site.Unset referral
Remove the referral association from a BalanceManager. Requires a TradeCap to authorize the operation. After unsetting, trades will no longer generate referral fees.
packages/deepbook/sources/balance_manager.move. You probably need to run `pnpm prebuild` and restart the site.Get referral ID
Retrieve the referral ID currently associated with a BalanceManager, if any. Returns Option<ID> which is none if no referral is set.
packages/deepbook/sources/balance_manager.move. You probably need to run `pnpm prebuild` and restart the site.Get referral owner
Get the owner address of a referral object.
packages/deepbook/sources/balance_manager.move. You probably need to run `pnpm prebuild` and restart the site.Events
ReferralClaimed
Emitted when a referral owner claims their accumulated fees.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.ReferralFeeEvent
Emitted when referral fees are allocated during trade execution.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.Related links
The DeepBookV3 repository on GitHub.