Search Docs...

Search Docs...

For Partners

Blockchains

Launch an LST

My team would like to launch an LST

Are you part of a team who would like to launch an LST for your token? Stride can help. 

Follow the instructions below to get started.

Overview

There are currently 5 steps to onboarding a new Host Zone with Stride:

  1. Run through local testing flow

  2. Host zone requirements (ICA, SDK v46+, IBC v3.4+) 

  3. Create transfer channel

  4. Secure LP capital for stToken liquidity, and cement stToken utility 

  5. Run through mainnet testing flow

  6. Go-to-market / launch

Note: We are currently working on making onboarding new host zones more frictionless, and are actively seeking to improve our docs on the process. Please let us know if you are running into any difficulties or have recommendations.

Local Testing

Before we can onboard any host zone, we need to run through our suite of local tests. We request that teams looking to onboard submit a PR to the Stride repo demonstrating that all local tests are passing.

Instructions for how to add your host zone to Stride’s local setup are located here. Please keep in mind, to run the local tests, you will need to first follow the instructions in that README for how to add your host zone, and then run  

git submodule update --init --recursive // will fetch submodules
make build-docker build=srn // s for Stride, r for Relayer, n for your host zone

To run through local setup, then run

make start-docker build=sgrn

If setup for the local repo is running error-free, you should then:

  1. Modify `dockernet/tests/run_all_tests.sh` to only run the HOST tests

  2. Run `bash dockernet/tests/run_all_tests.sh` to make sure the HOST test suite works 

If the tests are passing, you will see checkmarks next to 8 test cases in stdout. Once you see those checkmarks, please add the following information to the PR description:

  • Copy-paste the passing test case stdout output into your PR description.

  • Paste the commit hash you tested on into the PR description.

  • Paste the commands used to generate these test results into the PR description.

Now add a core Stride contributor as a reviewer to the PR.

If helpful, this PRs (Evmos) can serve as an example. 

Host Zone Requirements

SDK/IBC Versions

The host zone must be on SDK v46+, in order to support the ICA message `MsgCancelUnbondingDelegation`.

In addition, the chain must at least be on IBCv3.4+ or higher. There are known security vulnerabilities with ICA on lower versions of IBC.

Withdraw Address Enabled

The `withdraw_addr_enabled` parameter in the distribution module must be set to `true`.

ICA

The Host Zone must have ICA enabled, along with the relevant ICA messages. An example of how to query this is located here. The following allow messages are required for Stride: 

["/ibc.applications.transfer.v1.MsgTransfer",
"/cosmos.bank.v1beta1.MsgSend", 
"/cosmos.staking.v1beta1.MsgDelegate",
"/cosmos.staking.v1beta1.MsgBeginRedelegate",
"/cosmos.staking.v1beta1.MsgUndelegate",
"/cosmos.staking.v1beta1.MsgCancelUnbondingDelegation",
"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress",
"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward", 
"/cosmos.distribution.v1beta1.MsgFundCommunityPool", 
"/cosmos.gov.v1.MsgVote",
"/cosmos.feegrant.v1beta1.MsgGrantAllowance",
"/cosmos.feegrant.v1beta1.MsgRevokeAllowance"]

If ICA is not enabled on the chain, a software upgrade will be required to enable ICA and turn on the relevant allow messages. This PR is an example for how Evmos turned on ICA.

Please submit the query you used to verify ICA is enabled on the chain with your PR. 

Create Transfer Channel

First confirm there is not already an active, canonical transfer channel between Stride and the Host Zone. If a transfer channel has not been created yet, create light clients, connections and a transfer channel using either the go-relayer or hermes

Verify the light client parameters on both Stride and the host zone using the following queries:

  • Stride LC: https://{host-api-endpoint}/ibc/core/client/v1/client_states/{client-id}

  • Host Zone LC: https://{stride-api-endpoint}/ibc/core/client/v1/client_states/{client-id}

The Stride light client’s unbonding period (as queried on the host) should be 1209600s and the trusting period should be at least 800000s

The host zone light client’s unbonding period (as queried on Stride) should match the chain’s configured unbonding period, and the trusting period should be at least 2/3rds the unbonding period.

Please specify the following in the PR description from step 1:

  • Unbonding Period

  • Light Client Trusting Period

  • Client IDs

  • Connection IDs

  • Transfer Channel IDs

Secure LP Capital + Utility

In order to ensure stTokens are useful, it’s highly important to make sure that there is ample liquidity in the stToken pool. We estimate that at least $200,000 of liquidity is required for new host zones. Please keep in mind that half of this liquidity will be liquid staked, so it will earn staking yield.

Please confirm with the Stride Foundation that someone (core contributors, investors, community pool, foundation, etc), will provide these tokens. 

In addition, it’s important that stTokens have some utility. Some examples are: 

  • lending protocol / money market (to include stTokens as collateral)

  • perps/options (to collateralize with stTokens)

  • stable/CDP (that could take stTokens as collateral)

  • enabling stToken for fees on the base chain

The Stride Foundation will prioritize onboarding chains based on LP capital and potential stToken utility, so the more the merrier! 

The default hub for stToken liquidity is Osmosis. If you think a different DEX is better for your token (e.g. Astroport is more native to the Neutron community), please let the Stride Foundation know. 

Mainnet Testing Flow

After all of these steps are done, you or one of the Stride core contributors will run through additional testing before mainnet deployment. These tests include

  1. Local <> Testnet flow

  2. Testnet <> Testnet flow

  3. “Firehose” which spins up thousands of accounts and fuzz-tests locally

  4. Local <> Mainnet flow

  5. Mainnet <> Mainnet flow

You should not need to worry about these steps. 

Go-To-Market

Launches are most successful when both projects coordinate marketing efforts. At minimum, this should entail joint Twitter co-marketing and one joint Twitter Spaces talking through the partnership with the community. 

Of course, we are extremely open to additional marketing efforts! 

Next Steps

As a quick recap, please send the Stride Foundation

  1. A PR with all local tests passing. Also include the query used to verify ICA messages are enabled

  2. Confirmation of LP capital

  3. Confirmation of stToken utility

The Foundation will follow up with a timeline and a Go-To-Market plan.  

Stride Labs

Last updated:

9/17/24

Stride Labs

Last updated:

9/17/24