Setting up SVSP
What You Need to Do
First, request to join the TG Onboarding Group to set up your Single Validator Stake Pool. We currently have a very long onboarding queue. We will be prioritising validators who wish to utilise the LST as their core product, and have a solid, creative and unique business plan to attract stake to their LST.
After you've been approved by the team:
You need to set up a token mint for your Validator LST. This is where you set up the token name, symbol (e.g. pwrSOL) and icon
Then, pass the team the mint authority + your validator vote account
We’ll be able to use the mint authority and validator vote account to deploy the Single Validator Stake Pool under the Sanctum multi-sig.
You now own your own Single Validator Stake Pool.
Run a crank to update your SVSP.
1. Prepare Off-chain Metadata and Token Logo
First, In order to serve the off-chain metadata and the token logo image, we need to decide where should these files be hosted.
Metaplex foundation has an excellent guide explaining some of the options for storage providers: https://developers.metaplex.com/storage-providers. The documentation is targeted towrads NFT projects but it is still applicable to our situation.
Once you picked a storage provider, we can proceed to upload your token logo image file. For example, here is pwrSOL token logo hosted on Arweave: https://arweave.net/vmJI1aPZNfTTIWH7ZLFxBP1VK7ptapg1hBukoDDNPME
With the URL of your hosted token logo image, we can prepare a json
file containing the off-chain metadata and upload it to your storage provider of choice, e.g.:
With the off-chain metadata correctly pointing your token logo image hosted on a storage provider, we can now proceed to the on-chain portion of the setup process.
2. Setting Up Token Mint and On-chain Metadata Accounts
Let's start by preparing a json
file containing your token's on-chain metadata. The uri
field should be set to the URL obtained from the last step (off-chain metadata), e.g.:
For creating a token mint account and an on-chain metadata account, we like to use metaboss
command line tool: https://metaboss.rs/create.html
After a successful run, you should see the signature of the transaction as well as token mint address and on-chain metadata address e.g.:
If you want to use vanity key for your token mint, then you can first grind a keypair using solana-keygen:
Once you obtain a keypair, run metaboss:
After your token mint account is setup, the freeze authority of the token should be disabled as follows:
And transfer the mint authority to Sanctum:
GRwm4EXMyVwtftQeTft7DZT3HBRxx439PrKq4oM6BwoZ
is the manager key controlled by Sanctum.
By using an explorer, make sure the following values are correctly set for your token mint account:
9 decimals
0 initial supply
no freeze authority
And confirm the on-chain metadata is correctly loading, e.g.:
Creating a SVT
To start, we’ll be able to do all of this on our end, so no worries! If you have any questions just let us know and we’ll be happy to answer them.
./setup-sanctum-stake-pool.sh $VALIDATOR_VOTE_ACCOUNT_PUBKEY $TOKEN_ADDRESS
./sanctum-stake-pool-binary set-fee $VALIDATOR_VOTE_ACCOUNT_PUBKEY sol-deposit 1 1000
Trying out the SVT (WIP)
Your SVT pool has been created. To interact with it via the CLI you need to build the program.
git clone
our stake pool repository : https://github.com/igneous-labs/sanctum-spl-stake-pool
Go to the correct directory:
cd stake-pool
Build the program:
cargo build --release
then chmod +x
it
When you run it you should see something like this:
View your stake pool with ./spl-stake-pool list $POOL_ADDRESS --verbose
And seed your stake pool with /spl-stake-pool deposit-stake --help
Updating the SVT (WIP)
To make sure there’s always a backup, we want you to run the stake pool update command every epoch. This is a permissionless crank that is needed to ensure the functioning of the stake pool. This crank costs 10,000 lamports to run and should be run as soon as the epoch passes (if we don’t run it, nobody can interact with the stake pool)
Right now, the easiest way to do this is to git clone
our stake pool repository at
https://github.com/igneous-labs/sanctum-spl-stake-pool/tree/sanctum-spl-pool-deploy/stake-pool%2Fcli, build the stake pool program, and then run spl-stake-pool update
command:
We’re going to be working on a better way to do this and are open to suggestions.
Last updated