Developer Docs
  • Introduction
  • Meta Vaults
    • USDC 3Pool Convex Meta Vault
      • 3Pool Convex Meta Vault
      • Meta Vault of Convex 3Crv Vaults
      • Convex 3Crv Vaults
    • General ERC-4626 Vault Interface
    • Liquidator
  • Ethereum Mainnet
    • mAssets
    • imAssets (SAVE)
    • Feeder Pools
    • Vaults
      • BoostedSavingsVault
      • BoostedSavingsVault V2
      • BoostedDualVault
    • Shared Addresses
    • Governance
      • stkMTA
      • stkBPT
      • Quest Manager
    • Save Wrapper
  • Emissions Controller
    • EmissionsController
    • Polygon Integration
      • Bridge Forwarder
      • L2 Bridge Recipient
      • L2 Emissions Controller
      • Disperse Forwarder
    • RevenueSplitBuyBack
    • BasicRewardsForwarder
    • VotiumBribeForwarder
  • Polygon
    • mUSD
    • imUSD
    • Feeder Pool
    • Vaults
    • Save Wrapper
    • Shared Addresses
  • Security
    • Multisig Admin Rights
    • Security Audits
      • Hacken Vault Security Audit
    • Bug Bounty
Powered by GitBook
On this page
  • Capabilities
  • Contract Interface
  • Variables
  • Functions

Was this helpful?

  1. Meta Vaults
  2. USDC 3Pool Convex Meta Vault

3Pool Convex Meta Vault

PreviousUSDC 3Pool Convex Meta VaultNextMeta Vault of Convex 3Crv Vaults

Last updated 2 years ago

Was this helpful?

Abstract ERC-4626 vaults with DAI, USDC or USDT asset invested in Curve's , and then the 3Pool LP token (3Crv) is invested in an underlying 3Pool-based (3Crv) Meta Vault.

Capabilities

  • compliant tokenized vault.

  • compliant token.

  • Invests DAI, USDC or USDT in Curve's 3Pool and then invests the 3Crv LP token in an underlying ERC4626 vault.

  • Sandwich attack protection on ERC4626 operations deposit, mint, withdraw and redeem.

  • Vault operations are pausable by the Governor.

  • Emergency asset recovery by the Governor. This will be removed after 2 months.

  • Vault configuration is controlled by a protocol Governor. This includes:

    • Setting the slippage limits for mint, deposit, redeem and withdraw.

  • Initially the Governor can upgrade the contracts via a proxy without a time delay. After 6 weeks, this will be changed to a one week time delay.

Contract Interface

See the metavaults github repository for and .

See General ERC-4626 Vault Interface for the standard ERC-4626 functions.

Variables

BASIS_SCALE

uint256 BASIS_SCALE

Basis points calculation scale. 100% = 10000. 1% = 100

redeemSlippage

uint256 redeemSlippage

Redeem slippage in basis points i.e. 1% = 100

depositSlippage

uint256 depositSlippage

Deposit slippage in basis points i.e. 1% = 100

withdrawSlippage

uint256 withdrawSlippage

Withdraw slippage in basis points i.e. 1% = 100

mintSlippage

uint256 mintSlippage

Mint slippage in basis points i.e. 1% = 100

assetScale

uint256 assetScale

Scale of one asset. eg 1e18 if asset has 18 decimal places.

assetFromUsdScale

uint256 assetFromUsdScale

Converts USD value with 18 decimals back down to asset/vault scale. For example, convert 18 decimal USD value back down to USDC which only has 6 decimal places. Will be 1 for DAI, 1e12 for USDC and USDT.

threeCrvTokenScale

uint256 threeCrvTokenScale

Scale of the Curve.fi 3Crv token. 1e18 = 18 decimal places

metaVault

contract IERC4626Vault metaVault

Address of the underlying Meta Vault that implements ERC-4626.

assetPoolIndex

uint256 assetPoolIndex

The index of underlying asset DAI, USDC or USDT in 3Pool. DAI = 0, USDC = 1 and USDT = 2

Functions

liquidateVault

function liquidateVault(uint256 minAssets) external

Governor liquidates all the vault's assets and send to the governor. Only to be used in an emergency. eg whitehat protection against a hack.

Parameters

Name
Type
Description

minAssets

uint256

Minimum amount of asset tokens to receive from removing liquidity from the Curve 3Pool. This provides sandwich attack protection.

resetAllowances

function resetAllowances() external

Approves Curve's 3Pool contract to transfer assets (DAI, USDC or USDT) from this vault. Also approves the underlying Meta Vault to transfer 3Crv from this vault.

setRedeemSlippage

function setRedeemSlippage(uint256 _slippage) external

Governor function to set redeem slippage.

Parameters

Name
Type
Description

_slippage

uint256

Redeem slippage to apply as basis points i.e. 1% = 100

setDepositSlippage

function setDepositSlippage(uint256 _slippage) external

Governor function to set deposit slippage.

Parameters

Name
Type
Description

_slippage

uint256

Deposit slippage to apply as basis points i.e. 1% = 100

setWithdrawSlippage

function setWithdrawSlippage(uint256 _slippage) external

Governor function to set withdraw slippage.

Parameters

Name
Type
Description

_slippage

uint256

Withdraw slippage to apply as basis points i.e. 1% = 100

setMintSlippage

function setMintSlippage(uint256 _slippage) external

Governor function to set mint slippage.

Parameters

Name
Type
Description

_slippage

uint256

Mint slippage to apply as basis points i.e. 1% = 100

3Pool
ERC-4626
ERC-20
contract diagrams
process diagrams