Liquidity Generation Event (LGE)
Last updated
Last updated
A Liquidity Generation Event (LGE) is a unique and innovative mechanism to build initial liquidity on a new token in a manner that best incentivizes participants and open market buyers alike.
Governor DAO invented their LGE model with their own token launch in late 2020. Governor DAO was a fair launch token, and both team and community were interested in experimenting with new token launch models to utilize contributions in a way that is maximally effective for all involved.
The LGE model itself replaces the traditional token sale with a “lease” of user contributions to rent initial liquidity. Because ETH is paired with newly minted tokens, funds are multiplied out of the gate. Leveraging this phenomenon alongside different gamification and fees, the LGE creates an equitable opportunity for participants while simultaneously providing the project with the resources required.
The Model works as follows:
Sale of Synthetic LP (SLP) Vouchers
Token Creation
Initial Liquidity Generation
Gamified Liquidity Redemption
During an LGE, participants post ETH (or other token) towards initial liquidity, NOT to buy tokens.
In order to track contributions, users receive a Synthetic LP (SLP) token that acts as a “voucher” for their contribution. Later on, users will be able to exchange SLP for real LP tokens.
SLP plays the role of “on-chain accounting.” There is no fixed value for SLP. Rather, SLP will have some % conversion to real LP when that exchange can take place. As SLP is a normal ERC20 token, users can transfer tokens between accounts and trade OTC if they wish to do so.
The SLP sale has three pertinent parameters:
Hard Cap: The maximum contributions before sale ends
Soft Cap: The minimum contributions to continue to token creation
Duration: Length of SLP sale
The sale runs until the Hard Cap is met or the duration is concluded, whichever comes first.
If the soft cap is not met (meaning the minimum contributions were not achieved), then the proceeds are returned to the contributors. The SLP is delivered at contribution, and can be used to return ETH pro rata to contributors.
If the soft cap is met by duration or once Hard Cap is met, Token Creation takes place.
Token Contract for the project corresponding to the LGE is created.
The LGE is intentionally designed so that the token is not created until the LGE concludes. This is so that freshly minted tokens are paired with LP, multiplying contributions, and also guaranteeing that 100% of circulating supply exists in the token dex pair at launch.
Proceeds from the SLP sale are paired with a percentage of token supply. There is no fixed starting price for the token. Rather, the final contributions from the SLP sale (between soft cap and hard cap) allow the market to determine an initial price of token and market cap of the project.
When initial liquidity is posted, that position is tokenized as ETH-Token LP. Some % of that LP is sent to the project as Protocol Owned Liquidity. The rest is sent to the gamified LP unlock.
After initial liquidity is posted, the LP tokens are sent to an LP swap contract, where users can submit their SLP vouchers for the real LP they contributed to.
The LP unlock is gamified with a decaying fee. Once swapping from SLP to LP begins, there is a large, decaying fee on the swap. The fee sends some amount of the LP from the swap back to the protocol as Protocol Owned Liquidity.
Because ETH is turned into ETH + Token, the LP has a multiplier on original contributions. Additionally, 100% of supply exists as market LP, therefore number must go up (there are no circulating tokens to sell, they must be bought first).
Through these mechanics, we know that the LP equivalent of SLP is worth some strong multiplier from the original contribution (based on project % splits). Participants may elect to withdraw LP early at a large decay fee in order to realize gains. These large taxes bolster Protocol Owned Liquidity and ensure that, by the end of the event, all LP may be redeemed without decay, there remains some large amount of Protocol Owned Liquidity.
Note that there is no pre-determined SLP:LP exchange ratio. SLP redeemed is burned, and the SLP:LP ratio is fixed at supply of SLP/LP remaining in the swap contract.
Why LGE vs Token Sale? There are several quirks that properly incentivize all parties (contributors, open market buyers, protocol team) in a way that traditional token sale models can’t replicate:
ETH contributed becomes ETH + Token (in the form of LP tokens). The tokens are newly minted and paired with ETH. In a normal sale, ETH is swapped for tokens: Users can, at best, get 100% on their contribution (less if they got in at a worse sale price).
In the LGE model, users get between 100-200% on their contribution immediately. The exact return is dependent on how much of contributions are posted as LP for the Gamified Swap vs other uses (LGE sale fees, Protocol Owned Liquidity).
The first time tokens touch the market is on LP posting. The only way people can get those tokens is to buy them from the market. As a result, the price of the token must go up (to some extent). The market chooses the value of the project, not the token sale.
Contributions are stored as LP, not the token itself. Due to the nature of AMMs and LPs, plus the “multiplier” outlined above, contributors are significantly insulated from poor market performance.
The table below outlines the % of funds by contributors allocated to the LP redemption and the price of token (vs launch price) required to maintain breakeven.
50%
1x
0%
60%
1.2x
-31%
70%
1.4x
-49%
80%
1.6x
-61%
90%
1.8x
-69%
100%
2x
-75%
Note that these metrics ignore trading fees accrued by the trading pair. The real depreciation benchmarks in practice are lower to hit breakeven.
The LGE requires each of the following variables across different contracts:
Token Supply
Supply Breakdown
% of supply allocated to LGE
All other supply breakdowns
Required vesting on other supply components dated from Liquidity Posting
Contribution Token (ETH or otherwise)
Hard Cap: Maximum funds (priced in contribution token) to take on
Soft Cap: Minimum funds required to launch the token
Start/End/Duration: When the LGE takes place and for how long
Breakdown of Proceeds
% of contributions paired with LP and claimable by user (must be 50-100%)
% of contributions to Protocol Owned Liquidity
% to GDAO team and client
Individual Cap: Maximum amount a wallet can contribute
Unlock Time: Timestamp after conclusion of LGE when SLP swap opens
Decay Fee Start: highest unlock fee imposed on first day (eg 90%)
Unlock Duration: How long from start of unlock time until decaying fee decreases to 0%
The LGE contracts are highly composable. They can be modified to incorporate different elements of gamification.
Additionally, through the use of Governor DAO Proof-of-Existence, LGE can be further bolstered with “human gated” elements. More on that here.
Additional gamification can look like:
Reflections in token contract to passively build LP
Presale mechanics for privileged accounts (perhaps POE holders) to protect a decentralized offering
Team owned vs permanently locked liquidity
If you have certain considerations for the LGE beyond what is highlighted, do not hesitate to engage with the team!
$TOKEN: 1,000,000 Supply
75% allocated to LGE (750,000 TOKEN)
10 ETH soft cap
100 ETH hard cap
1,000 Synthetic LP (SLP) per 1 ETH (1,000,000 SLP total supply)
75% of proceeds to contributors
10% to Protocol owned Liquidity
10% to GDAO
5% to protocol treasury
90% tax, decaying 1% each day
50 ETH raised
50,000 SLP sold for 50 ETH
42.5 ETH (85% of proceeds) paired with 750,000 TOKEN
5,645 Uniswap V2 LP tokens created
4,981 LP redeemable for SLP
1 SLP = 0.09962 LP
664 LP back to protocol
5 ETH to GDAO
2.5 ETH to protocol
TOKEN price = 42.5 ETH / 750,000 TOKEN = 0.0000567 ETH
Market Cap = 56.67 ETH
1 ETH contributed, 1,000 SLP received
1.5x boost to contribution (75% * 2). 1,000 SLP ~= 1.5 ETH
User converts 1,000 SLP to LP at day 75
Price is up 2x from start - 0.000113 ETH
LP is up 1.42x
AMM is 60.10435 ETH + 530,325 TOKEN (excluding trading fees!)
User is taxed 15% (90 - 75)
User receives 84.677 LP worth 7,955 TOKEN and 0.9 ETH (1.8 ETH total)
Protocol receives 14.943 LP worth 1,403 TOKEN and 0.15 ETH (0.3 ETH total)
The following spreadsheet showcases how the % of contributions going back to users + price multiplier + early unlock decay work together. Note that, unless users exit extremely early or token price diminishes significantly, contributors are typically looking at a good return.
With most of the supply posted as LP initially, it’s very difficult for the token not to perform well after launch.
https://docs.google.com/spreadsheets/d/1QaPwOqqgIhuRDWCWX58rhDLLYXTltXSfCV3vH0LEYBw/edit?usp=sharing
Follows references detailed in the document.
sLP - Synthetic Liquidity Provider.
LP - Liquidity Provider LGE - Liquid Generation Event
AMM - automated market maker
Hard Cap: The maximum contributions before sale ends
Soft Cap: The minimum contributions of the sale in order to continue to token creation
Exclusive to PoE holders, presale participants will
Receive a % bonus on their contributions for having a PoE or native token.
Holding x amount of GDAO (or project native token) during the main sale will also benefit from a % bonus.
These are the pertinent contract calls required for developers to admin as well as to build out a customized frontend on top of the smart contracts.
Key:
Admin Frontend
Crowdsale Contract
Read contracts
openingTime - timestamp when Crowdsale begins
Reference in frontend countdown timer
closingTime - timestamp when Crowdsale ends
Reference to cutoff of sale
isOpen - boolean for whether or not Crowdsale is active
Alt. Reference for whether to populate sale or not
getCap(address) - Maximum amount user can contribute
Check that user is not contributing more than max
getContribution(address) - shows how much a user has previously contributed
Reference for user input, make sure if they have already contributed the new contribution doesn’t exceed Max
weiRaised - shows how much contributions (in wei) have been contributed globally
Reference to make sure the user input contribution doesn’t exceed max remaining capacity
Need to convert from wei to ETH
TotalCap
Reference vs totalContributions to know how much space is remaining
Write Contracts
purchase(ether, address) - user input command to contribute so much ETH and recipient address
Primary function in frontend for users to contribute to the sale
Read Contracts
Allowance(address owner, address spender) - Sees how much a spender is already authorized for an input address
Check to see if need to require an approval transaction
BalanceOf(address) - Gets balance of token for input address
Populate balance on frontend and input into swap field for LP swap
Write Contracts
Approve(address, uint256) - gives input address permission to spend up-to input uint256 number of coins This is needed for the LP swap, need to approve the LP contract before the swap can happen
Read Contracts
calculateTokens(uint256) - returns how many output tokens for input tokens received. Accounts for active tax.
Use to surface how much LP users will receive on execution of swap for user input SLP
taxRate - Current tax rate
Reference to highlight to users if there is still a decaying tax
taxPeriod - number of days till tax is exhausted
Reference to show users how long they need to wait until tax is eroded
dailyTaxRate - how much tax rate decreases each day
Reference to show users how much tax decays each day
Write Contracts
swapTokens(uint256) - input tokens exchanged for output LP
Users will engage here after approval to execute swap
initiateSwap - activates the swap contract
Swaps not active until activation
setTaxEnabled(bool) - emergency turn tax off
The following information is required and must be provided by the project planning to execute an LGE. Information collected provides aligned expectations and an understanding of how the LGE will play out.
https://docs.google.com/spreadsheets/d/1wL91Kg5GHrofBN7pXAAJc17XVkdERXectRzI-NBtfh8/edit?usp=sharing