Skip to main content

NFT Staking

Catpound supports NFT staking as a way to upgrade your fee tier. By staking eligible OPNet NFTs in the vault, you can reduce both your exit fees and the protocol fee applied to your share of compounded rewards.

How It Works

  1. Own an eligible NFT: The vault accepts NFTs from a designated OPNet NFT contract (OP721 standard). Motocats are the first collection accepted for vault tier upgrades.
  2. Stake the NFT: Use the NFT staking section on the Catpound app to stake your NFT into the vault contract. The NFT is transferred to the vault and held in custody while staked.
  3. Tier upgrades at the next compound: The vault records when you staked. Your NFT tier activates at the start of the next compound cycle (see Anti-Gaming Protection below).
  4. Enjoy lower fees: Your exit fee maximum and protocol fee surcharge both decrease based on your tier.

Tier Thresholds

The vault admin configures a threshold table that maps staked NFT counts to tiers. An example configuration:

Staked NFTsTierMax Exit FeeProtocol Fee
00 (default)10%5%
118%4%
326%3%
534%2%
1042%2%

The actual tier parameters are set by the vault admin and may differ from this example. Check the Tier System page for current values.

Staking Limits

  • Maximum 10 NFTs per user (enforced at the contract level as a hard cap).
  • You must be the current owner of the NFT to stake it.
  • The NFT is transferred to the vault contract when staked and returned to you when unstaked.

Anti-Gaming Protection

The vault records the block number when you stake each NFT (stakeBlock). At tier calculation time, if stakeBlock > lastReinvestBlock, the vault treats your NFT contribution as 0 for the current cycle.

What this means:

  • If you stake an NFT and then withdraw in the same compound cycle, you receive no NFT tier benefit for that withdrawal.
  • Your NFT tier activates at the next compound window close.
  • This prevents last-minute staking to get a fee reduction right before a compound, then immediately exiting.

Once the vault runs a compound cycle after your stake, the protection no longer applies and your tier is fully active.

Unstaking

You can unstake individual NFTs or all NFTs at once:

  • Unstake one: Select the specific NFT to retrieve from the vault.
  • Unstake all: Retrieve all your staked NFTs in a single transaction.

When you unstake, your tier is immediately recalculated based on the remaining staked count. If you drop below a threshold, your tier downgrades accordingly.

Partial Unstake

Unstaking some NFTs while keeping others does not reset your anti-gaming protection. Only the stakeBlock from the original staking events matters, not from unstake operations.

Lazy NFT Cleanup

The vault periodically verifies that you still own the underlying NFTs. If an NFT you staked was transferred away from the vault (for example, through an admin recovery action), the vault's lazy cleanup mechanism will detect this during your next deposit, withdrawal, or tier refresh and adjust your staked count and tier downward.

Your Effective Tier

Your fee tier is the best (lowest-fee) tier from any of these sources:

  • NFT tier: Based on how many NFTs you have staked
  • Whale tier: Based on the USD value of your deposit (see Whale Detection)
  • Manual tier: Optionally set by the vault admin

The vault uses whichever gives you the most favorable fees.