> For the complete documentation index, see [llms.txt](https://docs.convexfinance.com/convexfinanceintegration/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.convexfinance.com/convexfinanceintegration/cvx-and-cvxcrv-staking.md).

# CVX and cvxCRV Staking

**cvxCRV** is staked into a [BaseRewardPool](https://github.com/convex-eth/platform/blob/main/contracts/contracts/BaseRewardPool.sol), while **CVX** is staked into a [cvxRewardPool](https://github.com/convex-eth/platform/blob/main/contracts/contracts/cvxRewardPool.sol). There are not many differences between the two types of contracts except for the **CVX** contract deposits rewarded **CRV** into the [CrvDepositor](https://github.com/convex-eth/platform/blob/main/contracts/contracts/CrvDepositor.sol) and is exchanged to **cvxCRV** before being claimed.

The address of these contracts can be found on the booster contract:

```
//cvx staking
var cvxStakingContract = await booster.stakerRewards()

//cvxCRV staking
var cvxCrvStakingContract = await booster.lockRewards()
```

Verified mainnet addresses:

* **CVX** staking (`stakerRewards`): `0xCF50b810E57Ac33B91dCF525C6ddd9881B139332` — reward token is **CRV**
* **cvxCRV** staking (`lockRewards`): `0x3Fe65692bfCD0e6CF84cB1E7d24108E434A7587e` — reward token is **CRV**; query `extraRewardsLength()`/`extraRewards(i)` for the current fee-pool composition
* **veCRV** fee rewards (`lockFees`): `0x191F455cc8acdd579f4E6956fC7007c9668C2289` — reward token is **crvUSD**

#### veCRV fees (crvUSD)

**veCRV** fees (**crvUSD**) are distributed to a child reward contract of the **cvxCRV** staking contract. You can find it in the extraRewards array there, or simply from the booster contract at `booster.lockFees()`

#### CVX staking

When rewards are claimed from the **CVX** staking pool, the contract converts the earned **CRV** into **cvxCRV** via the CrvDepositor before distributing — so **CVX** stakers are effectively paid in **cvxCRV**. Note that **CVX** staking does **not** mint more **CVX** (the pool does not earn vanilla **CRV** through a curve gauge).

#### Wrapped staking (cvxCRV wrapper)

There is a canonical staking wrapper for the **cvxCRV** position used by integrators that want a transferable, ERC20 receipt over staked **cvxCRV**: `cvxCrvWrappedStaking` at `0xaa0C3f5F7DFD688C6E646F66CD2a6B66ACdbE434` (see `wrappers/CvxCrvStakingWrapper.sol`). Note it is an **ERC20 staking wrapper**, not a full ERC-4626 vault — it implements deposit/stake/withdraw with its own reward accounting but does not implement the ERC-4626 preview/conversion interface. Integrators that need a transferable/ERC20 receipt for staked cvxCRV or for a single Convex pool should review the Staking Wrappers page.
