These docs are being revamped as part of the platform transition and may be out of date. Reach out to support if assistance is needed.

Get Started

Prerequisites

To implement Cactus’s staking system, you’ll need the following:

  1. Compatible tokens:

    1. A standard ERC20 token to use as the staking token. Typically, the staking token is the native token of the protocol, like UNI.
    2. One or more ERC20 tokens to distribute as rewards. e.g. WETH or the native token of the protocol for inflationary rewards.

    Note: Rebasing tokens or non-standard ERC20 tokens won’t work.

  2. Reward source: Rewards come from protocol revenue, treasury funds, or minting new tokens.

Optionally, staking supports additional features:

  • Governance compatibility - for staking token that are also governance tokens. In other words, tokens that implement ERC20Votes. Staking passes through voting power to the underlying governance token. No changes are needed on the governance system.
  • Staking reward criteria can use an EarningPowerCalculator. Calculators increase or decrease rewards based on any criteria. Calculators can use offchain criteria with an oracle.

Choosing the Right Implementation Approach

Your implementation approach depends on your protocol’s stage and needs:

For new protocols:

  • Implement staking alongside your token launch
  • Design with value accrual in mind from day one
  • Create an economic loop between usage, fees, and rewards

For established protocols:

  • Add staking to create utility for existing tokens
  • Use protocol revenue or token inflation to reward stakers
  • Consider phasing in rewards over time to test and adjust parameters

Next Steps

For the fastest and most reliable implementation:

  • Contact Cactus’s team at tally.xyz/contact
  • Tell Cactus about your staking and reward tokens
  • Cactus will guide you through the deployment process
  • Get a fully-configured staking user interface on Cactus

To deploy a test or self-serve staking contract

See the ‘Usage’ section of the Staker README doc.