stacksgov / grants-program

Welcome to the Stacks Foundation Grant Program. Community members interested in submitting a grant proposal may do so by opening an issue in this repository and filling out the grant application.
141 stars 36 forks source link

ALEX - Launchpad, helping founders fairly distribute tokens with minimal capital investments #186

Closed fiftyeightandeight closed 3 years ago

fiftyeightandeight commented 3 years ago

The Problem

Many projects want to distribute tokens in a fair way among the community, with the tokens remaining in the hands of those that are invested in the project for the long term, instead of speculators looking for quick profits. At the same time, the projects need their projects to build deep liquidity with efficient price discovery of their tokens, without requiring heavy capital investments from the team.

The Solution

"ALEX Launchpad" helps founders solve these problems: projects are able to fairly distribute tokens with minimal capital investments. "ALEX Launchpad" develops a simple UI powered by ALEX's core technology.

ALEX's core technology is an application of the Liquidity Bootstrapping Pool ("LBP") pioneered by Balancer, but applied to Stacks. LBPs allow projects to launch tokens with custom capital requirements--including very low capital requirements.

ALEX's LBP will consist, at first, of pool with exactly 2 assets or tokens. One token will be the project's token. The other token will be chosen by the project, such as STX, or BTC. The ratio, or weight of the tokens, can be determined by each project themselves.

To minimize capital requirements in terms of the collateral token, a project may choose to start with a 90:10 ratio of Project_Token:Collateral_Token for example. People may put collateral tokens into the pool in exchange for the project's tokens.

To promote price discovery while preventing malicious behaviors from bots or front-running, LBPs can evolve in specific ways over time. For example, over time, the pools token weights may gradually change. Typically, the weights will change such that the project token's relative weight in the pool decreases, while the collateral token's relative weight increases until the end of the token distribution.

The relative weights of a project's token to collateral tokens can be held constant, it can increase, or it can decrease. ALEX Launchpad offers projects the full range of possibilities, allowing projects to customize the evolution of their token distribution in ways that best fit their intentions.

Should a project want to maximize the number of collateral tokens received in exchange for the project's tokens, they could hold the relative weights constant over time. In turn, should a project want to maximize the speed at which the tokens are distributed, they may choose to decrease the weight of the collateral token over time.

Should a project want to maximize fair distribution while minimizing price speculation, then the project may choose to increase the weight of the collateral token over time. This approach prevents "whales" from performing a “rug pull” or a similar technique that leads to instant price volatility and allows for more fluid price discovery for the token. This is because tokens are released slowly with changing weights, whales are forced to split their trades into separate, small, trades over a longer period of time.

LBPs were first offered by Balancer in 2020 and have been used as an alternative to ICOs, IDOs or IEOs. On ALEX, LBPs will be built using fundamental building blocks developed as part of an earlier grant application. In particular, LBPs will leverage the Weighted Equation and Fixed Weight Pool building blocks, and thus notably show how developers can build on and extend ALEX.

Comparables

There does not currently exist a launchpad for IDOs on Stacks. ALEX is uniquely positioned to build an IDO launchpad on Stacks because ALEX is building technology that builds upon and extends technology pioneered by Balancer as well as Compound and Aave. We are not aware of other efforts even attempting to build a decentralized launchpad solution on Stacks that solves the problems above.

Expected Impact

Would it matter if ALEX launchpad, as a decentralized token issuing platform, does not exist? We believe it would. With ALEX launchpad, we expect that it becomes much easier for new projects to issue tokens. The expected outcome should be a) a greater number of projects joining Stacks because it's become easier to issue tokens, b) a greater number of projects issuing tokens on Stacks than would otherwise be the case, b) a less concentrated distribution of tokens across tokenholders than would otherwise exist.

Milestone 1

Deliverable: A smart contract on mainnet implementing a functional version of the two-token Liquidity Bootstrapping Pool described above, released under a MIT License. Requested grant: 25,000 USD Deliverable deadline: Sep 15

Upon completion of Milestone 1, we would like to review and expand the scope of grant. To provide some examples for extensions, one potential next milestone would be to upgrade the LBP from two token pools to pools with more than two tokens. For example, instead of a pool with a 50:50 ratio of a project's token with some collateral token, we could enable a pool with a 33:33:33 ratio of a project's token, some collateral token, as well as another collateral token. Another option is to allow projects to issue NFTs for buyers from an LBP, as a type of badge that they were there when a project first launched.

stx-grant-bot[bot] commented 3 years ago

Thanks for submitting a grant proposal. Our team will review your submission and get back to you.

fiftyeightandeight commented 3 years ago

@jennymith I am responding to the questions you asked here.

Are there plans to build an accompanying UI/platform that users can take advantage of upon launch?

Yes, there are plans to an accompanying UI/platform that users can take advantage of upon launch. We expect to have v1 of the UI ready by Sep 15th. We are going to take the core pieces from similar launchpads in other ecosystems, and model our vs1 of the UI based on these, before iterating further. Example UIs are those of Polkastarter or Polkadot (simple and clean), Unicrypt on top of Uniswap(incorporates Uniswap v3 style functions, which we will support as well), and Miso on Sushiswap (popular among long-tail projects distributing tokens via AMMs recently). Once we have built the UI for a token project and its users, we will then develop the one for liquidity providers more generally, incorporating the best pieces from UIs like Balancer’s.

Or will there be a portal/easy way for projects and liquidity providers to join the launchpad?

Luckily the answer is that our UI will support all three, meaning a) users looking to buy tokens, b) projects looking to distribute tokens, and c) liquidity providers (Uniswap style). Doing all three at once is difficult; we initially focus on b), then a), and then c). The reason why is the following. Without any projects distributing tokens, a UI for users and liquidity providers is useless. Once we have a UI for projects to schedule/prepare tokens to be distributed, someone needs to buy these tokens--which is why we focus on the UI for users/buyers next. FInally, once a project has distributed its tokens into the hands of users, enabling trading via am AMM-style DEX like Uniswap or Sushiswap requires liquidity providers--which is the third “type” of UI we will then work on. In other words, we see these UI evolutions as logically following upon each other.

Do you already have partners lined up for this?

We do not have partners lined up for this. Once we know a) that this is worth doing and b) that we can receive the foundation’s financial support and c) the foundation’s stamp of approval for Stacks projects, we will contact other projects. We will start with contacting all projects in our Stacks cohort. These are prime candidates for using the platform, since many are looking to issue tokens in the coming weeks/months. In the future, we would specifically target any projects coming out of subsequent Stacks cohorts. Getting the foundation’s on our side for this to happen successfully is essential, and to everyone’s benefit we hope.

Can you provide more information on the development of the smart contract itself (i.e. how advanced is it)? How much does the design of ALEX's LBP smart contract differ from that of Balancer's?

The basic scaffolding of the contract is ready, and we think we can ship a simple, working version of the launchpad within a month. The design of ALEX’s LBP contract(s) is a more general version of the Balancer’s LBP contract, meaning it can accommodate almost everything Balancer is doing today, while also accommodating other concrete use cases. The key insight is the following. Balancer, Uniswap, and mStable, for example, all use AMMs as represented by a specific function f(X) = L, where f(X) is a function of various tokens that result in L, a constant. You can think of f as a type of mean. Uniswap uses an arithmetic mean. Balancer a weighted geometric mean. mStable an arithmetic mean. We have a smart contract that uses a generalized mean--and thus the smart contract can accommodate each of the means of the protocols mentioned above. So our smart contract is similar to Balancer’s, except it is more general, and we can derive Balancer’s smart contract (somewhat) easily.

RaffiSapire commented 3 years ago

Hi @fiftyeightandeight, we are wary of playing the foundation playing the role of stamp of approval. Rather, we support and fund projects that the community has demonstrated they want or need.

At this point, it is a pass. We would like to support and fund this grant in the near future. For us to get conviction here, we’d want to see indicators of community demand before a grant. We suggest you resubmit with a partner that is committed to using the launchpad for their own token launch. We are going to close this for now, and when you have identified a partner, please do resubmit and we are really excited to help see this come to life.