👤Governance Shadow Token
Adrena is using the solana-governance-program for on-chain governance, and it's community UI Realm, but with a particular twist...
Adrena governance rights are held by ADX token holders, but there are declination depending of the state of that ADX token.
First an interlude about the different ADX tokens states, after that we will analyze the particular challenges it brought and how we solved it with the ShadowGovernanceToken™️.
Staked
Staked tokens have been deposited into the Adrena program in order to grant the user his share of the 20% rev share allocated to ADX stakers and governance rights 1:1.
They can be reclaimed into the Liquid state at any given time at no cost.
Duration Locked Stake
Duration Locked Stake tokens have been deposited into the Adrena program in order to grant the user his share of the 20% rev share allocated to ADX stakers and governance rights.
The twist is that the rev share and governance rights here are boosted, based on the duration of the lock chosen by the user.
They can be reclaimed into the Liquid state at any given time if they agree to pay a fee based on the remaining duration of the lock (range bound between 15 and 40% of the principal amount).
Cutting to the chase: ADX tokens cannot be used directly in the solana-governance-program, but have to be first handed over to the Adrena program.
3 situations:
some ADX holder can vote (1:1) but cannot trade their tokens (Vesters and Staked)
some ADX holder require amplified voting power (1:x) while their tokens are locked (Locked Stakers)
some ADX holder have liquid tokens and have (1:1) voting rights (Liquid holders and Stakers)
In order to cater to each of them, simply having ADX doesn't cut it. Solana governance program only support a single token for governance (and a council token that we don't use).
Adrena smart contract initialize and fully controls ADX mint, and has an extra mint for the ShadowGovernanceToken which is the actual token used in our Realm governance.
The governance program has a delegation feature that allow a voting token holder to delegate his voting right to another user, this is what the program does when he needs to grants voting rights to a user based on the above scenarios.
This allow the program to control voting right precisely and with high granularity, with minimal disturbance for the user: base usage of realm also force the user to deposit tokens for the duration of the vote, the only difference is that here that this action is done on the Adrena front end rather than on Realm.
Eventually we could make it more user friendly by having opened proposals showing on our UI directly.
Last updated