How to use StreamSwap for fair and decentralized token launches

Interchain Builders Program
The Interchain Foundation
7 min readSep 20, 2023

--

At the Interchain Builders Program, we believe our research on the best practices for Web3 founders should be freely accessible for everyone. However, please note that we are not lawyers. We just want to get this information out there so you have a starting point before seeking legal counsel.

What is Streamswap?

StreamSwap is a fair launch implementation where interchain projects can launch their tokens in a fair way, i.e. all users get the same price. Within the first two months after the StreamSwap launch, 6 projects have launched their token on the platform, either for price discovery (the token was not available yet for purchase beforehand) or as an over-the-counter (OTC) sale (the token already had a secondary market and could be traded).

A comprehensive overview of the mechanics of StreamSwap can be found here.

To ensure a decentralized launch through Streamswap a few things need to be considered before initiating the Stream. In this article we are going to outline a few steps on how the sale may be conducted to achieve a decentralized launch.

StreamSwap for Price Discovery

If there is no secondary market for the token yet (meaning it is not yet tradable on any platform), StreamSwap provides an excellent way to introduce your token to the market, effectively enabling an automated mechanism for price discovery. Organic price discovery is important, as it ensures that the token price is not determined by the team or founders behind the network, which is crucial as centralized control over the token price can lead to the token being deemed a security. Here is how you can maximize decentralization for the price discovery:

Pre-requisites:

● The token is not trading anywhere yet / there is no secondary market

● The token has sufficient distribution among holders, e.g. via airdrop (we will elaborate why this is important below)

● There is a process for governance in place

● Tokens used for the stream are usually taken from:

  • The Community Pool (ideally) OR
  • A dedicated “Liquidity Seeding” or “Liquidity Bootstrapping” pool which is defined during the genesis allocation specifically for the purpose of price discovery and bootstrapping liquidity

Step 0 — Community Proposal

In order to initiate the Stream on StreamSwap in the most decentralized way, it is highly recommended to submit a proposal to the protocol or dApp governance that outlines the intent to utilize StreamSwap as a mechanism for price discovery and to get the tokens on the market. Ideally, this proposal should specifically outline:

● Where the tokens are coming from (e.g. Community pool or another pool that is reserved for liquidity bootstrapping)

● Who will create the Stream (e.g. multisig held by founding team or community members/governators)

● Amount of tokens to be swapped

● Quote asset (e.g. ATOM, OSMO, USDC, etc.)

● Terms of the Stream (start date, end date, treasury/withdraw address)

● Where the raised funds will be withdrawn to, typically this includes:

  • Protocol treasury owned by the community or DAO
  • Protocol treasury held by the foundation

● What the funds will be used for, typically this can include:

  • Funding protocol development
  • Grants Program
  • Creating an LP on a DEX

This is where it is important to have conducted a previous airdrop, as only this way the decision can be seen as being made by the community and not by the founding team. Hence, it is also recommended that the founding team does not vote with their allocated tokens on this proposal.

Such a proposal may be combined with a parameter change proposal enabling token transfers and IBC transfers. Otherwise, if (IBC) transfers have been enabled beforehand (via another proposal), chances are that somebody already created a LP on a DEX, potentially leading to price discovery with very low liquidity. However, if the tokens originate from the community pool and your chain is not on SDK v0.50 (or higher), this may not be possible as the same proposal cannot be a spend proposal and a parameter change proposal at the same time. In that case, the spend proposal to send the funds to the multisig should come first, followed by the parameter change proposal to enable IBC transfers. Note that enabling IBC only applies for layer one chains, not for dapps that are deployed elsewhere.

An example of such a proposal can be seen here. Combined with two other spend requests, Gitopia requested funds from the community pool with a clear purpose of conducting a Stream on StreamSwap and that the funds will be utilized for bootstrapping LORE/OSMO Liquidity.

Step 1 — Creating the Stream:

The Stream has to be set up by the multisig mentioned in the proposal and adhere to all conditions that were outlined incl. start date, end date, amount of tokens, quote asset & treasury account (withdrawal address).

Example configuration of a Stream

Step 2 — Withdraw funds after the Stream concludes:

After the Stream concludes, the multisig has to trigger the withdrawal of funds to the previously specified treasury address via the StreamSwap UI. From there, the multisig uses the funds for the purpose(s) as outlined in the proposal, e.g. creating a liquidity pool on a DEX, transferring the funds to a designated treasury address or as stipulated in the proposal.

StreamSwap for OTC Sales

If your token is already trading on a DEX (or CEX), StreamSwap is a great way to facilitate an over-the-counter (OTC) sale of the token. OTC sales can be a great way to sell tokens from the community pool or protocol treasury without a major impact on the market price. Here is how you can maximize decentralization for the price discovery:

Pre-requisites:

● The token is already trading on a secondary market (DEX or CEX)

● The token has sufficient distribution among holders, e.g. via airdrop or due to secondary markets being available for a certain amount of time

● There is a process for governance in place

● Tokens are from:

  • Community Pool (ideally) OR
  • Protocol treasury (held by the foundation)

Step 0 — Community Proposal

In order to initiate an OTC sale in the most decentralized way, it is highly recommended to submit a proposal to the protocol or dApp governance that outlines the intent to utilize StreamSwap as a mechanism to sell the token OTC. Ideally, this proposal should specifically outline:

● Where the tokens are coming from (e.g. Community pool or protocol treasury)

● Who will create the Stream (e.g. multisig held by founding team or community members/governators)

● Amount of tokens to be swapped

● Quote asset (e.g. ATOM, OSMO, USDC, etc.)

● Terms of the Stream (start date, end date, treasury/withdraw address)

● Where the raised funds will be withdrawn to, typically this includes:

  • Protocol treasury owned by the community or DAO
  • Protocol treasury held by the foundation
  • seeding protocol treasury held by the foundation, etc.)

● What the funds will be used for, typically this can include:

  • Funding protocol development
  • Grants Program
  • Creating an LP on a DEX

This is where it is important that the token are distributed across a wide range of token holders, e.g. via an initial airdrop or by having a certain amount of trading history as only this way the decision can be seen as being made by the community and not by the founding team. Hence, it is also recommended that the founding team does not vote with their allocated tokens on this proposal.

If the tokens that are to be swapped originate from the community pool, the proposal would be a spend proposal of the desired amount, combined with the outline above.

Step 1 — Creating the Stream:

The Stream has to be set up by the multisig mentioned in the proposal and adhere to all conditions that were outlined incl. start date, end date, amount of tokens, quote asset & treasury account (withdrawal address).

Example configuration of a Stream

Step 2 — Withdraw funds after the Stream concludes:

After the Stream concludes the multisig has to trigger the withdrawal of funds to the previously specified treasury address via the StreamSwap UI. From there, the multisig uses the funds for the in the proposal outlined purpose, e.g. transferring the funds to the protocol treasury or else as specified in the proposal.

*Note: We are not legal advisors and there is not enough clarity if this would mitigate any legal risk. However, we believe these steps are necessary to minimize risk under the Howey test.

The Interchain Builders Program provides mentorship and guidance for Web3 founders looking to navigate the Interchain. We help teams with incorporation strategies, fundraising, token economic design, technical support, validator bootstrapping and going to market. If you’re a founder looking to build on top of the Interchain Stack, we encourage you to apply to the program now!

Disclaimer: the information presented here is made available solely for general information purposes and is not investment advice, nor a legal or financial recommendation of any sort. We do not warrant the accuracy, completeness or usefulness of this information. Any reliance you place on such information is strictly at your own risk. We disclaim all liability and responsibility arising from any reliance placed on such materials by you or any other reader, or by anyone who may be informed of any of its contents.

By mentioning any specific project, business or other organization in this information, the Interchain Foundation does not express endorsement unless explicitly stated.

--

--

The Interchain Foundation
The Interchain Foundation

Published in The Interchain Foundation

The Interchain Foundation (ICF) is a Swiss foundation pushing the frontiers of blockchain-related infrastructure. As stewards of the Interchain, we fund and advance the creation of an interoperable, sustainable, and community-owned decentralized ecosystem. Visit interchain.io

Interchain Builders Program
Interchain Builders Program

Written by Interchain Builders Program

Mentorship, technical support and guidance for projects building in the Interchain. A program of the Interchain Foundation (ICF). Visit: https://join.builders/