ALGX Liquidity Rewards Program

Updated: November 3rd, 2022

Overview

A total of 270 million ALGX are allocated for the ALGX rewards program. 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 through to December 22, 2022.
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 of
ProvidedLiquidityProvidedLiquidity
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 (2022)

Tier
Date Range
Amount
Tier 1
February 10 - February 24 [0-2 weeks]
5% or 18,000,000 ALGX per week
Tier 2
February 25 - April 29 [3-12 weeks]
2.5% or 9,000,000 ALGX per week
Tier 3
April 30 - December 22 [13-45 weeks]
1.061% or 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 – December 22, 23:59:59, 2022]

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 December 22, 23:59:59, 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.