For the complete documentation index, see llms.txt. This page is also available as Markdown.

Vault Token

Overview

The Vault Token is designed to wrap multiple variants of the same underlying asset (e.g., USDC from different chains) into a single, unified token.

Core Features

  1. Multi-Asset Support

    • Supports multiple underlying tokens

    • Configurable deposit limits per token

    • Decimal normalization for different token standards

    • Fee mechanisms for deposits and withdrawals

  2. Rate Limiting

    • Built-in rate limiting for all transfers

    • Consults rate limiter for mints, burns, and transfers

    • Ensures controlled token movement

Token Configuration

Token Info Structure

struct TokenInfo {
    uint8 decimals;      // Decimals of the underlying token
    uint256 depositFee;  // Fee in basis points (e.g., 50 = 0.5%)
    uint256 withdrawalFee; // Fee in basis points
    uint256 maxDeposit;  // Maximum allowable deposit
    bool isSupported;    // Whether the token is supported
}

Core Operations

  1. Deposits

  1. Withdrawals

  1. Rate-Limited Transfers

Security Features

  1. Deposit Controls

    • Maximum deposit limits per token

    • Rate limiting on all transfers

    • Decimal normalization for safety

  2. Access Control

    • Owner-controlled token configuration

    • Protected fee recipient updates

    • Restricted token support management

  3. Fee Management

    • Configurable deposit/withdrawal fees

    • Protected fee collection mechanism

    • Fee recipient management

Use Cases

  1. Asset Unification

    • Wrap USDC from multiple chains into a single vault token

    • Simplify cross-chain asset management

    • Enable unified liquidity pools

  2. Fee Generation

    • Collect fees on deposits/withdrawals

    • Generate revenue from cross-chain movements

    • Incentivize liquidity provision

  3. Rate-Limited Transfers

    • Control token velocity

    • Prevent large sudden movements

    • Enhance security through movement restrictions

  4. Cross chain token managment

    • Controls movement and accounting for tokens deployed across multiple chains

Configuration Methods

// Update existing token configuration function updateToken( address token, uint256 depositFee, uint256 withdrawalFee, uint256 maxDeposit ) external onlyOwner;

Last updated