Liquidity Generation Event (LGE)
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:
- 1.Sale of Synthetic LP (SLP) Vouchers
- 2.Token Creation
- 3.Initial Liquidity Generation
- 4.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.
% of Funds redeemable by LP Unlock | Multiplier on Contributions | Price depreciation till “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
Last modified 1yr ago