Multichain Liquid Staking
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.
Stride is built using Cosmos SDK and Tendermint. 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?
Running a Mainnet Node
If you want to setup your node for the Stride mainnet, find the relevant files and instructions here
Getting Started as a Developer
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 (various chains, relayers, bats).
git submodule update --init --recursive
Build executables, initialize state, and start the network with
make start-docker build=sgjotr
You can optionally pass build arguments to specify which binary to rebuild
s
This will re-build the Stride binary (default)g
This will re-build the Gaia binaryj
This will re-build the Juno binaryo
This will re-build the Osmo binaryt
This will re-build the Stargaze binarye
This will re-build the Evmos binaryr
This will re-build the Go Relayer binaryh
This will re-build the Hermes binary
Example: make start-docker build=sg
, this will:
- Rebuild the Stride and Gaia binaries
- Start 1 Stride and 1 Gaia node in the docker
- Start Relayers
To bring down the chain, execute:
make stop-docker
To test the chain with a mnemonic that has tokens (e.g. sending Stride transactions), you can use the VAL_MNEMONIC_1, which is
close soup mirror crew erode defy knock trigger gather eyebrow tent farm gym gloom base lemon sleep weekend rich forget diagram hurt prize fly
This mnemonic will have tokens on every chain running locally.
Running integration tests
Ensure submoules are updated
git submodule update --init --recursive
Build Stride, Gaia, Evmos, and the go relayer
make start-docker build=sger
Run integration tests
make test-integration-docker
Making changes to this repository
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.)
Unit tests
To run unit tests for the whole project, execute:
make unit-test
To run unit tests for a particular module (e.g. the stakeibc module), execute:
make unit-test path=stakeibc
To run unit tests for a particular package (e.g. the stakeibc module), execute:
make unit-test path=stakeibc/types
To inspect unit test coverage, execute:
make test-cover
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 permissionly 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 "redeem" 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.
Attribution
Stride is proud to be an open-source project, and we welcome all other projects to use our repo. We use modules from the cosmos-sdk and other open source projects.
We operate under the Apache 2.0 License, and have used the following modules from fellow Cosmos projects. Huge thank you to these projects!
We use the following modules from Osmosis provided under this License:
x/epochs
x/mint
x/ratelimit
We use the following module (marketed as public infra) from Quicksilver provided under this License:
x/interchainqueries
Relevant licenses with full attribution can be found in the subdirectories.