Staking Alliance Proposal
iSOL — indexed SOL
A single SPL token that unites liquidity of all stake pools.
iSOL implementation 1
iSOL as common LP token. See [Public] Omniswap: a Staked SOL AMM for details.
iSOL implementation 2
iSOL as simple index.
Deposits:
We create a bank account that accepts deposits in jSOL, mSOL, scnSOL, stSOL, and gives back iSOL. Any and all deposits into this bank account will be put into a private N-asset LP.
- There is a “fair price” of iSOL that’s determined by the weighted average value of the xSOL in the bank account. Will we run into Gresham’s Law..?
- in the degenerate case a person could put in a worthless xSOL and crash the entire system
- this is actually dreadful. we have to calculate the amount of SOL to give, and we shouldn’t use an oracle
- OK let’s handwave this for now and say that we have the weighted average value. OK moving on.
Withdrawals:
- simplest and fairest way is to withdraw proportionally from the N-asset LP bank account.
- then, for good UX, swap all those assets to SOL (nobody wants to hold like 10 different SOL tokens)
- but this means we’ll have to have xSOL-SOL routes for all xSOLs, which defeats the purpose.
- a better way is to calculate how much each SOL is worth in the open market, and unstake from an amount of xSOL (1 token).
- in essence, do an “internal swap” from xSOL to e.g. mSOL (a pool with deep liquidity), then mSOL → SOL.
- eventually, we would swap iSOL directly to SOL in the open market (but this requires an LP with liquidity)
Why would anyone use iSOL?
for stake pools