Staking Key Functions

Important functions of the staking smart contract

Overview

The CAMP Staking contract is an extension of the ERC4626 Token Vault standard with the added ability for a cooldown period upon unstaking as well as a legally required ability to freeze funds for sanctioned addresses.

Roles in the CAMP Staking contract

There are three roles in the CAMP Staking contract:

  • DEFAULT_ADMIN_ROLE

  • Rewarder

  • Blacklister

You are able to view the deployed CAMP Staking contract on the Ethereum blockchain here.

DEFAULT_ADMIN_ROLE

The DEFAULT_ADMIN_ROLE is able to perform a number of operations:

  • It can set setCooldownDuration, up to a maximum value of 90 days from the unstaking request. The cooldown period is the time period from the unstaking request until the user is able to withdraw USDca.

  • It can rescue tokens using rescueTokens to move any ERC20 tokens (except USDca) to an address CAMP Labs controls. This has been implemented in case a user accidentally sends non-USDca assets to the CAMP Staking contract.

  • It can redistribute sUSDca tokens that have been locked using resdistributeLockedAmounts. Locks on sUSDca held in specific wallets have been implemented due to legal requirements to ensure sanctioned, criminal, and other high-risk actors are not able to interact with the staking contract, in the interest of complying with Sanctions, Anti-Money Laundering, and Combating the Financing of Terrorism regimes. This is extremely similar functionality to what Circle implements for USDC. CAMP is able to redistribute funds to CAMP Labs addresses (in segregated wallets/vaults from other protocol assets) from fully restricted addresses. Note that this ability is limited to sUSDca.

Rewarder

The Rewarder role is able to transfer in USDca rewards, growing the balance of USDca in the CAMP Staking contract.

Blacklister

The Blacklister role is able to grant and remove Soft_restricted_staking_role or Fully_restricted_staking_role assigned to an address. "Soft Restricted Stakers" can invoke all contract functions except unstaking (i.e., sUSDca remains transferable but USDca cannot be unstaked). "Fully Restricted Stakers" cannot interact with the staking contract or transfer sUSDca .

The user of the Blacklister role is only intended to ensure high-risk actors, such as sanctioned individuals, wallets associated with criminal activity/terrorism, and other similar individuals covered under relevant laws and regulations cannot access protocol yield. The blacklist will never be invoked at the discretion of CAMP Labs for any user absent those conditions or unless required by law enforcement pursuant to a court order, injunction, or similar official action we are required by law to comply with.

As noted above, this function is limited to sUSDca.

Last updated