[RFP] Development of Keyper Incentive Mechanism and (Delegated) Staking - General Magic

Summary.

General Magic is pleased to present this proposal to Shutter DAO 0x36 in response to Shutter DAO’s Request for Proposals for the development of a Keyper Incentive Mechanism and (Delegated) Staking.

Goal: Provide a robust, scalable and flexible solution to stake SHU with incentive mechanisms for Keypers and delegator stakers.

Scope: SHU Staking platform front end and smart contracts.

Objectives:

  • Smooth UX. Minimizing friction for keypers and delegator stakers to participate in the network by staking SHU tokens, enhancing the network’s security and decentralization.
  • Configurable incentive mechanism. Allowing the configuration of different parameters for the incentive mechanism, including but not limited to different reward tokens, locking periods, staking networks, etc.
  • Clean, intuitive and appealing design.
  • Additional features to incentivize long-term commitment, while countering selling pressure. Providing the option to add to the scope streamed rewards and a reward multiplier that provides larger rewards the longer the user locks SHU. We have already implemented these mechanisms on Giveth and it has been very effective to incentivize long term commitment & reduce sell pressure.

Funding:

  • Option A ($35,000 USDC + $50,000 SHU): SHU Staking platform front end and smart contracts with all the main features required + rewards multiplier to incentivize long term commitment & reduce sell pressure.
  • Option B ($50,000 USDC + $100,000 SHU): SHU Staking platform front end and smart contracts with all the main features required + rewards multiplier to incentivize long term commitment & reduce sell pressure + streamed rewards to minimize the new liquid SHU that could be sold in the open market, reducing sell pressure due to incentives and mercenary reward farmers and allow Shutter DAO 0x36 to align stakers with the long term success of the DAO.

Technical Specification:

We propose two staking smart contracts, one for Keypers and one for Token Holders integrated with a NextJs frontend.

  1. Solidity Keypers Staking Contract:

    a. Purpose: Allow Keypers to stake SHU tokens as a commitment to their role.

    b. Features:

         i.   Configurable staking requirement: Uniforms staking requirement, but enables flexibility to adapt them by Shutter DAO 0x36.
         ii.  Configurable rewards: Allows funding the rewards with ETH, SHU and other tokens and in the chosen chains.
         iii. Configurable lock-in periods: Allows a minimum locking period (X months) and/or a default period (i.e. 6 months) after which they can claim a share of fees generated by the system in the native token (e.g. ETH) and/or rewards in SHU based on time locked. 
         iv.  Independent withdrawal of rewards and principal: Claim rewards any time and allow full withdrawal of staked amount after configurable time (default/minimum: 6 months). In our design, claiming rewards is independent from withdrawing principal to provide a better UX and prevent nudging Keypers to unstake. 
         v.   Integrated with DAO governance: Allow validating of new Keyper sets.
         vi.  Reward multiplier: In addition to the default/minimum staking period, the reward multiplier provides larger rewards the longer the keypers lock their SHU. This mechanism already deployed on Giveth has been very effective to incentivize long term commitment and reduce sell pressure.  
         vii. Streamed rewards (Additional feature for scope B): This feature would minimize the liquid SHU that could be sold in the open market, reducing sell pressure due to incentives and mercenary reward farmers. This feature would also allow Shutter DAO 0x36 to offer higher rewards with a linear vesting to attract buyers aligned with the long term success of the DAO.
    

    c. Functions (only major functions are shown):

         i.   addKeyper(address): Add this address to the verified list of keypers who can stake
         ii.  removeKeyper(address): Remove this address
         iii. stake(tokenAmount): Keyper Staking: Provide an incentive for keypers to participate in the network by staking SHU tokens and fulfilling their role. Inspired and slightly modified version of https://github.com/Synthetixio/synthetix/blob/develop/contracts/StakingRewards.sol
         iv.  countRewards(): Offer rewards to keypers who stake their tokens.
    
  2. Solidity Delegation Contract (only major functions shown):

    a. Purpose: Enable SHU token holders to delegate their tokens to keypers.

    b. Features:

         i.   Configurable staking requirement: Enables flexibility to modify the Staking parameters by Shutter DAO 0x36.
         ii.  Configurable rewards: Allows funding the rewards with ETH, SHU and other tokens and in the chosen chains.
         iii. Configurable lock-in periods: Allows a minimum and/or default locking. Liquid stakers can claim a share of fees generated by the system in the native token (e.g. ETH) and/or rewards in SHU at any time. 
         iv.  Independent withdrawal of rewards and principal: Claim rewards any time and allow full withdrawal of staked amount after configurable time. In our design, claiming rewards is independent from withdrawing principal to provide a better UX and prevent nudging delegators to unstake. 
         v.   Reward multiplier: In addition to the default/minimum staking period, the reward multiplier provides larger rewards the longer the delegators lock their SHU. This mechanism already deployed on Giveth has been very effective to incentivize long term commitment and reduce sell pressure.  
         vi.  Additional features for scope B: Streamed rewards: This feature would minimize the liquid SHU that could be sold in the open market, reducing sell pressure due to incentives and mercenary reward farmers. This feature would also allow Shutter DAO 0x36 to offer higher rewards with a linear vesting to attract buyers aligned with the long term success of the DAO.
    

    c. Major functions:

         i.   delegate(tokenAmount, keyperAddress): Delegation: Allow SHU token holders to support specific keypers by delegating their SHU tokens, enhancing the network’s security and decentralization.
         ii.  countRewards(): Offer rewards to SHU token holders who lock their tokens for delegation.
    
  3. NextJs Frontend :

    a. Purpose: Allows Keypers and SHU holders to deposit and withdraw their staked SHU frictionless and implements a simple dashboard to understand the general economics of the system.

    b. Features:

         i.   Stake as keyper.
         ii.  View keyper list.
         iii. Decide staking percentage with slider and Max shortcut
         iv.  Claim rewards.
         v.   Unstake as delegator stakers.
         vi.  Unstake as Keypers.
    

Decisions to be made:

  1. Identity correct utilities in Shutter Infra to get user role and feed to frontend & smart contracts
  2. List blockchains to support
  3. Does our solution need to be flexible to provide rewards in SHU, ETH or other tokens?
  4. Which reward parameters should be changeable by Shutter DAO?
  5. Do we want to add to the scope the features to incentivize long-term commitment, while countering selling pressure? In other words choose between option A and Option B. These options are described in detail in the next section.

Option A ($35,000 USDC + $50,000 SHU):

SHU Staking platform front end and smart contracts with all the main features required + rewards multiplier to incentivize long term commitment & reduce sell pressure.

Timeline:

We estimate that we can fully deliver this project within 5 weeks of starting work.

| Week 1 |

  1. Onboarding and identifying/creating utilities in Shutter Infra for getting user role
  2. Discussions to decide on open questions and align on architecture
  3. Final Architecture Draft + Presentation
  4. Design Frontend UX

|Week 2 & 3 |

  1. Coding and Deployments for Staking & Delegation smart contracts
  2. Frontend NextJS WebApp Coding + Hosting

|Week 4 & 5 |

  1. Testing
  2. Edge case Handling

Team Size:

  1. Frontend Designer: 1, working during week 1: Needed to design frontend UX for stake, delegate, view delegated keypers etc
  2. Full stack Solidity Developer (3 years experience in solidity) : 1, working during weeks 1-5
  3. NextJS Developer (4 years experience): 1,working during weeks 1-5
  4. Devops specialist (6 years experience): 1,working during week 3, needed to configure CI/CD and hosting services
  5. QA : 1,working during week 4 and 5, needed for testing as many edge cases as possible
  6. Project Manager: 1, working during week 1-5, needed for organizing, tracking, managing tasks as per timelines

Pricing

$35,000 USDC + $50,000 SHU for 490 hours of work.

Option B ($50,000 USDC + $100,000 SHU):

SHU Staking platform front end and smart contracts with all the main features required + rewards multiplier to incentivize long term commitment & reduce sell pressure + streamed rewards to minimize the new liquid SHU that could be sold in the open market, reducing sell pressure due to incentives and mercenary reward farmers and allow Shutter DAO 0x36 to align stakers with the long term success of the DAO. This option would entail the resources than option A plus 3 weeks for 1 smart contract engineer and 1 Full Stack developer.

Timeline:

We estimate that we can fully deliver this project within 8 weeks of starting work.

Pricing:

$50,000 USDC + $100,000 SHU for 730 hours of work.

About General Magic.

General Magic is a group of Web3 professionals with deep roots in the Ethereum ecosystem devoted to supporting commons-based organizations, public good projects and web3 organizations. Founded as an offshoot of Giveth in 2020, General Magic is a premier impact-focused agency that supports the design, development, parameterization & communications efforts of public goods projects ranging from Giveth, Commons Stack, the Token Engineering Commons, as well as organizations like ENS, Aragon, and Optimism.

Relevant Experience

General Magic has successfully implemented similar blockchain projects, demonstrating our capability and expertise in smart contract development, DApp design and staking mechanisms.

Some of our relevant projects include:

GIV staking (including GIVpower & GIVstream)

Our team worked with Giveth to design and develop the GIVfarm section of the Giveth platform, which allows users to stake GIV tokens to earn a yield. We also implemented GIVpower a mechanism to provide voting power based on the GIV staked. Both GIVpower and the GIV yield have a multiplier and provide more yields the longer that GIV is staked (minimum 2 weeks and maximum one year).

A further innovation we helped develop is GIVstreams which releases the GIV token rewards over 5 years to encourage long-term value alignment and reduce selling pressure in the early days of the project. We consider this would be a great feature to add, considering the selling pressure SHU is receiving from vesting.

The Giveth staking platform was also opened to other organizations with tokens to take advantage of what we built through the RegenStreams, which allowed projects like Shapeshift and Cult DAO to offer liquidity rewards that are streamed over 5 years.

Asymmetry Finance.

General Magic built the UX and frontend for Asymmetry Finance’s Liquid Staking and Restaking Hub for their afETH product for real Ethereum yields.

3 Likes

@Cotabe Thank you for sharing this great proposal and the references! Could you please provide a few more details on the following points?

  • Decisions to be made: What are the impacts on the timeline and budget (esp. regarding “5.”) regarding the open issues?
  • Upgradeability / Flexibility: How flexible is the design in this area? Is it possible to advance the staking mechanism over time?
  • Budget / Pricing: What is your proposal regarding the disbursement schedule? What are your thoughts regarding a proportionate disbursement in SHU?
3 Likes

Cool to see this proposal!

Have you thought about how this can be deployed and the front-end hosted for the next couple of months? Could you guys host it? Would that increase the budget needed? Or would the DAO need to do another proposal for this?

3 Likes

Hey @jul1an thanks for the questions, I will address them to the best of my capacity:

I just edited the proposal with the updated timeline (option A: 5 weeks, option B: 8 weeks) and budget :point_down: :point_down: :point_down:

Note: we added the multiplier feature to incentivize locking for longer from option A.

There will be configurable parameters by design including but not limited to different total rewards to be distributed, reward tokens, locking periods, staking networks and reward multiplier. We invite the community to suggest the final parameters that could be adapted by Shutter DAO 0x36.

Any additional changes needed after the delivery of the staking platform that falls outside of the scope of this application will need to be addressed case by case. For simple changes, General Magic is in the best disposition to support Shutter DAO 0x36 without additional cost. However, more significant changes would require for Shutter DAO 0x36 to cover the upgrading cost.

I will need to come back to you on this question after asking my team. But we are fine with a disbursement based on milestones.

1 Like

Hi Luis, I also need to ask our CTO about this. I will come back to your question ASAP.

2 Likes

@Cotabe Any feedback on this item?

2 Likes

@jul1an @luis

We can cover the hosting for at least a year. No need for an extra budget or a different proposal.

1 Like

it’s a great proposal!