Appendix: Staking Pool

This design is still a work in progress.

Assets that are staked in a proof-of-stake network are generally not liquid, and require a lengthy (21 day) unbonding period to un-stake. Therefore, an abstraction has to be built on top of staked assets to make them liquid and convenient to trade. Stargaze accomplishes this with staking derivates, implemented via an on-chain staking pool.

Stargaze creator coins are implemented as staking derivatives. The staking pool wraps around the Cosmos staking module, abstracting out rewards and the unbonding period. Users can buy and sell creator coins via the pool, and get a fixed interest rate.

The staking pool charges a fee (initially 10%) as a reserve for sell orders, and as slashing insurance.

Buying / selling creator coins

The price of a creator coin is determined via a bonding curve. For buys, STARS are sent to the pool and new creator coins are minted. For sells, STARS are distributed from pool reserves and creator coins are burned.

On each block, rewards are distributed to each creator coin at a fixed interest rate (as determined by governance) from the pool.

Validators

The pool delegates to 10 validators (The Cluster), selected based on the number of missing blocks and voting power. Validators in The Cluster are rotated each month, so other validators get a chance to participate. The next validator to delegate to is selected via a round robin algorithm.

If a validator gets slashed, they are excluded from being part of The Cluster for 6 months. Slashing losses are socialized across all creator coins.

Pool operation

The staking pool attempts to maintain a staked STARS rate as determined by governance. When the staked rate goes above this value (i.e: 80%), STARS are unbonded in a FIFO manner to fill up pool reserves. When it is below this value, more STARS from the pool are delegated. The pool maintains a single delegation with each validator in The Cluster, and delegates and unbonds from this single delegation.