New Serum Governance System Proposal

TDM Blockchain
6 min readOct 27, 2022

--

TDM Blockchain is excited to propose a discussion to the SRM community to adopt an all-new governance system for the Serum DAO. With this new system, comes a new Community Token that we’re calling gSRM. This token will be used to participate in Serum’s governance and proposals. Along with this, we’re also introducing new plugins on the Realms Explorer to allow ease of use for DAO members to participate in the Serum DAO and also introduce a new feature on Realms that would allow DAOs to participate in each other’s proposals

A huge shoutout to Sebastian Bor from the Solana team for assisting us with the numerous doubts and issues we came across while building all of this!

New Governance System Summary

  • New token, gSRM, representing locked SRM
  • In order to vote in governance you must lock your SRM to gSRM
  • Unlocking/locking take 7 day each (can be adjusted by DAO later)
  • Serum DAO can grant vesting SRM to individuals/DAOs to vote in governance while vesting
  • All new open-source DAO-to-DAO voting plugin for Realms

Source code for Serum Governance Token

We believe that this new governance system for Serum DAO and the mechanics behind gSRM, would incentivise members of the Serum community to hold their SRM tokens and thus benefiting both the economics and the community. This system would allow key contributors in the Serum Ecosystem to be key decision makers, as one would expect them to be.

The mechanics behind the new gSRM token is controlled by the new Serum Governance Token program. This program not only allow existing holders of SRM to lock their tokens in exchange for gSRM tokens, which they can then use to participate in the DAO, but also allows vesting of SRM tokens, which is what the Serum DAO will be using to fund future grants. This would mean grant recipients will now have their SRM tokens vested over a configured period of time, but will still have voting weight equivalent to the total grant amount to vote in DAO proposals. Unlocking of the locked/vested SRM tokens will also be done by the program.

Let’s now look at how existing SRM holders and future grant recipients will be interacting with the DAO on Realms,

Lock existing SRM

  • SRM holders will see an option in the Realms UI to lock up their SRM tokens.
Lock your SRM to claim gSRM
  • On successfully locking their SRM, they will receive a Claim Ticket, which can be used to claim equal amount of gSRM, after the configured claim_delay.
Claim Ticket and Locked Account on locking SRM
  • As shown in the screenshot above, users will also be able to see the LockedAccount, which holds information about the SRM tokens they have locked.
  • Once the gSRM has been claimed, they can deposit them in the DAO to create a TokenOwnerRecord for the realm, as one usually does for spl-governance and participate in the DAO.

Unlock locked SRM

  • The LockedAccount UI shown above can be used to redeem any amount of the locked SRM. On doing this, the user will receive a Redeem Ticket, that can be used to unlock the SRM tokens, after the configured redeem_delay
Redeem Ticket

Receive vested SRM

  • As mentioned above, grants from the DAO’s treasury can now be easily vested via a proposal using the newly added plugins on Realms.
Proposal plugins for serum-gov
  • On successfully receiving a grant, the recipient will receive a ClaimTicket for gSRM equivalent to the amount of grant received and also see the VestAccount in the UI, which shows information on how much SRM is redeemable in exchange for gSRM.
Claim Ticket and Vest Account on receiving a vested grant of SRM

The new governance system will be using V3 of spl-governance which now supports MintMaxVoteWeight.Absolute, that’ll be used in the Realm for the DAO. The complete configuration for the Realm is as follows,

  • communityMint : G6DyPo5NjpW5kAvZwvM7hx1KeTUgGmuykPMdKuwWRvER
  • councilToken : GwNuCfsN5bEdtQyghvyqEU8BMornrpnGiGv8tBjTPj3Q
  • communityMintMaxVoteWeightSource : Absolute(100_000_000_000) (100K gSRM)
  • minCommunityTokensToCreateGovernance : 1000_000_000 (1000 gSRM)
  • communityTokenConfig : { tokenType: Liquid }
  • councilTokenConfig : { tokenType: Liquid }

The SRM treasury from the current Realm account for Serum DAO will be transferred to the new Realm account’s DAO wallet, whose GovernanceV2 account will have the following configuration,

  • minCommunityTokensToCreateProposal : 1000_000_000 (1000 gSRM)
  • minCouncilTokensToCreateProposal : 1
  • communityVoteThreshold : YesVotePercentage(50)
  • communityVoteTipping : Disabled
  • maxVotingTime : 604800 (7 days)
  • minInstructionHoldUpTime : 86400 (1 day)
  • councilVoteThreshold : YesVotePercentage(50)
  • councilVoteTipping : Strict
  • councilVetoVoteThreshold : YesVotePercentage(50)
  • communityVetoVoteThreshold : YesVotePercentage(50)

TLDR; Proposals related to the the SRM treasury will require an Approval Quorum of 50K YES votes to pass, along with # of YES votes being >50% of total votes. Voting will last for 7 days, and any transactions will be executable 1 day after approval.

There are certain parameters that control the locking, vesting and unlocking of tokens, and will be configurable by the DAO via proposal. These parameters are as follows

  • claim_delay : The delay after locking SRM tokens to claim gSRM tokens.
  • redeem_delay : The delay after burning gSRM tokens to redeem SRM tokens back.
  • cliff_period : The period of time after which locked SRM starts being vested to the recipient.
  • linear_vesting_period : The period of time the locked SRM tokens are vested for.

The initial set of parameters are as follows,

  • claim_delay : 7 days, or 604800 seconds
  • redeem_delay : 7 days, 604800 seconds
  • cliff_period : 1 year, or 365 days, or 31536000 seconds
  • linear_vesting_period : 6 years, or 2190 days, 182916000 seconds

These values can be verified in the transaction signature here, https://explorer.solana.com/tx/21K6657LRHDnuwDnP53ncM1UKBVhViVvmtyxUxNwGyomph4hUA6piumgrroUmoBUGeDnR9nhP83QV6CiT5prVp8C

DAO-to-DAO

With the new governance system, apart from individual community members, we also want other DAOs as a whole to be a part of Serum DAO, and hence we’re also excited to present a new set of features that now allow DAO-to-DAO interaction within Realms.

This means any DAO registered on Realms can now have proposals to join another DAO, and also vote on proposals from other DAOs. Each action the participating DAO wants to take in the other DAO will be subject to a proposal on its own DAO.

Thus, the new Serum DAO components are applicable to DAO wallets as well as shown below, and any action such as Claim, Redeem, etc will automatically create the necessary proposal within the DAO.

PR for DAO-to-DAO integration on governance-ui

Claim Ticket and Vest Account for a DAO Wallet
Proposal for claiming gSRM as a DAO

And, if a DAO has Community Tokens to join another DAO, users can now easily create a proposal using the new plugin introduced in Realms as shown below,

Proposal plugin for joining another DAO

On successfully joining a DAO, members will be able to see the DAO Memberships on the Treasury page, along with the proposals available for voting. Each vote option would first create a proposal on the participating DAO with a CastVote instruction, which on executing would cast a vote on the other DAO’s proposal.

DAO-to-DAO membership
DAO-to-DAO interaction

That brings us to the end of the announcement. We hope you guys are as excited as us to see these new features and the new Governance System go live, bringing a new wave of users, members, participation, grants and much more to the Serum DAO and Realms Explorer!

--

--