ALGX Liquidity Rewards Program

Updated: December 23rd, 2022

Overview

This program incentivizes users to provide high quality liquidity to the Algodex platform.

The Mainnet rewards program is available to users who trade or have traded verified asset pairs on Algodex. The Mainnet rewards is currently in version 2, and is ongoing.

Users can sign up for rewards on rewards.algodex.com. After a user connects their wallet, they will be eligible to receive rewards distributions, as well as view rewards earned in historical periods.

Users who have high market maker uptimes and keep orders close to the current bid/ask spread will receive the most rewards. Total liquidity is a factor, however it is weighted less as a factor in the calculation of rewards.

Liquidity Rewards Formula

Liquidity provider performance is calculated on a minute-by-minute basis using random sampling and is aggregated into a score (QMARKETQ_{MARKET}) for a given asset pair. Scores of asset pairs are then aggregated into a QFINALQ_{FINAL} score that depicts a users score across all assets. Liquidity providers earn weekly rewards based on their relative QFINALQ_{FINAL} proportion per week.

QMARKET=SpreadGrade×N=110,080{QMIN(N)=[BidDepth1Spread1+BidDepth2Spread2+...+BidDepthNSpreadN,AskDepth1Spread1+AskDepth2Spread2+...+AskDepthNSpreadN]}0.5×[N=110,080Count(QMIN(N)>0)]5Q_{MARKET} = SpreadGrade \times \sum_{N=1}^{10,080}\{Q_{MIN(N)}=[\frac {BidDepth_{1}}{Spread_{1}}+\frac {BidDepth_{2}}{Spread_{2}}+...+\frac {BidDepth_{N}}{Spread_{N}},\frac {AskDepth_{1}}{Spread_{1}}+\frac {AskDepth_{2}}{Spread_{2}}+...+\frac {AskDepth_{N}}{Spread_{N}}] \}^{0.5}\times[\sum_{N=1}^{10,080}Count(Q_{MIN(N)}>0)]^{5}

×[ALGX]0.2×[N=110,080(ProvidedLiquidityNAssetLiquidityNProvidedLiquidityN+...+ProvidedLiquidityNAssetLiquidityNProvidedLiquidityN)]0.3×AssetGrade×GlobalAlgorandDEXLiquidity0.65\times [ALGX]^{0.2} \times[\sum_{N=1}^{10,080}(\frac{ProvidedLiquidity_{N}}{AssetLiquidity_{N}-ProvidedLiquidity_{N}}+...+\frac{ProvidedLiquidity_{N}}{AssetLiquidity_{N}-ProvidedLiquidity_{N}})]^{0.3}\times AssetGrade \times GlobalAlgorandDEXLiquidity^{0.65}

QMARKET=SpreadTier×QPERIOD0.5×UptimePERIOD5×ALGX0.2×LiquidityShare0.3×AssetGrade×GlobalAlgorandDEXLiquidity0.65Q_{MARKET} = SpreadTier \times {Q_{PERIOD}}^{0.5} \times {Uptime_{PERIOD}}^{5} \times ALGX^{0.2} \times LiquidityShare^{0.3} \times AssetGrade \times GlobalAlgorandDEXLiquidity^{0.65}

Liquidity Rewards Details

Variable/Term

Description

BidDepthBidDepth

The BidDepthBidDepth at a given price is defined as BidDepth=OrderVolume×BidPriceBidDepth = OrderVolume \times Bid Price.

AskDepthAskDepth

The AskDepthAskDepth at a given price is defined as AskDepth=OrderVolume×AskPriceAskDepth = OrderVolume \times Ask Price.

SpreadSpread

The SpreadSpread is the difference between the bid and ask prices.

QMINQ_{MIN}

QMINQ_{MIN} is calculated every minute and rewards 2-sided liquidity by taking the minimum of QBIDQ_{BID} and QASKQ_{ASK}.

QBIDQ_{BID}

Calculated every minute using random sampling. QBID=BidDepth1Spread1+BidDepth2Spread2+...+BidDepthNSpreadNQ_{BID}=\frac {BidDepth_{1}}{Spread_{1}}+\frac {BidDepth_{2}}{Spread_{2}}+...+\frac {BidDepth_{N}}{Spread_{N}}

QASKQ_{ASK}

Calculated every minute using random sampling. QASK=AskDepth1Spread1+AskDepth2Spread2+...+AskDepthNSpreadNQ_{ASK}=\frac {AskDepth_{1}}{Spread_{1}}+\frac {AskDepth_{2}}{Spread_{2}}+...+\frac {AskDepth_{N}}{Spread_{N}}

ALGXALGX

Users must hold a minimum balance of 3,000 ALGX to accumulate rewards. Users that hold over 3,000 ALGX earn additional rewards according to the formula (ALGX0.2ALGX^{0.2}). This applies to Mainnet Version 2 only.

SpreadTierSpreadTier

Users will receive a multiplier based on the grade their spread is in. This is described in further detail under the "Initial Maximum Spreads" section. This only applies to Mainnet Version 2.

QPERIODQ_{PERIOD}

The sum of all QMINQ_{MIN} in a given period (1 week). QPERIOD=N=110,080(QMIN)NQ_{PERIOD}=\sum_{N=1}^{10,080} (Q_{MIN})_{N}.

UptimePERIODUptime_{PERIOD}

The time in a period that a given market maker was live and quoting on both the bid and ask sides with order sizes greater than the stated order minimum and spreads smaller than the stated maximum spread. Multiplying this factor by QPERIODQ_{PERIOD}normalizes it to account for uptime. An exponent of 5 is applied to UptimePERIODUptime_{PERIOD} to greatly incentivize users to be as active as possible. For more about the UptimePERIODUptime_{PERIOD} requirements, see the FAQ.

QMARKETQ_{MARKET}

The score assigned to an individual address for a given market in one week.

QFINALQ_{FINAL}

The final score assigned to an individual address for all eligible asset pairs in one week. It is the sum of all QMARKETQ_{MARKET}'s for an individual address in a given week.

LiquidityShareLiquidityShare

Calculated every minute using random sampling. The sum ofProvidedLiquidityProvidedLiquidity over AssetLiquidityAssetLiquidity. This factor incentivizes users to provide liquidity to less-liquid pairs on Algodex. N=110,080(ProvidedBidLiquidity1AssetBidLiquidity+ProvidedAskLiquidity1AssetBidLiquidity+...+ProvidedBidLiquidityNAssetBidLiquidity+ProvidedAskLiquidityNAssetBidLiquidity)\sum_{N=1}^{10,080}(\frac{ProvidedBidLiquidity_{1}}{AssetBidLiquidity}+\frac{ProvidedAskLiquidity_{1}}{AssetBidLiquidity}+...+\frac{ProvidedBidLiquidity_{N}}{AssetBidLiquidity}+\frac{ProvidedAskLiquidity_{N}}{AssetBidLiquidity})

AssetLiquidityAssetLiquidity

The total amount of liquidity on a given asset either on the bid or ask side.

ProvidedLiquidityProvidedLiquidity

The amount of liquidity a user provides to any given asset on either the bid or ask side. Limit orders that are not immediately filled with an existing order on the order book. Calculated every minute using random sampling.

AssetGradeAssetGrade

Certain markets that are unrestricted in the US and Canada will receive a multiplier of 3×3\times. Providing liquidity to the ALGX/ALGO pair will receive a multiplier of 2×2\times. Other asset pairs will not receive a multiplier. More details on multipliers can be found here.

GlobalAlgorand...GlobalAlgorand...

GlobalAlgorandDEXLiquidityGlobalAlgorandDEXLiquidity takes the absolute amount of an asset's TVL (sourced from Vestige.fi and is observed at the time rewards are calculated). This incentivizes users to provide liquidity to larger, well-known projects.

Minimum Depth

Orders below a certain minimum depth size per market are excluded. The US dollar amounts are calculated by applying the current ALGO-USD exchange rate.

(in $USD)

Minimum BidDepth

Minimum AskDepth

Mainnet Version 1

$15

$30

Mainnet Version 2

$50

$100

Initial Maximum Spreads

Orders above a maximum mid-market spread will be excluded. QASKQ_{ASK} and QBIDQ_{BID} will not be generated when the spread is above a given market's maximum spread. The initial maximum spreads are listed below and are subject to change. Spreads are measured in basis points (bps). One basis point is one-hundredth of one percent.

For Mainnet Version 1 the maximum spreads are 1000 bps (10%).

Mainnet Version 2 is broken up into grades and are applied to each order:

SpreadTierSpreadTier

Range

Multiplier

A

0-50 bps (0%-0.5%)

10×10\times

B

51-100 bps (0.51%-1%)

2.5×2.5\times

C

101-500 bps (1.01%-5%)

1×1\times

Liquidity Rewards Tiers & Corresponding Rates

Tier

Date Range

Amount

Tier 1

February 10 - February 24 [0-2 weeks]

18,000,000 ALGX per week

Tier 2

February 25 - April 29 [3-12 weeks]

9,000,000 ALGX per week

Tier 3

April 30 - Present

3,819,600 ALGX per week

These rates apply to both versions of the Mainnet reward plans.

Reward Calculation

QFINALQ_{FINAL} is the final score assigned to an individual address for all eligible asset pairs. It is taken by summing up all QMARKETQ_{MARKET} scores for a user. The rewards are distributed based on a simple formula:

Reward=QFINALQPLATFORM×TierRate×360,000,000Reward = \frac{Q_{FINAL}}{Q_{PLATFORM}}\times TierRate \times 360,000,000

QPLATFORMQ_{PLATFORM} is the sum of all users QFINALQ_{FINAL} scores for the platform in a given period.

TierRateTierRate is the rate described above (5%, 2.5%, 1.061%) which varies depending on the week of the program.

360,000,000 is the total supply of ALGX allocated to the rewards program.

Liquidity Rewards FAQ

How can I claim my rewards?

Rewards will be automatically calculated and distributed to eligible wallets.

Where can I sign up and track my rewards?

The official rewards app has launched, and can be found at rewards.algodex.com. Users will be required to complete a simple sign-up process on the app after connecting their wallet. This sign-up process will require users to send an amount of 0 ALGO to themselves as proof of their participation.

Each week, liquidity providers earn a yield based on their relative QFINALQ_{FINAL} score. The Algodex rewards web app will show users how many rewards they have earned in each week, total earnings, and other statistics regarding rewards.

What is mid-market spread?

The spread between the highest qualifying bid price, and the lowest qualifying ask price in a given market. The mid-market spread takes the midpoint of the market. Qualifying criteria on bid and ask depth can be found here.

i.e., A bid price is $4,000 and the ask price is $4,100. The bid-ask spread is therefore $100, and the mid-market price is $4,050. Therefore, the mid-market spread is $50.

A user's spread is defined as the distance between their order's price and the midpoint of the lowest ask and highest bid on the orderbook.

Exchange Rate

Due to the volatile nature of cryptocurrency, this document provides details in terms of US dollars. The Algodex platform does not use US dollars, and instead uses Algo. Therefore, ALGO prices will be compared with the most current ALGO-USD exchange rate while calculating user eligibility.

Vesting and Reward Distributions

There is no vesting schedule for rewards. Once the rewards app launches, users will receive their rewards within 2 days of the end of the most recent period. Historical rewards that were earned before the release of the app will be distributed when the app launches.

The official rewards launch date is TBD, however, it will coincide with the rewards web app launch.

Additional Information on UptimePERIODUptime_{PERIOD}

Score from UptimePERIODUptime_{PERIOD} will only count on orders in SpreadTierSpreadTier A or SpreadTierSpreadTier B. Orders that are in SpreadTierSpreadTier C are still able to accrue score, but will not receive score from the factor UptimePERIODUptime_{PERIOD}.

Note: Having SpreadTierSpreadTier C orders will only accrue rewards if you have at least 1 SpreadTierSpreadTier A or SpreadTierSpreadTier B order on both the bid and ask side of the market. This is necessary, as otherwise UptimePERIODUptime_{PERIOD} would be equal to 0, resulting in an overall score of 0.

Is the rewards code open source? If so, where is it located?

The code is open-source, written in Rust, and can be found on GitHub here.

AssetGrade Multipliers

This is the current list of assets that receive multipliers:

  • USDC/ALGO = 3x

  • STBL/ALGO = 3x

  • STBL2/ALGO = 3x

  • goBTC/ALGO = 3x

  • goETH/ALGO = 3x

  • gALGO/ALGO = 3x

  • goMINT/ALGO = 3x

  • USDT/ALGO = 3x

  • GARD/ALGO = 3x

  • pTokens BTC/ALGO = 3x

  • xSOL/ALGO = 3x

  • goUSD/ALGO = 3x

  • ALGX/ALGO = 2x

All other assets eligible for rewards receive no multiplier.

Example Calculations

1. Calculating QBIDQ_{BID}

Assume a liquidity providers has multiple open bid orders in the goETH market: 1goETH at $3,900; 5 goETH at $3,850; 10 goETH at $3,500. Assume goETH is currently trading at $4,000 (based on mid-market). Assume the minimum depth (for both bid and ask) is $100. Assume maximum spread is 100 bps (1%) and mid-market is $25; therefore, maximum spread vs. mid-market is bps.

QBID=(1×$3,900$100$4,000)+(5×$3,850$150$4,000)+(10×$3,500$500$4,000)=949,333Q_{BID} = (\frac{1\times \$3,900}{\frac{\$100}{\$4,000}})+(\frac{5\times \$3,850}{\frac{\$150}{\$4,000}})+(\frac{10\times \$3,500}{\frac{\$500}{\$4,000}}) = 949,333

Note that all terms are included, as no term violates the maximum spread or minimum depths rules.

2. Calculating QASKQ_{ASK}

Assume a liquidity providers has multiple open ask orders in the goETH market: 1goETH at $4,100; 5 goETH at $4,150; 10 goETH at $4,175. Assume goETH is currently trading at $4,000 (based on mid-market). Assume the minimum depth (for both bid and ask) is $100. Assume maximum spread is 100 bps (1%) and mid-market is $25; therefore, maximum spread vs. mid-market is bps.

QASK=(1×$4,100$100$4,000)+(5×$4,150$150$4,000)+(10×$4,175$175$4,000)=1,524,019Q_{ASK} = (\frac{1\times \$4,100}{\frac{\$100}{\$4,000}})+(\frac{5\times \$4,150}{\frac{\$150}{\$4,000}})+(\frac{10\times \$4,175}{\frac{\$175}{\$4,000}}) = 1,524,019

Note that all terms are included, as no term violates the maximum spread or minimum depths rules.

1. Mainnet Rewards - Version 1 [February 10, 9:00:00, 2022 - June 2, 23:59:59, 2022]

Rewards are calculated using a modified version of the Liquidity Rewards Formula. Holding ALGX in a wallet is not a factor, therefore the term ALGX0.18ALGX^{0.18} is removed from the equation. Factor weights on QPERIODQ_{PERIOD} and LiquidityShareLiquidityShare were increased by 25%. Additionally, having both buy and sell orders is not a factor in reward eligibility. The modified version of the Liquidity Rewards Formula is below:

QMARKET=QPERIOD0.5625×UptimePERIOD5×LiquidityShare0.3375×GlobalAlgorandDEXLiquidity0.1Q_{MARKET}={Q_{PERIOD}}^{0.5625} \times {Uptime_{PERIOD}}^{5} \times LiquidityShare^{0.3375} \times GlobalAlgorandDEXLiquidity^{0.1}

If a user did not place both a bid and ask order, the minimum function would return 0. Therefore, the median of 0 and MAX(QBID,QASK)MAX(Q_{BID},Q_{ASK}) will be used instead.

QPERIOD=N=110,080[MAX(BidDepth1Spread1+...+BidDepthNSpreadN,AskDepth1Spread1+...+AskDepthNSpreadN)2]Q_{PERIOD} = \sum_{N=1}^{10,080}[\frac {MAX(\frac{BidDepth_{1}}{Spread_{1}}+...+\frac{BidDepth_{N}}{Spread_{N}}, \frac{AskDepth_{1}}{Spread_{1}}+...+\frac{AskDepth_{N}}{Spread_{N}})}{2}]

2. Mainnet Rewards - Version 2 [June 3, 0:00:00, 2022 – ongoing]

Rewards are calculated using the Liquidity Rewards Formula. June 3 is the 16th week of rewards, therefore the TierRateTierRate will be a constant 1.061% until the end of the program (December 22, 2022). ALGX Held in a wallet is a contributing factor to the reward calculation. Having both buy and sell orders is another eligibility criteria.

Eligibility

To be eligible for Mainnet rewards, the user must trade, or have traded verified asset pairs on Algodex between February 10, 9:00:00 and June 2, 23:59:59, for the original rewards system, or June 3, 0:00:00 and ongoing, for the improved rewards system. The rewards from Mainnet can be accrued by anyone committing the criteria.

Terms

All specifics outlined in the above rewards plan are subject to change without notice.

Last updated