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.
-
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.
-
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.
-
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:
- Identity correct utilities in Shutter Infra to get user role and feed to frontend & smart contracts
- List blockchains to support
- Does our solution need to be flexible to provide rewards in SHU, ETH or other tokens?
- Which reward parameters should be changeable by Shutter DAO?
- 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 |
- Onboarding and identifying/creating utilities in Shutter Infra for getting user role
- Discussions to decide on open questions and align on architecture
- Final Architecture Draft + Presentation
- Design Frontend UX
|Week 2 & 3 |
- Coding and Deployments for Staking & Delegation smart contracts
- Frontend NextJS WebApp Coding + Hosting
|Week 4 & 5 |
- Testing
- Edge case Handling
Team Size:
- Frontend Designer: 1, working during week 1: Needed to design frontend UX for stake, delegate, view delegated keypers etc
- Full stack Solidity Developer (3 years experience in solidity) : 1, working during weeks 1-5
- NextJS Developer (4 years experience): 1,working during weeks 1-5
- Devops specialist (6 years experience): 1,working during week 3, needed to configure CI/CD and hosting services
- QA : 1,working during week 4 and 5, needed for testing as many edge cases as possible
- 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.