Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
LABS
Guides

How to Design a Governance Token with Fee-Sharing Rewards

A technical guide on structuring ERC-20 governance tokens that grant holders a claim on protocol revenue, covering mechanisms, contract patterns, and legal implications.
Chainscore © 2026
introduction
ARCHITECTURE

How to Design a Governance Token with Fee-Sharing Rewards

This guide outlines the core architectural patterns for creating a governance token that distributes protocol fees to its holders, aligning incentives between users and stakeholders.

A fee-sharing governance token combines two powerful Web3 primitives: on-chain voting power and direct economic reward. Holders gain the right to propose and vote on protocol upgrades, parameter changes, or treasury allocations, while simultaneously earning a portion of the revenue generated by the protocol's core activities. This model, pioneered by protocols like Compound (COMP) and Uniswap (UNI), creates a strong alignment between a protocol's long-term success and its token holders' financial interests. The core mechanism involves diverting a percentage of protocol fees—such as trading fees from a DEX or interest from a lending market—into a distribution contract that allocates them to token stakers.

Designing this system requires careful consideration of several key components. The token contract itself must be ERC-20 compatible, often with additional functionality for snapshot-based voting. A separate staking or distribution contract holds the tokens that are eligible for rewards and manages the logic for accruing and claiming fees. The fee collection mechanism must be integrated into the core protocol's smart contracts to reliably funnel value to the distributor. Finally, a governance module (like OpenZeppelin's Governor or a custom solution) enables token-weighted voting on proposals. Security audits for all interacting contracts are non-negotiable, as they will hold significant value.

The reward distribution logic is critical for user experience and security. Common patterns include a continuous drip of fees into the staking pool, which users can claim at any time, or a periodic epoch-based distribution that calculates rewards at set intervals. To prevent manipulation, the typical design uses a reward-per-token accumulator that increases over time, allowing users to claim the difference between the current accumulator value and the value at their last interaction. This avoids the need to iterate over all stakers during each distribution. It's also essential to decide if rewards are distributed in the protocol's native token, a stablecoin, or the fee token itself, as this impacts the tokenomics and holder exposure.

Integrating governance requires defining clear proposal and voting parameters. This includes setting a proposal threshold (minimum tokens required to submit), voting delay and period durations, and a quorum requirement. For example, a common setup might require a 1% token supply threshold to propose, a 2-day voting delay, a 3-day voting period, and a 4% quorum. These parameters balance decentralization with efficiency. The governance contract should be granted control over key protocol parameters—like the fee percentage sent to rewards, the treasury multisig, or upgrade capabilities—ensuring token holders have real influence over the protocol's evolution.

When implementing, start with well-audited building blocks. Use OpenZeppelin's ERC20Votes extension for snapshot-enabled tokens and their Governor contract suite for governance. For staking rewards, consider forking a proven contract from projects like Synthetix or using a library like Solmate. A basic fee-sharing staking contract will have functions for stake(), withdraw(), getReward(), and a permissioned notifyRewardAmount() called by the treasury to deposit new fees. Always include a recoverERC20 function for the owner to rescue mistakenly sent tokens, and consider timelocks on governance execution to allow users to exit if a malicious proposal passes.

prerequisites
FOUNDATIONAL CONCEPTS

Prerequisites

Before designing a token with fee-sharing rewards, you need a solid grasp of core smart contract patterns and economic mechanisms.

A governance token with fee-sharing is a dual-purpose asset. It grants voting power over a protocol's decentralized autonomous organization (DAO) while also entitling holders to a portion of the protocol's generated revenue. This model, popularized by protocols like Uniswap (UNI) and SushiSwap (SUSHI), aligns long-term incentives between users and the protocol's success. The core technical challenge is designing a secure, efficient, and transparent mechanism to collect fees and distribute them to token holders.

You must understand key Ethereum Request for Comments (ERC) standards. ERC-20 is the foundation for the fungible token itself. For governance, you'll implement ERC-20Votes or a similar extension to enable snapshot-based voting and delegate power. Crucially, you need a mechanism to track rewards. While you can build this from scratch, many projects use a staking contract where users deposit their tokens to become eligible for fee distributions, often employing a reward-tracking pattern similar to Synthetix's staking rewards contract.

The fee collection logic depends on your protocol's architecture. For a decentralized exchange (DEX), fees are typically taken as a percentage of each swap. For a lending protocol like Aave, fees come from interest rate spreads. These fees must be routed to a central treasury or distributor contract. A common pattern is to use a fee splitter that automatically converts a portion of collected fees (e.g., ETH or USDC) into the governance token on the open market, then distributes it to stakers, a process known as buyback-and-distribute.

Security is paramount. Your contracts will hold and transfer significant value. You must be proficient with smart contract security practices: using audited libraries like OpenZeppelin, understanding reentrancy guards, proper access control with modifiers like onlyOwner, and implementing pull-over-push patterns for reward claims to avoid gas limit issues and denial-of-service attacks. Always plan for a multi-sig or DAO-controlled timelock for privileged functions.

Finally, consider the economic parameters. You must define: the fee percentage taken by the protocol, the distribution ratio (e.g., 100% to stakers, or a split with the treasury), the staking rewards duration (emission schedule), and any lock-up periods for staked tokens to encourage long-term alignment. Tools like cadCAD or Machinations can help model token flow and inflation before deployment.

key-concepts-text
ARCHITECTURE GUIDE

How to Design a Governance Token with Fee-Sharing Rewards

A technical guide to designing a token that combines voting power with a direct claim on protocol revenue, covering key mechanisms, security considerations, and implementation patterns.

A fee-sharing governance token merges two powerful incentives: the right to vote on protocol parameters and a direct financial stake in its success. Unlike standard governance tokens (e.g., early COMP or UNI), which offer only voting rights, these tokens entitle holders to a portion of the protocol's generated fees. This model, popularized by protocols like GMX (with its GLP and GMX tokens) and SushiSwap (xSUSHI), aligns long-term holder and protocol interests by creating a tangible yield stream. The core design challenge is securely and efficiently distributing fees while maintaining functional governance.

The primary architectural decision is the fee distribution mechanism. The two dominant patterns are direct claim and rebasing. In a direct claim system (used by GMX), fees accrue in a designated contract, and users must call a function to claim their pro-rata share, which is calculated based on their token balance at the time of the claim. A rebasing model (conceptually similar to staked ether) automatically increases the token balance of all stakers as fees are collected, making the yield passive but requiring more complex accounting. The choice impacts user experience, gas costs, and tax implications.

Smart contract security is paramount, as the fee distributor holds valuable assets. Key considerations include using pull-over-push patterns for distributions to avoid gas-intensive loops and prevent denial-of-service attacks. The contract should calculate rewards using a points system or a cumulative reward per token metric, as seen in master-chef style contracts, to allow for O(1) complexity. It must also be upgradeable via governance to adapt to new fee sources. A critical audit of the reward math and access controls is non-negotiable before launch.

Integrating governance requires defining which treasury assets are shared. A common model is to distribute a percentage of all protocol-generated fees (e.g., 50% of swap fees, lending interest, or perpetual trading fees) to staked token holders. The remaining fees go to a community treasury, which is itself governed by token votes. This creates a flywheel: successful governance decisions should increase protocol usage and fees, which in turn increases rewards for governance participants. Clearly documenting this economic model in the token's documentation is essential for transparency.

For implementation, a typical Solidity architecture involves three core contracts: the ERC-20 governance token, a staking/vault contract where users lock tokens to earn rewards, and a fee distributor that receives protocol revenue. The distributor uses a function like notifyRewardAmount() to add new fees to the pool. Stakers earn rewards based on the formula: earned = (userBalance * (rewardPerTokenStored - userRewardPerTokenPaid)) / 1e18 + rewards[user]. Developers should reference established codebases like Synthetix's StakingRewards.sol for audited patterns.

Finally, consider the tokenomics and launch strategy. To prevent mercenary capital and promote stability, many protocols implement a vesting schedule for team and investor tokens and may add a lock-up period for staked rewards. The initial distribution should be sufficiently decentralized to avoid governance capture. Monitoring tools like Dune Analytics dashboards for tracking fee generation and reward distribution are crucial for maintaining community trust post-launch. A well-designed fee-sharing token transforms passive holders into active, economically-aligned stewards of the protocol.

revenue-mechanisms
GOVERNANCE TOKEN DESIGN

Common Protocol Revenue Sources

Sustainable fee-sharing models require clear revenue generation. This guide covers the primary mechanisms protocols use to fund token rewards.

ARCHITECTURE

Fee Distribution Model Comparison

A comparison of common fee-sharing mechanisms for governance token design.

FeatureDirect Revenue ShareBuyback-and-BurnStaking Rewards Pool

Distribution Mechanism

Direct transfer to token holders

Protocol buys & burns tokens

Fees accrue to a staking contract

Token Holder Action Required

Immediate Token Value Impact

Low (sell pressure)

High (reduced supply)

Medium (yield incentive)

Typical Claim/Gas Cost

$5-20 per claim

N/A (automatic)

$1-5 per harvest

Governance Utility Alignment

High (direct ownership)

Medium (indirect via scarcity)

High (staking = voting power)

Protocol Treasury Drain

High (direct outflow)

Medium (capital expenditure)

Low (rewards are deferred)

Regulatory Clarity

Low (may be security)

Medium

Low (may be security)

Example Implementation

Sushiswap (xSUSHI)

Binance Coin (BNB)

Compound (COMP staking)

contract-architecture
SMART CONTRACT ARCHITECTURE

How to Design a Governance Token with Fee-Sharing Rewards

A technical guide to architecting a token that combines governance rights with a sustainable revenue distribution mechanism, using Solidity and common DeFi patterns.

A governance token with fee-sharing rewards creates a powerful alignment between token holders and protocol success. The core architecture typically involves two primary contracts: a standard ERC-20 token (often extended with snapshot-based voting like OpenZeppelin's ERC20Votes) and a separate FeeDistributor or RewardsVault contract. The token grants voting power, while the distributor contract collects protocol fees (e.g., from a DEX or lending market) and periodically allocates them to token holders who stake or lock their tokens. This dual-function design incentivizes long-term holding and active participation.

The fee-sharing mechanism's security and fairness depend on its implementation. A common pattern uses a pull-based distribution over push to save gas and prevent failures. Instead of automatically sending rewards, users call a claimRewards function, which calculates their share based on their proportion of the total staked tokens and the accumulated fees since their last claim. The distributor must securely receive fees, often via a receive() or collectFees() function callable only by the core protocol contracts. Use OpenZeppelin's Ownable or AccessControl to restrict these critical functions.

For the calculation, maintain a cumulative reward per token stored in a fixed-point number (e.g., ray or wad from Solmate's FixedPointMathLib) to avoid precision loss. When fees are deposited, update this global accumulator: rewardPerTokenStored += feeAmount * 1e18 / totalStaked. Each user's rewardsEarned is calculated as: (userStake * (rewardPerTokenStored - userRewardPerTokenPaid)) / 1e18 + rewardsPending. This design, inspired by Synthetix's staking rewards, ensures accuracy regardless of when users claim.

Integrating governance requires deciding on a voting mechanism. For gas-efficient on-chain voting, consider ERC-20 snapshots (ERC20Snapshot) or the more advanced ERC20Votes which tracks historical balances for delegation. For complex proposals, off-chain voting with Snapshot.org is popular, where users sign messages with wallets holding the token. The contract must then allow an authorized executor (a TimelockController is recommended) to enact passed proposals after a delay, providing a safety check against malicious governance actions.

Key security considerations include: preventing reentrancy in the distributor's claim function, using a trusted oracle or TWAP for any internal price calculations to avoid manipulation, and implementing a vesting schedule for team/treasury tokens to ensure long-term alignment. Always conduct thorough audits on the interaction between the token, staking, and distributor contracts. A well-architected fee-sharing governance token, like those used by protocols such as Curve (veCRV) or Uniswap (UNI with fee switch proposals), can become a cornerstone of a sustainable decentralized ecosystem.

implementation-steps
GOVERNANCE TOKEN DESIGN

Implementation Steps

A structured approach to designing a token that incentivizes long-term participation through protocol fee distribution.

01

Define the Token Utility and Distribution

Establish the core purpose of your token beyond governance. Key decisions include:

  • Voting Power: Will voting power be 1:1 with token holdings, or use mechanisms like vote-escrow?
  • Fee-Sharing Mechanism: Determine the percentage of protocol fees to distribute (e.g., 50% to stakers, 50% to treasury).
  • Initial Distribution: Plan allocations for community (liquidity mining, airdrops), team (with vesting), and treasury. Avoid excessive concentration.
  • Example: Curve's veCRV model escrows tokens to boost rewards and voting power, aligning long-term incentives.
02

Architect the Staking and Reward Contract

Build the smart contract system that handles token staking and fee distribution.

  • Staking Contract: Users deposit governance tokens to receive a staked representation (e.g., xTOKEN).
  • Reward Distribution: Automatically route a portion of protocol fees (in ETH, stablecoins, or the native token) to the staking contract.
  • Accrual Logic: Implement a reward accrual system, such as tracking rewards per share, allowing users to claim accrued fees at any time.
  • Security: Use established patterns from audited contracts like Synthetix's StakingRewards.sol to mitigate reentrancy and math errors.
03

Integrate with Governance Infrastructure

Connect your token to a governance framework for on-chain proposals and voting.

  • Governance Module: Use a platform like OpenZeppelin Governor or a DAO framework (Aragon, DAOstack) for proposal lifecycle management.
  • Voting Token: Designate your staked token (xTOKEN) or a separate veTOKEN as the voting asset.
  • Proposal Types: Enable votes on treasury spending, parameter changes (like fee share %), and protocol upgrades.
  • Snapshot Integration: For gas-free signaling, integrate with Snapshot.org, using token holdings at a specific block for voting weight.
04

Implement Treasury and Fee Collection

Set up the protocol's financial engine that generates the rewards.

  • Fee Collection Point: Identify where protocol fees accrue (e.g., a swap fee on a DEX, a minting fee on a lending platform).
  • Treasury Contract: Create a secure, multi-sig controlled treasury (using Gnosis Safe) to hold undistributed fees and other assets.
  • Automated Transfers: Use a keeper or a function in your core protocol to periodically send the designated fee share to the staking reward contract.
  • Transparency: Make treasury addresses and flows publicly verifiable on-chain.
05

Plan the Launch and Liquidity Strategy

Execute the token generation event and ensure healthy market dynamics.

  • Liquidity Pools: Bootstrap initial liquidity on a DEX like Uniswap V3 or Balancer. Consider a Liquidity Bootstrapping Pool (LBP) for fair distribution.
  • Incentive Programs: Launch staking rewards and potentially liquidity mining to drive initial adoption and lock-in.
  • Vesting Schedules: Enforce vesting for team and investor allocations using a contract like Sablier or VestingVault.sol.
  • Communicate Clearly: Publish a detailed tokenomics paper and smart contract audit reports (from firms like OpenZeppelin or Trail of Bits) before launch.
06

Monitor, Analyze, and Iterate

Use analytics to assess token health and be prepared to upgrade parameters via governance.

  • Key Metrics: Track staking ratio (percentage of supply staked), voter participation, and fee revenue per staker.
  • Analytics Tools: Use Dune Analytics or The Graph to create public dashboards for community transparency.
  • Parameter Adjustment: Be prepared to use governance to adjust the fee-sharing percentage, staking rewards, or quorum thresholds based on data.
  • Contract Upgradability: Consider using a proxy pattern (UUPS) for critical contracts, allowing for future, governance-approved upgrades.
security-considerations
SECURITY AND ECONOMIC CONSIDERATIONS

How to Design a Governance Token with Fee-Sharing Rewards

This guide outlines the critical security and economic design principles for creating a sustainable governance token that distributes protocol fees to its holders.

A fee-sharing governance token combines voting power with a direct claim on protocol revenue. The primary economic challenge is aligning long-term tokenholder incentives with the protocol's health. A poorly designed model can lead to hyperinflationary rewards that dilute holders, or excessive sell pressure that collapses the token price. Key parameters to define include: the percentage of fees distributed, the distribution schedule (e.g., per block, weekly), and the eligibility criteria for rewards (e.g., staking requirements). Protocols like Compound's COMP and Uniswap's UNI (via fee switch proposals) explore variations of this model.

From a security perspective, the fee-sharing mechanism must be non-custodial and trust-minimized. The smart contract logic for collecting fees and calculating rewards should be immutable or governed by a timelock. A critical vulnerability is allowing the reward distribution to be manipulated, for instance, by a whale depositing and withdrawing liquidity within a single block to claim a disproportionate share. Mitigations include using a time-weighted average balance for calculations or enforcing minimum lock-up periods. Always use audited, battle-tested patterns for dividend distribution, such as the ERC-4626 vault standard for yield-bearing tokens.

The source and sustainability of the fees are paramount. Relying solely on speculative trading volume is risky. A robust model diversifies fee income across multiple protocol activities—such as trading fees, lending interest, and subscription charges—as seen in GMX's GLP model. The chosen revenue split must fund ongoing development; a common practice is to allocate a portion (e.g., 50-80%) to tokenholders and the remainder to a treasury for grants and development. This ensures the protocol can continue to innovate and maintain security without solely depending on token emissions.

Implementing the mechanism requires careful smart contract architecture. A typical setup involves a FeeDistributor contract that accrues protocol fees, and a staking Vault where users lock tokens to earn rewards. The Solidity logic must use pull-over-push rewards for gas efficiency and security, allowing users to claim rewards rather than automatically distributing them. Critical functions should be protected with access controls, and the entire system should undergo formal verification for critical invariants, such as the sum of all unclaimed rewards never exceeding the contract's balance.

Finally, long-term economic health requires emission decay or caps. An indefinite, fixed percentage emission can become unsustainable. Incorporate mechanisms for the community to vote on adjusting reward rates or implementing a halving schedule. Transparency is key: all economic parameters should be on-chain and viewable. By prioritizing security in the contract design and sustainability in the tokenomics, a fee-sharing governance token can create a powerful, aligned ecosystem that rewards long-term participants and secures the protocol's future.

GOVERNANCE TOKEN DESIGN

Frequently Asked Questions

Common technical questions and solutions for designing a governance token with a fee-sharing reward mechanism.

A fee-sharing governance token combines two primary smart contracts: a standard ERC-20 or ERC-20Votes token for governance and a separate fee distributor contract. The token contract manages voting power and delegation (e.g., using OpenZeppelin's ERC20Votes). The distributor contract, which holds the protocol's accumulated fees (e.g., from a DEX or lending market), allows token holders to claim a proportional share of these fees based on their token balance at a specific snapshot block. This separation enhances security and upgradability. Key functions include depositFees() for the protocol to send fees, and claim(address user) for users to withdraw their share.

solidity
// Simplified claim function logic
function claim(address user) public {
    uint256 share = (userTokenBalance * totalFees) / totalTokenSupply;
    (bool success, ) = user.call{value: share}("");
    require(success, "Claim failed");
}
conclusion
IMPLEMENTATION SUMMARY

Conclusion and Next Steps

This guide has outlined the core components for designing a governance token with a sustainable fee-sharing reward mechanism.

You have now built the foundational architecture for a fee-sharing governance token. This combines three critical DeFi primitives: a standard ERC-20 token for voting power, a treasury contract to collect protocol fees, and a staking contract to distribute those fees proportionally to stakers. The key innovation is linking passive income directly to active governance participation, creating a powerful incentive alignment between token holders and the protocol's long-term health.

To move from prototype to production, several critical next steps are required. First, comprehensive security auditing is non-negotiable. Engage reputable firms to review the staking and treasury logic for reentrancy, arithmetic errors, and centralization risks. Second, design a transparent fee collection mechanism, ensuring the treasury receives a clear, verifiable stream of revenue from your protocol's core activities (e.g., a percentage of swap fees on a DEX). Third, plan the token distribution and launch, considering a fair launch, liquidity bootstrapping, and initial governance proposals to activate the community.

Consider enhancing the basic model with advanced features. Implement a vesting schedule for team and investor allocations using a contract like OpenZeppelin's VestingWallet. Add delegated voting so users can stake tokens but delegate their voting power to experts. For more sophisticated reward calculations, explore integrating a time-weighted staking model to prevent reward manipulation. Always reference established standards and libraries, such as those from OpenZeppelin Contracts, to build on audited, community-vetted code.

The ultimate success of this system depends on its economic parameters. You must carefully calibrate the reward emission rate, staking unlock period, and fee percentage to ensure long-term sustainability. Use simulation tools and economic modeling to stress-test scenarios. A well-designed tokenomics model prevents inflation from outpacing value accrual and ensures the treasury remains solvent to fund future rewards and protocol development.

Finally, remember that the contract code is just the beginning. A live governance token requires active community management, clear documentation, and a roadmap for progressive decentralization. Start with a multi-signature wallet for the treasury and a timelock on governance execution, then gradually transfer control to token holders as the system proves itself. Your goal is to create a virtuous cycle where fee revenue funds rewards, rewards incentivize governance, and good governance drives protocol growth and more fee revenue.

How to Design a Governance Token with Fee-Sharing Rewards | ChainScore Guides