Lido for Solana (“Solido” for short) is a Lido DAO-governed liquid staking protocol for the Solana blockchain. Anyone who stakes their SOL tokens with Lido will be issued an on-chain representation of the SOL staking position with Lido validators, called stSOL.
Lido for Solana gives you:
Further resources:
We continuously develop on the main branch in this repository, the code in the
main branch may not reflect what is deployed on-chain. Please check the
deployments docs for the currently
deployed version, and see the changelog for which versions are
intended for deployment.
This repository contains the source code for the on-chain program, and for the
solido utility to interact with it. The source code for the staking widget,
and documentation, are in a different repository, which is not yet public.
program — Solido, the on-chain Solana BPF program that implements Lido for
Solana.anker — Anker, the on-chain Solana BPF program that implements integration
with the Anchor Protocol on Terra.multisig — A pinned version of the on-chain Serum multisig
program, used as the upgrade authority of the Solido program, and
as the manager of the Solido instance.cli — The command-line solido utility for interacting with the on-chain
programs.docker — Dockerfiles for reproducible builds, and for the maintainer image.testlib — Utilities for writing tests using the solana-program-test test
framework. The individual tests are in program/tests and anker/tests.tests — Scripts that test the actual solido binary and on-chain program.The on-chain programs and solido utility are written in Rust. To build them,
you need:
solido utility)libudev-devlibhidapi-devpkg-configopensslThe Solana version that we test against is listed in our CI config.
This repository contains a Git submodule. To clone it, pass
--recurse-submodules:
$ git clone --recurse-submodules https://github.com/chorusone/solido
If you already cloned the repository without submodules, you can still initialize them later:
$ git submodule init
$ git submodule update
If you have an existing checkout and later update it, make sure to also pass
--recurse-submodules when using git pull and git {checkout,switch}.
To build and test the solido utility, use the normal Cargo commands:
$ cargo test
$ cargo build --release
The solido binary can then be found in target/release.
Building the on-chain programs requires the Solana tool suite:
$ cargo build-bpf
$ cargo test-bpf
The programs lido.so, anker.so, and serum_multisig.so can then be found in
target/deploy.
To build the container image, use buildimage.sh. This will build and package
Solido along with the Solana toolchain into an image chorusone/solido:«hash»,
where «hash» will be the Git hash of the current version of the codebase.
Once built, one can execute into the container interactively:
$ docker run --interactive --tty --rm chorusone/solido:hash /bin/sh
This will provide a shell into the working directory where the Solido artefacts
and the Solana toolchain are located. Inside that directory, the the solido
utility is in solido/cli, and the on-chain programs are in solido/deploy.
Lido for Solana is licensed under the GNU General Public License version 3.
$ claude mcp add solido \
-- python -m otcore.mcp_server <graph>