Skip to content

aSolHQ/solido

 
 

Repository files navigation

Lido for Solana

Coverage

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:

  • Liquidity — No delegation/activation delays and the ability to sell your staked tokens
  • One-click staking — No complicated steps
  • Decentralized security — Assets spread across the industry’s leading validators chosen by the Lido DAO

Further resources:

Repository layout

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 — The on-chain Solana BPF program.
  • 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.
  • tests — Scripts that test the actual solido binary and on-chain program.
  • program/tests — Tests using the solana-program-test test framework.

Building

The on-chain program and solido utility are written in Rust. To build them, you need:

  • An x86_64 Linux machine. Mac should work too, but for reproducibility we target Linux.
  • A Rust toolchain
  • The Solana tool suite (only needed for the on-chain programs, not for the solido utility)
  • Docker (only needed if you want to reproduce the official build, or if you want to avoid installing build tools locally)
  • The following system libraries (listed as Debian package names):
    • libudev-dev
    • libhidapi-dev
    • pkg-config
    • openssl

The Solana version that we test against is listed in our CI config.

Cloning the repository

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}.

Solido utility

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.

On-chain programs

Building the on-chain programs requires the Solana tool suite:

$ cargo build-bpf
$ cargo test-bpf

The programs lido.so and serum_multisig.so can then be found in target/deploy.

Docker container

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.

License

Lido for Solana is licensed under the GNU General Public License version 3.

About

Lido for Solana is a Lido-DAO governed liquid staking protocol for the Solana blockchain.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 89.2%
  • Python 10.5%
  • Shell 0.3%