Protocol

Custody and redemption

Vault lifecycle
Deposit
Vault custody
depositManaged
Mezo managed ve
withdrawManaged
Redeem veNFT

Deposit

Ledger.depositErc20(variant, epochs, amount, to) pulls BTC or MEZO, opens a four-week Mezo lock to the Ledger, then transfers that veNFT into the Vault. Ledger.depositVeNft(variant, epochs, tokenId, to) resets votes if needed, optionally relocks an expired NFT, then sends the NFT to the Vault.

The Vault receiver deposits the NFT into the manager's managed Mezo position with depositManaged. Shares minted equal the locked underlying amount as uint128, 18 decimals.

Each manager records its managed token id only in onERC721Received. The production managers currently report mTokenId = 0, so this path cannot complete until Mezo governance creates empty managed NFTs and safeTransferFroms them to the managers. Raw transferFrom would not set the id. The Ledger lockedVault is already the Vault proxy. normalVault is unset.

Backing

ERC-1155 supply is meant to track vault-custodied inventory for that tranche. trancheAssets counts vault-held ids only. A third party that depositManageds into the same manager NFT (for example another protocol) does not mint Aurove shares. A later valuation decrease updates the checkpoint and does not burn supply.

Redeem

Ledger.redeem(trancheId, amount, receiver, tokenIds):

  1. Claims rebases for the listed ids.
  2. Burns amount ERC-1155 units.
  3. BTC: Vault.releaseVeBtc, which may split the last NFT if Mezo canSplit(Vault) is true.
  4. MEZO: Vault.releaseVeMezo withdraws each listed id in full.
  5. Requires assetsOut == amount.

Receiver gets veNFTs. Aurove adds no settlement window and no per-account redeem lock. Mezo still enforces epoch windows and one managed operation per child per epoch.

Live check: veBTC.canSplit(Vault) is false, so exact BTC redeem that needs a split currently fails.

NameAddressRoleTypeVerification
Ledger0x0AF3601f0E15b8E33fEc660fBE515DDb6C54dD3cERC-1155 accounting surface for deposits, redemptions, and rebase claims.Proxy
Vault0x708E1B58bCDb05eF3a2CE9FbF9D1987F547238c9Custodies veNFTs, deploys managers and sinks, and releases inventory on redeem.Proxy
avBTCm manager0x3b3223C036D939Ece4aDc2a5Dd489423E4EF49FFOwns the managed veBTC position for the avBTCm tranche.Beacon proxy
avMEZOm manager0x8210669B03313AAD9290D779f5cC4770992e1dd4Owns the managed veMEZO position for the avMEZOm tranche.Beacon proxy
VeNftManager beacon0x9F928c2e9Ec84917bE97C7fC5d9eceaF045DFdFDUpgradeable beacon for both variant managers. Owned by the Ledger.Beacon
VeNftManager implementation0x9C21A7C6B87A785F976c54aDDbBd86f881Eb15FCCurrent manager logic used by both beacon proxies.Implementation

User steps: Redeem.

protocolcustodyvaultledgerredeem

© 2026 Aurove. Protocol documentation for the Mezo deployment.