Welcome to Stride!

Multichain Liquid Staking

Twitter | Discord | Website

What is Stride?

Stride is a blockchain ("zone") that provides liquidity for staked assets. Using Stride, you can earn both staking and DeFi yields across the Cosmos IBC ecosystem. Read our "Meet Stride" blog post to learn more about why we built Stride.

With the successful launch of our public testnet behind us, we’re excited to announce Stride’s plans for our mainnet launch in July. On the PoolParty testnet, we support liquid staking stATOM, but Stride’s vision is much broader: we aim to provide liquid staking for all chains in the Cosmos ecosystem. The process to onboard new chains is simple; anyone can propose onboarding a new chain through a governance vote, which will automatically onboard the new chain if passed.

At launch, we are prioritizing the largest Cosmos chains: we’ll launch with ATOM and 1-2 other high volume Cosmos chains. After launch, we plan on rapidly expanding our reach throughout the Cosmos ecosystem. The chains and tokens that we plan to onboard later this year are:

Cosmos Hub (stATOM), Juno (stJUNO), Secret (stSCRT), Osmosis (stOSMO), Kava (stKAVA), Oasis (stROSE), Axelar (stAXL), Akash (stAKT), Evmos (stEVMOS), Injective (stINJ), Regen (stREGEN), Sommelier (stSOMM), Band (stBAND), dYdX (stDYDX), Terra V2 (stLUNA), Stargaze (stSTARS), Kujira (stKUJI), Umee (stUMEE), E-Money (stNGM), Crypto.Org (stCRO), Comdex (stCMDX), Sifchain (stEROWAN), Crescent Network (stCRE), MediBloc (stMED), Persistence (stXPRT), Iris (stIRIS), AssetMantle (stMNTL), Sentinel (stDVPN), BitSong (stBTSG), Cheqd (stCHEQ), Chihuahua (stHUAHUA), KiChain (stXKI), Ixo (stIXO), Microtick (stTICK), Fetch.Ai (stFET), Konstellation (stDARC), Desmos (stDSM), Bitcanna (stBCNA), Lum Network (stLUM), Bostrom (stBOOT), Likecoin (stLIKE), Dig Chain (stDIG), RiZON (stATOLO), OmniFlix (stFLIX), Decentr (stDEC), Vidulum (stVDL), Altered Carbon (stACB), Shentu (stCTK), and others.

Many more tokens will launch in the cosmos ecosystem over the coming months and years. Stride plans to support all IBCv3-compatible tokens as “st”-Tokens.

Stride is built using Cosmos SDK and Tendermint and created with Ignite. Stride allows users to liquid stake any IBC-compatible cosmos SDK native appchain token. Under the hood, Stride leverages the Inter-Blockchain Communication protocol, Interchain Accounts and Interchain Queries.

How does Multichain Liquid Staking work?

Getting Started as a Developer

Installing Stride

To install the latest version of Stride blockchain node binary, execute the following command on your machine:

git clone https://github.com/Stride-Labs/stride

Test your installation by navigating to the stride directory and executing:

ignite chain serve

The serve command installs dependencies, builds, initializes, and starts your blockchain in development mode. You should see logs bring printed to your shell.

If you have any issues with installation, please reach out to our team on Discord.

You can learn more about the install process here or reference these helpful resources:

Developing on Stride

Developers who wish to develop on Stride can easily spin up 3 Stride nodes, 3 Gaia nodes, 1 Hermes relayer and 1 interchain-queries relayer. The Gaia nodes simulate the Cosmos Hub (Gaia) zone in local development node, and the relayers allow Stride zone to interact with that instance of Gaia.

The fastest way to develop on Stride is local development mode.

Set up local development mode

Install the required git submodule dependencies (gaia, hermes, interchain-queries).

git submodule update --init

Build executables, initialize state, and start the network with

make init-local build=sghi

You can optionally pass build arguments to specify which binary to rebuild

  1. s This will re-build the Stride binary (default)
  2. g This will re-build the Gaia binary
  3. h This will re-build the Hermes binary
  4. i This will re-build the ICQ binary

Example: make init-local build=sg, this will:

  • Rebuild the Stride and Gaia binarys
  • Start 1 Stride and 1 Gaia node in the background
  • Start Hermes and ICQ Relayers

You can optionally pass cache=true to restore the state from a backup instead of re-intializing it.

To bring down the chain, execute:

make stop

Making changes to this repository

Commits for scaffolded code

The easiest way to develop cosmos-sdk applications is by using the ignite cli to scaffold code. Ignite (developed by the core cosmos team at Tendermint) makes it possible to scaffold new chains, run relayers, build cosmos related proto files, add messages/queries, add new data structures and more. The drawback of creating thousands of lines of code using ignite is that it is difficult to discern which changes were made by the ignite cli and which changes were made manually by developers. To make it easier to review code written using ignite and to make it easier to retrace our steps if something breaks later, add a commit for each ignite command directly after executing it.

For example, adding a new message type and updating the logic of that message would be two commits.

// add the new data type
>>> ignite scaffold list loan amount fee collateral deadline state borrower lender
>>> git add . && git commit -m 'ignite scaffold list loan amount fee collateral deadline state borrower lender'
// make some updates to the keeper method in your code editor
>>> git add . && git commit -m 'update loan list keeper method'

An example of a PR using this strategy can be found here. Notice, it's easy to differentiate between changes made by ignite and those made manually by reviewing commits. For example, in commit fd3e254bc0, it's easy to see that a few lines were changes manually even though nearly ~300k LOC were scaffolded.

Code review format

Opening a pull request (PR) will automatically create Summary and Test plan fields in the description. In the summary, add a high-level summary of what the change entails. For pull requests that scaffold ignite code, include the ignite scaffold commands run.

Summary

Add summary of the pull request here (E.g. This pull request adds XYZ feature to the x/ABC module and associated unit tests.)

Test plan

Add test plan here (E.g. Test feature XYZ by executing unit tests D and E, with sh scripts/tests/unit-test-D.sh and sh scripts/tests/unit-test-E.sh)

Configure

Your blockchain in development can be configured with config.yml. To learn more, see the Starport docs.

Release

To release a new version of your blockchain, create and push a new tag with v prefix. A new draft release with the configured targets will be created.

git tag v0.1
git push origin v0.1

After a draft release is created, make your final changes from the release page and publish it.

Stride's Technical Architecture

Users stake their tokens on Stride from any Cosmos chain. Rewards accumulate in real time. No minimum. They will receive staked tokens immediately when they liquid stake. These staked tokens can be freely traded, and can be redeemed with Stride at any time to receive your original tokens plus staking rewards.

On the backend, Stride permissionlessly stakes these tokens on the host chain and compounds user rewards. Stride lets users use your staked assets to compound their yields. Continue to earn staking yield, and earn additional yield by lending, LPing, and more. They can set their own risk tolerance in Cosmos DeFi.

Users can always redeem from Stride. When they select "redeeem" on the Stride website, Stride will initiate unbonding on the host zone. Once the unbonding period elapses, the users will receive native tokens in their wallets.


Stride's Testnet: PoolParty!

This contains instructions for how to connect to Stride's testnet, PoolParty!

We've tried to keep the instructions as simple as possible, but if you have any questions, please don't hesitate to contact us over email, on Twitter, or at our Discord.

Requirements for this testnet are quite minimal. You should have a 4 CPU 32 GB RAM machine. We've only tested this build on OSX and Linux machines, but we hope to support Windows soon.

Installation

Run the following command to install PoolParty

bash -c "$(curl -sSL install.poolparty.stridelabs.co)"

Running Stride Commands

Please add the repo with your Stride binary (defaults to $HOME/go/bin) to your .bashrc or .zshrc file. Then, you can run strided automatically.

For example, run strided q bank balances stride159atdlc3ksl50g0659w5tq42wwer334ajl7xnq to see the balance of Stride's address.

Another, practical example, if you run

strided keys list

you can see your local keys. If you wish to make a new account, please run

strided keys add <YOUR_WALLET_NAME>

If you already have a wallet and you want to restore it

strided keys add <YOUR_WALLET_NAME> --recover

If you run strided q help, you'll see a list of potential options. Some useful flows might be

strided tx stakeibc liquid-stake
strided tx stakeibc redeem-stake

Being a Validator

If you want to convert your node into a validator, please run

    strided tx staking create-validator \
    --chain-id "<CHAIN_ID>" \
    --commission-rate 0.05 \
    --commission-max-rate 0.2 \
    --commission-max-change-rate 0.1 \
    --min-self-delegation "1000000" \
    --amount 1000000ustrd \
    --pubkey $(strided tendermint show-validator) \
    --moniker "<YOUR_MONIKER>" \
    --gas="auto" \
    --from <YOUR_WALLET_NAME> 

You can specify your own commission values or add a description of your validator, such as --identity, --website, etc.

Block Explorer

For now, we're hosting a Ping.Pub block explorer here. We're working on integrating a more robust block explorer, stay tuned.

FAQ

Where can I get some tokens?

To get tokens, message $faucet {{ADDRESS}} on Discord. For example, I would type $faucet stride159atdlc3ksl50g0659w5tq42wwer334ajl7xnq.

Please don't spam this.

Are there any variables I should know about?

If your local strided is asking you for any of these, please know:

CHAIN_ID = STRIDE-1
KEYRING_BACKEND = test
HOST_ZONE = GAIA 
STRIDE_CURRENCY = ustrd (1,000,000 ustrd = 1 STRD)
GAIA_CURRENCY = uatom (1,000,000 uatom = 1 ATOM)
GAIA_CURRENCY_ON_STRIDE = ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2

How can I relaunch my Node?

When you first install your testnet, you should have seen two sh commands printed at the end. These contain instructions for how to connect to your testnet.

If you used the presets, you should be able to run the following command to relaunch your node.

strided start
or
sh $HOME/.stride/poolparty/launch_poolparty.sh

Why does my node need a nickname?

Your node's nickname is how others can see it on the block explorer. For example, if you become a validator, you'll appear as your node's nickname.

I'm running into a permissions issue when building, what should I do?

If you're running into a permission error of the flavor

mkdir: {{path}}: Permission Denied

If so, you should run chmod +rw {{path}} to fix the permissions.

I'm running into an error building, what could it be?

Please DM us your logfile, located at $HOME/.stride/install.log, and we can help you debug.

One thing to check, Stride requires go version 1.18. Please install this here.

How to unjail a jailed validator?

If your validator does not sign the blocks, then he will be jailed. A jailed validator is trapped for 10 minutes and only after this period you can use the command to unjail

strided tx slashing unjail --chain-id <CHAIN_ID> --from YOUR_WALLET_NAME

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. We also welcome all discussion in #engineering or #questions in our Discord.


What’s Next
Did this page help you?