Fully permissionless liquid staking.
| Information | Account Address |
|---|---|
| Single Pool | SVSPxpvHdN29nkVg9rPapPNDddN5DipNLRUFhyjFThE |
The Single-Validator Stake Pool is an onchain program that enables liquid staking with zero fees, no counterparty, and 100% capital efficiency. The program defines a canonical pool for every vote account, which can be initialized permissionlessly, and mints tokens in exchange for stake delegated to its designated validator.
The program also allows permissionless harvesting of Jito tips and other MEV rewards, turning liquid sol paid into the stake account into active stake earning rewards, functionally distributing these earnings to all LST holders just like protocol staking rewards.
Users can only deposit and withdraw active stake, but liquid sol deposit is coming in a future update.
The Single Pool Program has received three external audits:
- Zellic (2024-01-02)
- Review commit hash
ef44df9 - Final report https://github.com/anza-xyz/security-audits/blob/master/spl/ZellicSinglePoolAudit-2024-01-02.pdf
- Review commit hash
- Neodyme (2023-08-08)
- Review commit hash
735d729 - Final report https://github.com/anza-xyz/security-audits/blob/master/spl/NeodymeSinglePoolAudit-2023-08-08.pdf
- Review commit hash
- Zellic (2023-06-21)
- Review commit hash
9dbdc3b - Final report https://github.com/anza-xyz/security-audits/blob/master/spl/ZellicSinglePoolAudit-2023-06-21.pdf
- Review commit hash
To build the Single Pool Program, you can run cargo-build-sbf or use the Makefile
command:
cargo build-sbf --manifest-path program/Cargo.toml
make build-sbf-programThe BPF program deployed on all clusters is built with solana-verify and can be verified independently. First, find the program hash from the deployed build on Mainnet-Beta:
solana-verify get-program-hash -um SVSPxpvHdN29nkVg9rPapPNDddN5DipNLRUFhyjFThEAs of v6.0.0, the Github release tag will be embedded in the deployed program binary. If you do not know the currently deployed Single Pool version, you may perform:
query-security-txt -um SVSPxpvHdN29nkVg9rPapPNDddN5DipNLRUFhyjFThEAnd observe the "Source release" field. Note the above command will not work until v6.0.0 is live.
Once this is done, or if you already know the proper release tag, you may check it out and determine the progam hash via:
solana-verify build --library-name spl_single_poolThe hash from Mainnet-Beta and the hash you compute locally should be identical.