Exploring Sanctum On-Chain: A Deep Dive with SolanaFM
This week, we uncover the actions taking place on-chain when staking, unstaking or swapping stake positions with Sanctum.
Contents
Introduction
What is Sanctum?
Sanctum Unstake Program
Sanctum Router Program
On-Chain Addresses
Exploring Sanctum Transactions
Bottom Line
Introduction
Over the last few weeks, Solana’s Liquid Staking landscape has seen a surge in volume and activity.
If you’re staking (or planning to stake) SOL, it is important to know how to use tools like sanctum.so when the time comes to unstake your SOL.
This deep dive will cover the basic details of Sanctum and how to verify your unstaking transactions on SolanaFM Explorer.
What is Sanctum?
Sanctum is an on-chain stability protocol on Solana, focused on unlocking staked SOL to be used throughout DeFi.
Unstaking takes one epoch (2-3 days), while the option to unstake instantly is typically offered for a higher fee. Sanctum aims to tackle these issues by aggregating the best routes for users to unstake their SOL or swap their stake instantly with the lowest fees possible.
The protocol offers instant unstaking across 11 Liquid Staking Tokens (LSTs):
bSOL (bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1)
cgntSOL (CgnTSoL3DgY9SFHxcLj6CgCgKKoTBr6tp4CPAEWy25DE)
daoSOL (GEJpt3Wjmr628FqXxTgxMce1pLntcPV4uFi8ksxMyPQh)
eSOL (Hg35Vd8K3BS2pLB3xwC2WqQV8pmpCm3oNRGYP1PEpmCM)
jitoSOL (J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn)
JSOL (7Q2afV64in6N6SeZsAAB81TJzwDoD6zpqmHkzi9Dcavn)
laineSOL (LAinEtNLgpmCP9Rvsf5Hn8W6EhNiKLZQti1xfWMLy6X)
mSOL (mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So)
riskSOL (C4kq9QRFLAqwYHK7p4Ez54KMZLZNw2yLsiT3KN4FSmdH)
scnSOL (5oVNBeEEQvYi1cX3ir8Dx5n1P7pdxydbGF2X4TxVusJm)
stSOL (7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj)
Let’s dive deeper into how the users interact with the protocol on-chain.
Sanctum On-Chain Addresses
The following programs and accounts involved in Sanctum transactions have been tagged on solana.fm:
Sanctum Router Program (stkitrT1Uoy18Dk1fTrgPw8W6MVzoCfYoAFT4MLsmhq)
Sanctum Unstake Program (unpXTU2Ndrc7WWNyEhQWe4udTzSibLPi25SXv2xbCHQ)
Sanctum SOL Reserve Pool (3rBnnH9TTgd3xwu48rnzGsaQkSr1hR64nY71DrDt6VrQ)
Sanctum Unstake Program
The Sanctum Unstake Program controls the Sanctum SOL Reserve Pool, which instantly provides liquid SOL to the users that unstake their SOL via Unstake.It.
Pro-Tip: You can view the program’s latest activity under ‘Transactions’ and explore the DeFi strategies of the other wallets unstaking their SOL!
Sanctum Router Program
The Sanctum Router Program is the central program that powers Sanctum — it leverages on composability, cross-invoking programs, accounts and various stake pools on Solana to provide an interface for users to swap LSTs without dealing with the stake accounts in-between.
To see how these programs work, let’s take a look at some examples on-chain.
Exploring Sanctum Transactions
Users typically interact with Sanctum via the following actions:
Instant Unstake
Swapping Stake
Instant Stake
Instant Unstake
Transaction Link:
In this transaction, the user exchanges their stake account (worth 1 SOL) for small fee to instantly receive 0.9993 SOL.
The Sanctum Unstake Program calls the “Unstake” instruction to transfer the SOL from the Sanctum SOL Reserve Pool to the user’s wallet, and subsequently calls the “DeactivateStakeAccount” instruction to deactivate the user’s stake account.
Swapping Stake
Transaction Link:
In this transaction, the user swaps 7.36 JitoSOL into 7.21 bSOL by splitting their staked SOL from the initial validator stake account (Jito) and merging into the next validator stake account (BlazeStake).
The Sanctum Router Program calls the “SwapViaStake” instruction, calling Cross-Program Invocations (CPIs) for the following actions to take place:
Split SOL from Jito validator stake account into newly-created stake account
Burn JitoSOL
Deposit new stake account into BlazeStake validator stake account
Mint bSOL
Transfer minted bSOL to the user’s wallet
Instant Stake
Transaction Link:
Users can also instantly stake their SOL by directly swap their liquid SOL into an LST.
In this transaction, the user stakes 40 SOL to receive 38.1 JitoSOL via the following route:
a. User wraps SOL into wSOL, then transfers wSOL into the BlazeStake Reserve Pool to mint bSOL
b. Swap bSOL into JitoSOL via Jupiter Aggregator
c. Transfer swapped JitoSOL back to the user’s wallet
Bottom Line
There are many other transactions and routes to explore on Sanctum; with the basics of the Sanctum program covered, you’ll be able to navigate around the data and explore more staking/unstaking strategies!