Skip to main content

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

  1. Mint a referral: Pool creators or authorized users can mint a DeepBookReferral with a specific multiplier
  2. Set referral: Traders associate their BalanceManager with a referral using a TradeCap
  3. Earn fees: When trades are executed, referral fees are automatically allocated based on the multiplier
  4. 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 what percentage of trading fees are allocated to the referrer. The multiplier must be a multiple of the base referral multiplier and cannot exceed the maximum allowed multiplier.

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.

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.

Get referral balances

View the current accumulated balances for a referral without claiming them. Returns the amounts in base, quote, and DEEP tokens.

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.

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.

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.

Get referral owner

Get the owner address of a referral object.

Events

ReferralClaimed

Emitted when a referral owner claims their accumulated fees.

ReferralFeeEvent

Emitted when referral fees are allocated during trade execution.

DeepBookV3 repository

The DeepBookV3 repository on GitHub.