# What is Canopy?

Canopy is the gateway to Movement DeFi built to optimize liquidity management through an all-in-one yield aggregation platform.

Canopy can be understood by its four key layers:

1. [**Application Layer**](/canopys-four-layers/application-layer): User-friendly interface for effortless deployment of yield generating liquidity.
2. [**Reward Distribution Engine**](/canopys-four-layers/rewards-layer): Enables any project to incentivize value creating behavior with $MOVE or their project token.
3. [**Strategy Layer**](/canopys-four-layers/strategy-layer): Smart contracts that define optimal liquidity flows across the Movement network.
4. [**Protocol Layer**](/canopys-four-layers/protocol-layer): Integrated AMMs, lending platforms, perpetual DEXs (PerpDEXs), and staking platforms.

Together, these layers form a platform where liquidity providers thrive.

<br>


# The Canopy Ecosystem

We integrate protocols across the Movement Ecosystem.

<figure><img src="/files/uFyOZKLgBEi0SRqgzf1R" alt="" width="563"><figcaption></figcaption></figure>


# Canopy's Tech Stack

The Canopy ecosystem is built on a modular tech stack that powers liquidity management and advanced yield strategies.

### Overview

#### **1.** [**Canopy UI**](https://app.canopyhub.xyz)

The Canopy User Interface serves as the primary gateway for users to access and interact with the ecosystem. Designed for simplicity and efficiency, it allows users to deposit funds, track performance, and manage portfolios effortlessly.

***

#### **2. Canopy Vaults**

Canopy Vaults enable single-sided liquidity provision, leveraging top-performing protocols on the movement networ&#x6B;**.** These vaults offer competitive yields while abstracting away the complexities of the LP process into [multi-protocol strategies](/canopys-four-layers/strategy-layer).

***

#### **3. Automated On-Chain Liquidity Management Strategies**

* Built-in ALM strategies such as **YieldIQ**, **MedianStable**, **Flip**, and **Ascend**. These strategies optimize liquidity allocation, adjust to market conditions, and maximize yields. Each strategy targets specific use cases, such as dynamic reallocation (YieldIQ), stablecoin pairing (MedianStable), pair flipping (Flip), and growth in volatile markets (Ascend).

***

#### **4. AEGIS Contract**

The **AEGIS Contract** autonomously manages and rebalances vaults to ensure optimal performance and liquidity allocation. Its failsafe mechanisms prevent unauthorized actions and mitigate risks, providing security and resilience to the ecosystem.

***

#### **5. Reward Distribution Engine**

The Reward Distribution Engine enables protocols to distribute incentives efficiently, aligning users with project goals.


# Application Layer

The Application Layer in Canopy is designed to offer an intuitive user experience, making it simple for users to interact with the platform's yield opportunities and manage assets all in one place.

***

The Canopy app is split into 3 main pages the **Earn Page, Explore Page,** and **Rewards Page**

### [**Earn Page**](https://app.canopyhub.xyz/earn)

The **Earn Page** is the gateway for users to effortlessly start earning yield with their assets with just a few clicks. Pick an asset to deploy and enter into a vault of your choice.

***

### [**Explore Page**](https://app.canopyhub.xyz/explore)

The **Explore Page** provides users with an interface to discover yield opportunities across the Canopy ecosystem. Displays a curated list of available vaults, strategies, and performance graphs.

***

### [**Rewards Page**](https://app.canopyhub.xyz/rewards)

The **All Rewards Page** simplifies the reward claiming process, consolidating all user rewards in one place for One-Click Claiming of accumulated rewards. Easily track the source and breakdown of rewards, ensuring users stay informed.


# Rewards Layer

Maximize your earnings with Canopy's flexible and customizable reward system.

## Reward Distribution Engine

The Reward Distribution Engine empowers projects to incentivize value-creating behaviors across the Movement network using $MOVE or their project-specific token. By offering customizable campaigns, projects can drive liquidity provision into pools, vaults, and strategies that foster sustainable growth.

### How It Works

1. **Campaign Creation**: Projects set up reward programs to attract and reward liquidity provision in specific pools or platforms.
2. **User Participation**: Participants join campaigns by providing liquidity or staking tokens based on campaign requirements.

### Benefits for Projects and Participants

Projects can attract liquidity by creating incentives that foster sustainable growth. Flexible reward structures align campaigns with strategic goals while building community engagement through meaningful rewards.


# Strategy Layer

The Strategy Layer in Canopy defines how assets are deployed and managed across various DeFi protocols.

A **Strategy** in Canopy defines a systematic approach to deploying assets across DeFi protocols.&#x20;

Each strategy uses Movement native assets (e.g., USDC, MOVE) and is designed to generate sustainable and optimized yields on the allocated assets.

Canopy offers several advanced strategies that empower users to maximize their yield across various DeFi protocols. Within this section are outlines of key strategies, their actions, and user benefits.


# How Strategies are Managed

### **1. Creating a Strategy**

* Strategies are created through **governance processes**.
* Each strategy has:
  * Its own **implementation address**.
  * Compatibility with base assets.
  * A **witness type** to ensure valid interactions with the vault.

**Base Asset Compatibility**:

* Strategies must support the same base asset as their associated vault.\
  *Example*: A strategy linked to a USDC vault must also handle USDC.

***

### 2. Issuing Shares

* When base assets are deposited, the strategy issues shares proportional to the deposit.
* These shares are sent back to the vault, representing the vault’s ownership of the assets in the strategy.

**Equation for Issuing Shares:**

$$
\text{shares\_issued} = \frac{\text{amount\_deposited} \times \text{total\_shares}}{\text{total\_assets}}
$$

***

### 3. Burning Shares

* When assets are withdrawn, the strategy burns the corresponding shares.
* The amount of base assets returned is proportional to the number of shares burned.

**Equation for Burning Shares:**

$$
\text{amount\_withdrawn} = \frac{\text{shares\_burned} \times \text{total\_assets}}{\text{total\_shares}}
$$


# Leveraged Liquid Staking

Leveraged liquid staking enables users to amplify $MOVE APY by combining base emissions with additional APY from leveraging.

#### **Process:**

1. **Create Position**: Withdraw **X $MOVE** from the $MOVE Vault.
2. **Stake $MOVE**: Stake **X $MOVE**, receiving **Y staked $MOVE**.
3. **Leverage**: Deposit **Y staked $MOVE** into a borrow/lend market and borrow **Z $MOVE**.
4. **Repeat**: Repeat steps 2–3 until the desired leverage ratio is achieved.

This method boosts $MOVE rewards through recursive staking and borrowing.


# Borrow Optimization

The borrow optimization strategy enhances yield by lending $MOVE, borrowing against it, providing liquidity in an AMM, and recycling rewards.

**Process:**

1. **Create Position**:
   * Deposit **X $MOVE** into a lending market.
   * Borrow **Y $MOVE** against the deposited collateral.
2. **Provide Liquidity**: Deposit **Y $MOVE** into an AMM to provide liquidity.
3. **Harvest Rewards**: Periodically claim rewards from the AMM and lending markets.
4. **Recycle Rewards**: Swap harvested rewards for $MOVE. Reinvest the $MOVE by repeating steps 1–3 to compound yield.

This strategy leverages $MOVE for both borrowing and liquidity provision while automating reward recycling to optimize yield growth.


# Single Sided Liquidity

Canopy’s SSL enables single-token deposits into concentrated liquidity pools.

Canopy’s Single-Sided Liquidity Strategy optimizes yield and mitigates risk by allowing users to provide liquidity using only one token. This strategy dynamically adjusts liquidity positions to maximize efficiency and sustainability.

### **1. Single-Token Deposits**

#### **1.1 Why Single-Token Deposits?**

Traditional liquidity pools require two assets in a specific ratio (e.g., 50/50), leading to extra swap costs and exposure to impermanent loss. Canopy’s strategy allows users to:

* Deposit a single token (such as a stablecoin or a native project token).
* Receive a **Vault Token** representing their share of the liquidity pool.
* Avoid unnecessary swaps that may dilute their position in volatile markets.

#### **1.2 Directional Liquidity**

By depositing a single token, users indicate a preference for holding that asset in greater quantity. Canopy’s algorithm ensures minimal selling of the deposited asset, maintaining an optimal inventory balance and preventing unnecessary dilution.

### **2. Inventory-Based Rebalancing**

#### **2.1 Core Concept**

Instead of reacting to every price movement, Canopy tracks the **inventory ratio** (how much of each token is held in the pool). The strategy only rebalances when the pool’s composition deviates from its target ratio, reducing unnecessary swaps and fees while maintaining liquidity efficiency.

**Key States:**

* **Healthy:** Liquidity is well-balanced, and the position collects trading fees without rebalancing.
* **Over-Inventory:** Excess of the deposit token may trigger gradual rebalancing to restore balance.
* **Under-Inventory:** Shortage of the deposit token leads to controlled accumulation to reach the target ratio.
* **High Volatility:** The strategy broadens price ranges to mitigate risk during rapid market swings.
* **Extreme Volatility:** The strategy may temporarily limit rebalancing or require manual intervention to protect deposits.

#### **2.2 No Swap Costs in Rebalancing**

Canopy’s strategy prioritizes **inventory tracking over swapping**, allowing liquidity repositioning without incurring swap costs. This is particularly useful during market fluctuations, ensuring efficient liquidity management without unnecessary asset conversions.

### **3. On-Chain Autonomy**

#### **3.1 100% Smart Contract Logic**

All rebalancing functions are executed on-chain, without external control, ensuring:

* **Transparency:** All adjustments are publicly verifiable on the blockchain.
* **Fairness:** No privileged entity can manipulate liquidity allocations for personal advantage.
* **Security:** Funds remain under the depositor’s control, with no custodial risk.

#### **3.2 Automated Triggering**

Rebalancing is triggered automatically based on:

* **Inventory thresholds** (when asset ratios deviate beyond predefined levels).
* **Price movements** (ensuring optimal liquidity placement).
* **Time intervals** (periodic adjustments to maintain efficiency).

Users do not need to manually intervene or pay additional gas fees for adjustments.

### **4. Yield Generation**

#### **4.1 Trading Fees**

Liquidity providers earn yield through trading fees generated by market activity within their liquidity range. Canopy’s **optimized liquidity positions** ensure that users remain “in-range” for as long as possible, maximizing fee collection.

#### **4.2 Auto-Compounding Rewards**

Earned fees are automatically reinvested into the position, increasing deposit value over time. In governance-driven systems, rewards can also be directed toward **liquidity incentives** or **staking mechanisms** for additional yield.


# Simple Lending Strategy

Supply a single asset (e.g., USDC, wETH, MOVE) through Canopy’s interface, routing your deposit to Movement native lending markets.

#### Process:

**Deposit:** Supply X $MOVE (or other supported assets) into Movement native Money Markets like MovePosition, Echelon, or LayerBank based on optimal lending conditions.

**Earn Yield:**

Your deposit begins earning yield from the lending markets.

**Claim Rewards:**

Harvest your rewards from our [Rewards Page](/canopys-four-layers/application-layer#rewards-page).


# Echelon Simple Lend

## Overview

The `echelon_simple::strategy` module implements a simple lending strategy for the Echelon protocol. It allows deposits and withdrawals of both `Coin` and `FungibleAsset` types, and manages lending positions in Echelon markets.

## Strategy Module

### Structs

#### Witness

Internal witness type for strategy creation.

```rust
struct Witness has drop {}
```

#### EchelonStrategy

Core strategy struct storing vault and market references.

```rust
struct EchelonStrategy has key {
    auth_ref: AuthRef,
    vault: Object<Vault>,
    market: Object<Market>
}
```

### Events

* **StrategyCreated**: Event emitted when a new strategy is created.

### Error Codes

* `ENOT_AUTHORIZED`: Not authorized to perform the operation
* `EINVALID_AMOUNT`: Invalid amount specified
* `EINSUFFICIENT_BALANCE`: Insufficient balance to perform the operation
* `EINVALID_ASSET_METADATA`: Invalid asset metadata
* `EUNSUPPORTED_ASSET_TYPE`: Unsupported asset type
* `EINVALID_ASSET_TYPE`: Invalid asset type
* `EVAULT_MISMATCH`: Invalid vault specified
* `EWITHDRAWAL_ACCOUNT_MISMATCH`: Invalid withdrawal account specified
* `ECANNOT_EXCEED_DEBT`: Cannot exceed the strategy debt

### Public Functions

#### Strategy Creation and Management

* `create(account: &signer, vault: Object<Vault>, market: Object<Market>, debt_limit: u64)`: Creates a new instance of the strategy for the specified vault. Only callable by governance account.

#### Direct Deposit Functions

* `deposit_fa(account: &signer, strategy: Object<BaseStrategy>, amount: u64)`: Withdraws the strategy's base asset (FungibleAsset) from signer's primary store and deposits this directly into the strategy. The minted strategy shares are deposited into the signer's primary fungible store.
* `deposit_coin<CoinType>(account: &signer, strategy: Object<BaseStrategy>, amount: u64)`: Withdraws the strategy's base asset (Coin) from signer's primary store and deposits this directly into the strategy. The minted strategy shares are deposited into the signer's primary fungible store.

#### Vault Deposit Functions

* `vault_deposit_coin<CoinType>(account: &signer, strategy: Object<BaseStrategy>, amount: u64)`: Deposits the strategy's base asset (Coin) from the vault into the strategy. Must be called with the vault's signer (typically via router). The minted strategy shares are deposited into the vault's primary fungible store.
* `vault_deposit_fa(account: &signer, strategy: Object<BaseStrategy>, amount: u64)`: Deposits the strategy's base asset (FungibleAsset) from the vault into the strategy. Must be called with the vault's signer (typically via router). The minted strategy shares are deposited into the vault's primary fungible store.

#### Direct Withdrawal Functions

* `withdraw_fa(account: &signer, strategy: Object<BaseStrategy>, amount: u64, max_loss: Option<u64>)`: Withdraws the strategy's base asset (FungibleAsset) directly from the strategy by redeeming the specified amount of strategy shares from the signer's primary fungible store.
* `withdraw_coin<CoinType>(account: &signer, strategy: Object<BaseStrategy>, amount: u64, max_loss: Option<u64>)`: Withdraws the strategy's base asset (Coin) directly from the strategy by redeeming the specified amount of strategy shares from the signer's primary fungible store.

#### Vault Withdrawal Functions

* `vault_withdraw_coin<CoinType>(account: &signer, request: &mut WithdrawalRequest, strategy: Object<BaseStrategy>, amount: u64, max_loss: Option<u64>): Coin<CoinType>`: Withdraws the strategy's base asset (Coin) from a vault's strategy. Must be called with the vault's signer (typically via router). Processes withdrawal through the withdraw\_strategy\_shares function in the `satay::vault` module.
* `vault_withdraw_fa(account: &signer, request: &mut WithdrawalRequest, strategy: Object<BaseStrategy>, amount: u64, max_loss: Option<u64>): FungibleAsset`: Withdraws the strategy's base asset (FungibleAsset) from a vault's strategy. Must be called with the vault's signer (typically via router). Processes withdrawal through the withdraw\_strategy\_shares function in the `satay::vault` module.

#### Strategy Operations

* `tend_coin<CoinType>(account: &signer, strategy: Object<BaseStrategy>)`: Tends the strategy's position by depositing idle Coin into the market.
* `tend_fa(account: &signer, strategy: Object<BaseStrategy>)`: Tends the strategy's position by depositing idle FungibleAsset into the market.
* `harvest<CoinType>(account: &signer, strategy: Object<BaseStrategy>)`: Claims and reinvests rewards for Coin, reports profits/losses with internal handle\_harvest\_pnl function.
* `harvest_fa(account: &signer, strategy: Object<BaseStrategy>, reward_metadata: Object<Metadata>)`: Claims and reinvests rewards for FungibleAsset, reports profits/losses with internal handle\_harvest\_pnl function.
* `vault_report<CoinType>(account: &signer, strategy: Object<BaseStrategy>)`: Reports strategy performance to the vault by calling the report function in the `satay::vault` module.

#### Getters

* `get_market(strategy: Object<BaseStrategy>): Object<Market>`: Returns the market associated with the strategy.

### Internal Functions

* `borrow_strategy(strategy: Object<BaseStrategy>): &EchelonStrategy`: Returns a reference to the strategy data.
* `deposit_coin_internal<CoinType>(strategy: &EchelonStrategy, coin: Coin<CoinType>): FungibleAsset`: Internal function for Coin deposits. Mints and returns strategy shares.
* `deposit_fa_internal(strategy: &EchelonStrategy, asset: FungibleAsset): FungibleAsset`: Internal function for FungibleAsset deposits. Mints and returns strategy shares.
* `withdraw_fa_internal(strategy_ref: &EchelonStrategy, asset: FungibleAsset, max_loss: Option<u64>): FungibleAsset`: Internal function for FungibleAsset withdrawals. Tries to complete withdrawal with idle assets, withdraws from depoits in the yield source if needed (using market\_withdraw\_fa\_internal). Finally, calls the complete\_withdrawal function from `satay::base_strategy` to complete the withdrawal.
* `withdraw_coin_internal<CoinType>(strategy_ref: &EchelonStrategy, asset: FungibleAsset, max_loss: Option<u64>): Coin<CoinType>`: Internal function for Coin withdrawals. Tries to complete withdrawal with idle assets, withdraws from depoits in the yield source if needed (using market\_withdraw\_fa\_internal). Finally, calls the complete\_withdrawal\_coin function from `satay::base_strategy` to complete the withdrawal.
* `market_withdraw_coin_internal<CoinType>(strategy_ref: &EchelonStrategy, amount: u64): Coin<CoinType>`: Internal function for withdrawing Coin from market. Calculates how much shares need to be redeemed to withdraw the right amount of Coin, then calls withdraw in `echelon_block::echelon_block` to redeem the shares for Coin.
* `market_withdraw_fa_internal(strategy_ref: &EchelonStrategy, amount: u64): FungibleAsset`: I nternal function for withdrawing FungibleAssets from market. Calculates how much shares need to be redeemed to withdraw the right amount of FungibleAsset, then calls withdraw\_fa in `echelon_block::echelon_block` to redeem the shares for Coin.
* `market_deposit_coin_internal<CoinType>(strategy: &EchelonStrategy, coin: Coin<CoinType>)`: Internal function for depositing Coin to market using the supply function from `echelon_block::echelon_block`.
* `market_deposit_fa_internal(strategy: &EchelonStrategy, asset: FungibleAsset)`: Internal function for depositing FungibleAssets to market using the supply\_fa function from `echelon_block::echelon_block`.
* `handle_harvest_pnl(request: &mut HarvestRequest, strategy: Object<BaseStrategy>, market: Object<Market>)`: Internal function for calculating and reporting harvest profits/losses using either report\_harvest\_profit or report\_harvest\_loss from the `satay::base_strategy` module.


# MovePosition Lend

## Overview

The `moveposition_simple::strategy` module implements a lending strategy for the MovePosition protocol. It manages lending positions using packets (serialized tickets) for position validation and state management.

## Terminology

### Packet

A signed binary packet containing a serialized ticket that authorizes the deposit. The packet is verified using Hocket and must contain valid ticket data

## Strategy Module

### Structs

### MovePositionStrategy

Core strategy struct storing vault and authorization references.

```rust
struct MovePositionStrategy has key {
    vault: Object<Vault>, // used to deposit/withdraw funds to/from 
    auth_ref: AuthRef     // used to retrieve strategy signer for depositing assets
}
```

### Witness

Internal witness type for strategy creation.

```rust
struct Witness has drop {}
```

## Events

* **StrategyCreated**: Event emitted when a new strategy is created.

## Error Codes

* `EINVALID_AMOUNT`: Invalid amount specified
* `EINSUFFICIENT_BALANCE`: Insufficient balance to perform the operation
* `EVAULT_MISMATCH`: Invalid vault specified
* `EWITHDRAWAL_ACCOUNT_MISMATCH`: Invalid withdrawal account specified
* `ECANNOT_EXCEED_DEBT`: Cannot exceed the strategy debt

## Public Functions

* `create<CoinType>(account: &signer, vault: Object<Vault>, debt_limit: u64)`: Creates a new instance of the strategy for the specified vault. Only callable by governance account.
* `deposit_coin<CoinType>(account: &signer, strategy: Object<BaseStrategy>, packet: vector<u8>, amount: u64)`: Deposits the strategy's base asset (Coin) directly into the strategy, using the internal deposit\_internal function. Requires a packet.
* `vault_deposit_coin<CoinType>(account: &signer, strategy: Object<BaseStrategy>, packet: vector<u8>, amount: u64)`: Deposits the strategy's base asset (Coin) from the vault into the strategy, using the internal deposit\_internal function. Requires a packet.
* `withdraw_coin<CoinType>(account: &signer, strategy: Object<BaseStrategy>, packet: vector<u8>, amount: u64, max_loss: Option<u64>)`: Withdraws the strategy's base asset (Coin) directly from the strategy. Uses internal functions prepare\_withdrawal\_internal to withdraw strategy shares from signer's primary fungible stores and process\_withdrawal\_internal to redeem the strategy shares for the strategy's base asset (Coin). Requires a packet.
* `vault_withdraw_coin<CoinType>(account: &signer, request: &mut WithdrawalRequest, strategy: Object<BaseStrategy>, packet: vector<u8>, amount: u64, max_loss: Option<u64>): Coin<CoinType>`: Withdraws the strategy's base asset (Coin) from a vault's strategy. Must be called with the vault's signer (typically via router). Uses vault's withdraw\_strategy\_shares function in the `satay::vault` module to withdraw strategy shares from vault's primary fungible stores. Then uses process\_withdrawal\_internal to redeem the strategy shares for the strategy's base asset (Coin). Requires a packet.
* `tend_coin<CoinType>(account: &signer, strategy: Object<BaseStrategy>, packet: vector<u8>)`: Deposits idle coins into the MovePosition market.
* `vault_report<CoinType>(account: &signer, strategy: Object<BaseStrategy>)`: Reports strategy performance to the vault by calling the report function in the `satay::vault` module.

## Internal Functions

* `borrow_strategy(strategy: Object<BaseStrategy>): &MovePositionStrategy`: Returns a reference to the strategy data.
* `deposit_internal<CoinType>(strategy: &MovePositionStrategy, packet: vector<u8>, coin: Coin<CoinType>): FungibleAsset`: Internal function for Coin deposits.
* `market_withdraw_internal<CoinType>(strategy_ref: &MovePositionStrategy, packet: vector<u8>, amount: u64): Coin<CoinType>`: Internal function for withdrawing Coin from market. Validates a packet using the internal validate\_ticket function, then calls the redeem function in `moveposition_block::moveposition_block` to redeem the shares for Coin.
* `market_deposit_internal<CoinType>(strategy: &MovePositionStrategy, packet: vector<u8>, coin: Coin<CoinType>)`: Internal function for depositing coins to market. Validates a packet using the internal validate\_ticket function. First deposits the Coin to the strategy signer, , then calls the lend function in `moveposition_block::moveposition_block` to deposit the Coin into the market.
* `validate_ticket<CoinType>(packet: vector<u8>, amount: u64, operation: String)`: Helper function to validate a ticket for market operations. Takes in a packet which is validated against the CoinType, amount and operation.
* `process_withdrawal_internal<CoinType>(strategy: Object<BaseStrategy>, packet: vector<u8>, shares_asset: FungibleAsset, max_loss: Option<u64>): Coin<CoinType>`: Internal function for processing withdrawals. Creates a withdrawal request with the provided shares and attempts base strategy withdrawal using the withdraw function in `satay::base_strategy`. If funds remain to be withdrawn, calculates needed amount and available collateral, then withdraws from market using market\_withdraw\_internal. Finally completes the withdrawal with specified loss tolerance using the complete\_withdrawal\_coin function in `satay::base_strategy` and returns the withdrawn Coin.
* `prepare_withdrawal_internal(account: &signer, strategy: Object<BaseStrategy>, amount: u64): FungibleAsset`: Internal function for preparing withdrawals. Withdraws and returns strategy shares from the signers account.
* `get_collateral_for_shares<CoinType>(strategy_ref: &MovePositionStrategy, amount: u64): u64`: Calculates collateral value for given amount of shares. Retrieves the collateral balance and total shares to calculate the collateral value for a given amount using the function below:

$$
\text{collateral\_value} = \frac{\text{amount} \times \text{collateral\_balance}}{\text{total\_shares}}
$$


# Layerbank Lend

## Overview

The `layerbank_simple::strategy` module implements a simple lending strategy for the LayerBank protocol. It allows deposits and withdrawals of `FungibleAsset` types and manages lending positions in LayerBank markets.

## Strategy Module

### Structs

#### Witness

Internal witness type for strategy creation.

```rust
struct Witness has drop {}
```

#### LayerBankStrategy

Core strategy struct storing vault and the address of the rewars controller (optional).

```rust
struct LayerBankStrategy has key {
    auth_ref: AuthRef,
    vault: Object<Vault>,
    rewards_controller_address: Option<address>
}
```

### Events

* **StrategyCreated**: Event emitted when a new strategy is created.

### Error Codes

* `ENOT_AUTHORIZED`: Not authorized to perform the operation
* `EINVALID_AMOUNT`: Invalid amount specified
* `EINSUFFICIENT_BALANCE`: Insufficient balance to perform the operation
* `EVAULT_MISMATCH`: Invalid vault specified
* `EWITHDRAWAL_ACCOUNT_MISMATCH`: Invalid withdrawal account specified
* `ECANNOT_EXCEED_DEBT`: Cannot exceed the strategy debt

### Public Functions

#### Strategy Creation and Management

* `create(account: &signer, vault: Object<Vault>, debt_limit: u64, rewards_controller_address: Option<address>)`: Creates a new instance of the strategy for the specified vault and sets up the rewards controller address (optional).

#### Deposit and Withdrawal Functions

* `deposit_fa(account: &signer, strategy: Object<BaseStrategy>, amount: u64)`: Withdraws the strategy's base asset from signer's primary store and deposits this into the strategy. The minted strategy shares are deposited into the signer's primary fungible store.
* `withdraw_fa(account: &signer, strategy: Object<BaseStrategy>, amount: u64, max_loss: Option<u64>)`: Withdraws the strategy's base asset from the strategy by redeeming the specified amount of strategy shares from the signer's primary fungible store.

#### Vault Operations

* `vault_deposit_fa(governor: &signer, strategy: Object<BaseStrategy>, amount: u64)`: Deposits the strategy's base asset from the vault into the strategy. Must be called with the vault's governor. Must be called with the vault's signer (typically via router). The minted strategy shares are deposited into the vault's primary fungible store.
* `vault_withdraw_fa(account: &signer, request: &mut WithdrawalRequest, strategy: Object<BaseStrategy>, amount: u64, max_loss: Option<u64>): FungibleAsset`: Withdraws the strategy's base asset from a vault's strategy. Must be called with the vault's signer (typically via router). Processes withdrawal through the withdraw\_strategy\_shares function in the `satay::vault` module.

#### Strategy Operations

* `tend_fa(manager: &signer, strategy: Object<BaseStrategy>)`: Tends the strategy's position by depositing idle assets into the LayerBank market.
* `vault_report(governor: &signer, strategy: Object<BaseStrategy>)`: Reports strategy performance to the vault.
* `harvest(account: &signer, strategy: Object<BaseStrategy>)`: Harvests profits/losses including rewards from the strategy. Base asset rewards are considered profits and are auto-compounded back into the strategy. Non-base asset rewards are deposited to the strategy's primary fungible store and can be swept using base\_strategy::sweep. Only callable by accounts authorized to request harvests.

#### Admin Functions

* `set_rewards_controller_address(account: &signer, strategy: Object<BaseStrategy>, new_rewards_controller_address: Option<address>)`: Updates the rewards controller address for the strategy. Only callable by strategy manager.
* `claim_all_non_base_asset_rewards(account: &signer, strategy: Object<BaseStrategy>)`: Claims all non-base asset rewards from LayerBank. Only callable by strategy manager.

#### View Functions

* `get_base_asset(strategy: Object<BaseStrategy>): Object<Metadata>`: Returns the base asset Metadata Object for the strategy.
* `get_rewards_controller_address(strategy: Object<BaseStrategy>): Option<address>`: Returns the current rewards controller address. Returns None if there is no reward controller address set.

### Internal Functions

* `borrow_strategy(strategy: Object<BaseStrategy>): &LayerBankStrategy`: Returns a reference to the strategy data.
* `deposit_fa_internal(strategy: &LayerBankStrategy, asset: FungibleAsset): FungibleAsset`: Internal function for deposits. Mints strategy shares and deposits assets into LayerBank.
* `market_deposit_fa_internal(strategy: &LayerBankStrategy, asset: FungibleAsset)`: Internal function for depositing assets to LayerBank market.
* `withdraw_fa_internal(strategy_ref: &LayerBankStrategy, asset: FungibleAsset, max_loss: Option<u64>): FungibleAsset`: Internal function for withdrawals. Processes withdrawal through idle assets first, then withdraws from LayerBank if needed.
* `market_withdraw_fa_internal(strategy_ref: &LayerBankStrategy, amount: u64): FungibleAsset`: Internal function for withdrawing assets from LayerBank market.
* `handle_harvest_pnl(request: &mut HarvestRequest, strategy: Object<BaseStrategy>, base_metadata: Object<Metadata>)`: Internal function to calculate and report profits/losses during harvest. Compares the latest supplied amount in LayerBank against the last recorded total debt to determine if there was a profit or loss.


# Vault Rebalancing Strategies


# Ascend Strategy

The Ascend strategy is a liquidity management approach tailored for correlated and stable asset pairs. It focuses on centering liquidity around a defined peg and making gradual adjustments in response to market conditions. By deploying liquidity within a carefully calculated position radius, the strategy aims to optimize fee generation while minimizing risks through deliberate and controlled rebalancing.

**Key Features of the Ascend Strategy:**

1. **Centering Liquidity Around the Peg:** The strategy calculates a position radius around the pool’s peg, which is set by the strategy administrator. This ensures that liquidity is deployed in the most efficient range, optimizing fee generation while aligning with the pool’s price dynamics.
2. **Dynamic Rebalancing:** As the pool’s price shifts over time, the strategy dynamically adjusts by performing swaps and rebalances to reposition liquidity, ensuring it remains centered around the new price. This continuous rebalancing helps optimize returns and maintain an ideal liquidity profile.
3. **Median Observation for Stability:** To avoid reacting to short-term volatility, the strategy takes multiple observations at regular intervals and calculates the median price. This median serves as an anchor point for rebalancing decisions, ensuring adjustments are deliberate and informed by broader trends rather than temporary price changes.
4. **Controlled Swaps for Efficiency:** The strategy limits the size of swaps to ensure that only a controlled portion of the vault's liquidity can be swapped at once. Swaps occur within a single tick, incurring minimal slippage, and are designed to maintain the pool’s active price point.
5. **Periodic Adjustments for Stability:** Rebalancing is triggered when the median peg has moved or when a swap can safely increase the concentration of tokens around the peg. This ensures that liquidity remains tightly aligned with the peg, maintaining optimal positioning and efficiency without unnecessary activity.

The Ascend strategy is designed to maintain liquidity centered around the pool's real-time price (tick) while adjusting dynamically to market changes.


# Protocol Layer

Integrated Protocols form the foundation of our yield-generating Strategies.

Each Strategy interacts directly with multiple DeFi protocols. These protocols handle fundamental actions such as staking, lending, borrowing, and liquidity provisioning, which serve as building blocks for yield generation.&#x20;

Canopy’s platform, builds strategies that reduce the complexity of managing individual protocol interactions. This integration allows users to effortlessly participate in efficient asset management DeFi.

#### Integrated Protocols:

Lend/Borrow Markets: MovePosition, Echelon, LayerBank.


# Echelon Integration

## Overview

The `echelon_block::echelon_block` module contains the block implementation for Echelon. Modules in the `blocks` package are modules that contain convenience functions that interface with an underlying protocol(e.g. echelon, moveposition, etc). These block functions are used by concrete strategy implementations to interact with an underlying protocol, instead of interacting with it directly.

## Constants

* **SUPPLY\_MARKET\_TYPE**: `u64 = 200` - Type identifier for supply market operations
* **BORROW\_MARKET\_TYPE**: `u64 = 201` - Type identifier for borrow market operations

## Public Functions

### Market Operations

* `supply<CoinType>(account: &signer, market: Object<Market>, coin: Coin<CoinType>)`: Supplies coins to the specified market.
* `supply_fa(account: &signer, market: Object<Market>, asset: FungibleAsset)`: Supplies fungible assets to the specified market.
* `borrow<CoinType>(account: &signer, market: Object<Market>, amount: u64): Coin<CoinType>`: Borrows coins from the specified market.
* `withdraw<CoinType>(account: &signer, market: Object<Market>, shares: u64): Coin<CoinType>`: Withdraws coins from the specified market based on shares.
* `withdraw_fa(account: &signer, market: Object<Market>, shares: u64): FungibleAsset`: Withdraws fungible assets from the specified market based on shares.

### Account Information

* `account_coins(account: address, market: Object<Market>): u64`: Returns the number of coins an account has in a market.
* `account_shares(account: address, market: Object<Market>): u64`: Returns the number of shares an account has in a market.
* `amount_borrowable<CoinType>(account: address, market: Object<Market>): u64`: Returns the amount of coins an account can borrow from a market.
* `amount_withdrawable<CoinType>(account: address, market: Object<Market>): u64`: Returns the amount of coins an account can withdraw from a market.
* `coins_to_shares(market: Object<Market>, coins: u64): u64`: Converts coin amount to share amount for a given market.

### Reward Operations

* `get_supply_reward<CoinType>(account: address, market: address): u64`: Returns the claimable supply reward amount for a specific coin type.
* `get_supply_reward_fa(account: address, market: address, metadata: Object<Metadata>): u64`: Returns the claimable supply reward amount for a fungible asset.
* `get_borrow_reward<CoinType>(account: address, market: address): u64`: Returns the claimable borrow reward amount for a specific coin type.
* `get_borrow_reward_fa(account: address, market: address, metadata: Object<Metadata>): u64`: Returns the claimable borrow reward amount for a fungible asset.
* `claim_supply_reward<CoinType>(account: &signer, market: address): Coin<CoinType>`: Claims supply rewards for a specific coin type.
* `claim_supply_reward_fa(account: &signer, metadata: Object<Metadata>, market: address): FungibleAsset`: Claims supply rewards for a fungible asset.


# MovePosition Integration

## Overview

The `moveposition_block::moveposition_block` module contains the block implementation for MovePosition. Modules in the `blocks` package are modules that contain convenience functions that interface with an underlying protocol(e.g. echelon, moveposition, etc). These block functions are used by concrete strategy implementations to interact with an underlying protocol, instead of interacting with it directly.

## Public Functions

### Lending Operations

* `lend<CoinType>(account: &signer, packet: vector<u8>)`: Lends coins to the protocol using the provided packet data.
* `borrow<CoinType>(account: &signer, packet: vector<u8>)`: Borrows coins from the protocol using the provided packet data.
* `redeem<CoinType>(account: &signer, packet: vector<u8>)`: Redeems previously lent coins using the provided packet data.
* `repay<CoinType>(account: &signer, packet: vector<u8>)`: Repays borrowed coins using the provided packet data.

### Account Information

* `get_collateral_balance<CoinType>(account: address): u64`: Returns the collateral balance for a specific coin type in an account.


# Layerbank Integration

## Overview

The `layerbank_block::layerbank_block` module contains the block implementation for LayerBank's Aave integration. This module provides convenience functions to interact with Aave's lending protocol, handling supply operations, withdrawals, and rewards claiming. These block functions are used by concrete strategy implementations to interact with the Aave protocol, instead of interacting with it directly.

## Constants

* **MAX\_U64**: `u256 = 18446744073709551615u256` - Maximum value for a u64, used in rewards claiming operations

## Public Functions

### Lending Operations

* `supply(account: &signer, asset: address, amount: u256, recipient: address, referral_code: u16)`: Wraps the Aave `supply_logic::supply` function. Supplies an asset to the Aave lending pool and mints aTokens to the specified recipient. The account must have sufficient balance of the asset.
* `withdraw(account: &signer, asset: address, amount: u256, recipient: address)`: Wraps the Aave `supply_logic::withdraw` function. Withdraws an asset from the Aave lending pool. The account must have sufficient aToken balance. The withdrawn assets are sent to the specified recipient. Note: This function does not claim rewards - reward claiming should be handled separately.

### Rewards Operations

* `claim_all_rewards(caller: &signer, asset: Object<Metadata>, rewards_controller_address: address)`: Claims all available rewards for a supplied asset. Claims rewards for a single supplied asset and sends rewards to the caller's address.
* `claim_all_non_base_asset_rewards(caller: &signer, base_asset: Object<Metadata>, rewards_controller_address: address)`: Claims all rewards except those denominated in the base asset. Retrieves the list of all reward assets, claims rewards for each reward asset except the base asset, and sends all claimed rewards to the caller's address.
* `claim_base_asset_rewards(caller: &signer, base_asset: Object<Metadata>, rewards_controller_address: address): u256`: Claims only the rewards denominated in the base asset. Returns the total amount of base asset rewards claimed. The claimed rewards are sent to the caller's address. Returns 0 if no base asset rewards are available.

### View Functions

* `get_user_supply_with_interest(user: address, asset: address): u256`: Returns the total amount of underlying asset supplied by a user including accrued interest. Calculated by multiplying the user's scaled aToken balance by the normalized income (liquidity index). Returns the total supply balance in the underlying asset's decimals.
* `reserve_exists(asset: address)`: Verifies if a reserve exists for the specified asset by attempting to get its reserve data. Aborts if the reserve doesn't exist.


# Glossary

Understand the key concepts that drive Canopy.

#### **AEGIS Contract**[​](https://labs-solo.github.io/canopy-docs/introduction/glossary-of-terms#aegis-contract) <a href="#aegis-contract" id="aegis-contract"></a>

An autonomous smart contract responsible for managing liquidity and token interactions within Canopy, ensuring seamless and secure operations.

***

#### **Directional Liquidity**[​](https://labs-solo.github.io/canopy-docs/introduction/glossary-of-terms#directional-liquidity) <a href="#directional-liquidity" id="directional-liquidity"></a>

Liquidity provision that allows for single-token liquidity provision, minimizing the risk of over-selling assets and reducing exposure to impermanent loss.

***

#### **$LEAF Token**[​](https://labs-solo.github.io/canopy-docs/introduction/glossary-of-terms#leaf-token) <a href="#leaf-token" id="leaf-token"></a>

The primary liquidity token used for trading, liquidity provision, and governance within the Canopy ecosystem.

***

#### **$OAK Token**[​](https://labs-solo.github.io/canopy-docs/introduction/glossary-of-terms#oak-token) <a href="#oak-token" id="oak-token"></a>

A token representing long-term value accrual, redeemable for an increasing amount of $LEAF tokens over time, incentivizing sustained participation.

***

#### **Impermanent Loss**[​](https://labs-solo.github.io/canopy-docs/introduction/glossary-of-terms#impermanent-loss) <a href="#impermanent-loss" id="impermanent-loss"></a>

The temporary loss of funds experienced by liquidity providers due to volatility in a trading pair, which Canopy mitigates through D-AMM technology.

***

#### **Liquidity Provider (LP)**[​](https://labs-solo.github.io/canopy-docs/introduction/glossary-of-terms#liquidity-provider-lp) <a href="#liquidity-provider-lp" id="liquidity-provider-lp"></a>

An individual or entity that supplies tokens to liquidity pools in exchange for potential rewards, contributing to the ecosystem's liquidity and stability.

***

#### **Single-Token Liquidity** <a href="#single-token-liquidity-pods" id="single-token-liquidity-pods"></a>

Specialized pools within the D-AMM where asset owners can deposit a single type of token for liquidity provision without needing to pair assets.

***

#### **Directional Liquidity**[​](https://labs-solo.github.io/canopy-docs/introduction/glossary-of-terms#directional-liquidity-1) <a href="#directional-liquidity-1" id="directional-liquidity-1"></a>

A type of AMM that allows for single-token liquidity provision, reducing the risk of impermanent loss.

***

#### **Protocol-Owned Liquidity**[​](https://labs-solo.github.io/canopy-docs/introduction/glossary-of-terms#system-owned-liquidity) <a href="#system-owned-liquidity" id="system-owned-liquidity"></a>

Liquidity that is owned and managed by the Canopy platform itself, reinvesting fees back into the ecosystem for sustainable growth.

***

<br>


# Dynamic Full Float Tokenomics

### **1. Introduction** <a href="#id-50l73zp6yq58" id="id-50l73zp6yq58"></a>

Gone are the days of low-float, high fully diluted valuation (FDV) token launches, where teams must play games to constrain supply as mercenary capital, airdroppers, and other opportunists flood the market and rapidly sell off tokens. Canopy was built to address this fundamental challenge, recognizing the critical utility of tokens in attracting liquidity in a sustainable and effective way.&#x20;

The design of Canopy centers on three key tenets: incentivizing long-term participation, building sustainable liquidity incentives, and creating a self-sustaining liquidity model. By rewarding committed participants, discouraging speculative behaviors, and ensuring that ecosystem growth naturally reinforces the liquidity base, Canopy sets a new standard for token utility.

The Canopy token model introduces a synergistic system designed to balance liquidity provision with sustainable long-term value growth. At its core, **$LEAF** serves as the governance and liquidity token, capturing value from trading fees while empowering holders to participate in key protocol decisions.

Complementing this is **$OAK**, a token representing a growing claim on liquidity shares that transition over time from $LEAF to stablecoins or bluechip assets, under the management of the Aegis contract. By accruing value linearly until a fixed maturity date, $OAK incentivizes long-term holding and discourages early redemptions, with forfeited future accruals redistributed to remaining holders. Additionally, $OAK distributions empower new projects with spending power for revenue-generating activities, creating a feedback loop that fuels ecosystem growth and sustains a high, stable price for $LEAF. Together, $LEAF and $OAK establish a robust foundation for governance, liquidity management, and ecosystem expansion.

### **2. Token Model Overview** <a href="#id-89if15l1g7q6" id="id-89if15l1g7q6"></a>

The Canopy token model features $LEAF, a governance and liquidity token that accrues liquidity over time, supported by a fully on-chain, protocol-owned liquidity system managed by $OAK holders. $OAK, a redemption token, can be exchanged for underlying collateral at any time, while the model is designed to incentivize long-term participation and ecosystem sustainability.

**Diagram 2.1 - Principles of $LEAF**

* Fully on chain in a pool priced 1x - 1000x
* Protocol owned liquidity starts at 100% $LEAF but will be converted to Blue **Chip Assets over time**

<figure><img src="/files/TKk41AzBhFFDcyeACMBP" alt=""><figcaption></figcaption></figure>

#### **2.1 $LEAF Token**

* **Function**
  * Governance and liquidity token.
* **Purpose**
  * Captures trading fees and facilitates governance decisions.
  * Supports liquidity provision within the Canopy ecosystem.

**Diagram 2.2 - Principles of $OAK**

<figure><img src="/files/tnJNsqEAE3KUcDbxRlVU" alt=""><figcaption></figcaption></figure>

#### **2.2 $OAK Token**

* **Function**
  * Liquidity share and accrual token.
* **Purpose**
  * Represents a growing claim on liquidity shares. Over time, these shares transition from $LEAF to stablecoins or bluechip.
  * Encourages long-term holding by rewarding patient participants.

### **2.3 Token Dynamics**

**Incentives and Benefits for Holders**

* **Framing the Ecosystem**: $OAK and $LEAF work in tandem to ensure a symbiotic relationship between liquidity and governance within the Canopy ecosystem.
* **Long-term Focus**: Both tokens incentivize patient holders, ensuring sustainable growth and stability.

### **3. Core Token Functions** <a href="#id-3yz6yyp5ew5y" id="id-3yz6yyp5ew5y"></a>

#### **3.1 Governance and Increased Liquidity ($LEAF)**

* Token holders use $LEAF to vote on key protocol decisions, such as:
  * Adjusting $OAK distribution rates.
  * Liquidity strategies.
  * Treasury management and protocol upgrades.
* Trading fees generated by the ecosystem accrue to $LEAF, increasing liquidity.

#### **3.2 Liquidity Shares and Accrual ($OAK)**

* $OAK accrues value linearly from its issuance date until a fixed maturity date.
* The Aegis contract manages the gradual transition of liquidity shares from $LEAF to stablecoins or bluechip assets.
* At maturity, $OAK holders claim accrued shares in $LEAF, stablecoins, or bluechip assets.
* Early redemptions are disincentivized, as forfeited future accruals are redistributed to remaining $OAK holders.

#### **3.3 Spending Power for Growth**

* Distributed $OAK tokens empower new projects to fund revenue-generating activities without significantly diluting $LEAF’s value.
* This spending power creates a feedback loop, driving ecosystem growth and maintaining a high, stable price for $LEAF.

### **4. Distribution and Emissions** <a href="#s8plmdu68ofv" id="s8plmdu68ofv"></a>

The distribution of $OAK is strategically designed to attract liquidity and ensure sustainable ecosystem growth without relying on complex vesting schedules or large unlocks. By setting allocations at the onset, $OAK serves as a primary tool for incentivizing participation and aligning long-term interests across the community, partners, and key stakeholders.

**4.1 Initial Allocation of $OAK**

| **Category**                     | **Percentage** | **Details**                                                                                          |
| -------------------------------- | -------------- | ---------------------------------------------------------------------------------------------------- |
| Community and Partner Incentives | 40%            | To support ecosystem growth and incentivize participation.                                           |
| Protocol Treasury                | 20%            | Reserved for strategic initiatives and market stabilization.                                         |
| Team, Advisors, Investors        | 40%            | All shares include the same linear value accrual and maturity day that incentivizes long term holds. |

#### **4.2 Dynamic Emissions**

* Governance adjusts $OAK distribution rates to optimize liquidity provision and ecosystem growth.
* Treasury-held $OAK tokens can be burned or reinvested into bluechip liquidity to stabilize token value.

### **5. Stability and Liquidity Mechanisms** <a href="#rwiestmrf8jd" id="rwiestmrf8jd"></a>

#### **5.1 Aegis Contract**

The Aegis contract holds two directional liquidity positions: one in $LEAF and one in bluechip or stablecoin assets. As $LEAF accumulates bluechip assets, a portion of these are shifted into the bluechip position, gradually increasing the system’s stable asset holdings and reducing volatility.

#### **5.2 Price Stability ($LEAF)**

* The liquidity of $LEAF is supported by:
  * Accrued value locked in $OAK tokens.
  * Trading fees and liquidity incentives.
  * Controlled emissions and strategic $OAK burns.

#### **5.3 Spending Power**

* $OAK tokens are distributed to fund new projects, fueling ecosystem growth.
* Effective spending on revenue-generating initiatives reinforces $LEAF’s price stability.

### **6. Example Scenario: Early Redemption vs. Holding to Maturity** <a href="#ozcpkvxkl611" id="ozcpkvxkl611"></a>

To illustrate how the $OAK token model works, consider the following scenario:

1. The protocol owns 1,000,000 liquidity shares, composed of 25% MOVE and 75% $LEAF.
2. An entity holding 5% of the $OAK supply would have a claim to 50,000 protocol-owned liquidity shares if held to maturity.
3. If another holder with 5% of the $OAK supply redeems on day one, they would only claim 100 total liquidity shares.
4. As a result, the 49,900 unclaimed shares from the early redemption are redistributed to remaining $OAK holders.
5. This increases the value of the 5% held to maturity to **52,495 shares**, rewarding long-term holders.

This mechanism not only incentivizes patience but also redistributes value to holders committed to the ecosystem’s long-term success.

### **7.Specific Token Pairings and Their Impact** <a href="#qgiu7oy57q7y" id="qgiu7oy57q7y"></a>

Canopy’s token pairing strategy enhances liquidity and fosters ecosystem growth by incentivizing projects to pair their tokens with $LEAF to access $OAK rewards. This approach drives liquidity support for $LEAF while diversifying protocol-owned liquidity (POL), ensuring stability and scalability.

#### **7.1 $MOVE-$LEAF and $USDC-$LEAF Pairs**

* Liquidity Stability
  * Pairing with USDC and MOVE provides a reliable cornerstone for the liquidity pools.
* Reduced Volatility
  * Helps mitigate the price fluctuations of $LEAF, making it more attractive to investors.

#### **7.2 Project Token-$LEAF Pairs**

By supporting new projects, Canopy fosters innovation within the Move ecosystem, leading to sustained growth.

* Ecosystem Expansion
  * Facilitates the introduction of new tokens into the market.
* Ecosystem Rewards
  * Project TVL is rewarded with $OAK tokens.
* Mutual Growth
  * Projects gain liquidity and exposure, while Canopy expands its liquidity pools.

### **8. Governance Framework** <a href="#vkffwwfjzuuf" id="vkffwwfjzuuf"></a>

Governance is conducted using $LEAF tokens, where each $LEAF represents voting power. Token holders can vote on decisions such as adjusting the rate of $OAK distribution, liquidity strategies, and other key changes within the protocol, ensuring the ecosystem evolves in a community-driven way.

* **Voting Power**: $LEAF tokens grant governance rights, with proposals and voting conducted via on-chain mechanisms.

### **9. Benefits to Participants** <a href="#id-2phv6keaqvcj" id="id-2phv6keaqvcj"></a>

* Liquidity Providers
  * Earn trading fees and $OAK rewards, with shares accruing over time.
* Long-Term $OAK Holders
  * Accrue increasing value in stablecoins and bluechip assets.
  * Benefit from reduced supply due to early redemptions.
* New Projects
  * By distributing $OAK tokens, new token projects can access spending power to fuel growth. This model enables projects to invest in revenue-generating activities, which, in turn, can help sustain the overall value of the ecosystem, including maintaining $LEAF’s stable price.
* $LEAF Holders
  * Capture trading fees and influence governance decisions, benefiting from ecosystem growth.

### **Frequently Asked Questions** <a href="#z8csevgf1c44" id="z8csevgf1c44"></a>

#### **1. What are the core functions of $LEAF and $OAK tokens?**

* **$LEAF**: Functions as both the liquidity and governance token. It captures value through trading fees and allows participation in governance decisions, enabling token holders to vote on key issues.
* **$OAK**: Represents a claim on liquidity shares that accrue over time. These shares shift from being primarily $LEAF to a mix of stablecoins or bluechip assets, rewarding long-term holders.

#### **2. How does $OAK accrue value over time?**

$OAK tokens accrue liquidity shares in a **linear fashion** from the start date to a fixed maturity date. As time progresses, these shares increasingly consist of stablecoins or bluechip assets, managed by the Aegis contract, which gradually shifts liquidity away from $LEAF.

#### **3. What happens if someone redeems $OAK early?**

If $OAK is redeemed before its maturity date, the holder claims only the liquidity shares accumulated up to that point (in $LEAF and bluechip assets). Future accruals are forfeited and redistributed to remaining $OAK holders, effectively making early redemptions less attractive over time.

#### **4. Why is long-term holding of $OAK beneficial?**

Long-term holders benefit as their $OAK tokens accrue more liquidity shares, including valuable bluechip assets. Early redemptions reduce the overall supply of $OAK, increasing the share of future rewards for those who continue to hold. The system incentivizes patience, rewarding those who believe in the long-term success of the ecosystem.

#### **5. What makes early redemptions less attractive?**

Early redemptions lower the redemption value of $OAK for others and cause future liquidity shares to be redistributed to remaining $OAK holders. This naturally discourages early withdrawals, as holders who wait until maturity will receive more liquidity value.

#### **6. What is the spending power associated with this model?**

The **spending power** in this model comes from distributing $OAK tokens to fund new projects or initiatives. This allows the system to allocate resources toward revenue-generating activities without significantly diluting $LEAF's price. If this spending is done effectively, it can help fuel the ecosystem and maintain the high, stable price of $LEAF.

#### **7. How does $LEAF's price remain stable and high?**

The price of $LEAF remains stable because the value locked in $OAK tokens reflects future liquidity accruals. As new projects use distributed $OAK tokens to drive revenue, the system captures value, helping maintain the high price of $LEAF through trading fees and liquidity growth.

#### **8. How does the system discourage excessive redemptions?**

Aside from the natural disincentive to redeem early, the protocol can slow $OAK distribution, reducing redemptions. Additionally, burning treasury-held $OAK tokens and reinvesting bluechip liquidity into the system can further reduce the appeal of early redemptions by increasing the value of remaining $OAK holders.

#### **9. What would trigger the burning of treasury-held $OAK tokens?**

A **faster-than-expected decline in the price of $LEAF** could prompt the burning of treasury-held $OAK tokens. This would reduce the supply of $OAK, increase the income for remaining holders, and stabilize the ecosystem by supporting the value of $LEAF and remaining $OAK tokens.

#### **10. How does the Aegis contract shift liquidity shares from $LEAF to bluechip assets?**

The Aegis contract holds two directional liquidity positions: one in $LEAF and one in bluechip or stablecoin assets. As $LEAF accumulates bluechip assets, a portion of these are shifted into the bluechip position, gradually increasing the system’s stable asset holdings and reducing volatility.

#### **11. How does this model benefit new token projects?**

By distributing $OAK tokens, new token projects can access spending power to fuel growth. This model enables projects to invest in revenue-generating activities, which, in turn, can help sustain the overall value of the ecosystem, including maintaining $LEAF’s stable price.

#### **12. What role does governance play in this ecosystem?**

Governance is conducted using $LEAF tokens, where each $LEAF represents voting power. Token holders can vote on decisions such as adjusting the rate of $OAK distribution, liquidity strategies, and other key changes within the protocol, ensuring the ecosystem evolves in a community-driven way.

**13. How will participants learn about the value of holding $OAK to maturity?**

To educate participants, diagrams, videos, app features, and explainers will be created to clearly demonstrate the long-term benefits of holding $OAK tokens, as well as the mechanisms that support liquidity, governance, and price stability within the ecosystem.


# Audit Reports

### **Strategies**

**Canopy Autocompounding Rewards**

**Audit** **Date:** July 1, 2025&#x20;

**Firm:** [Halborn](https://www.halborn.com/)

{% file src="/files/byNOHyP4Sy13sIrDkW87" %}

**Canopy Core Strategies**

**Audit** **Date:** December 12, 2024&#x20;

**Firm:** [Halborn](https://www.halborn.com/)

{% file src="/files/bRDLqPJf7YKsv3GLHvJE" %}

**Canopy Core Strategies Re-Audit**

**Audit** **Date:** February 13, 2025&#x20;

**Firm:** [Halborn](https://www.halborn.com/)

{% file src="/files/2Cn6l63o2S1AGBAQeJaG" %}

**Asset Management Contracts**

**Audit** **Date:** June 11, 2024&#x20;

**Firm:** [Movebit](https://www.movebit.xyz/)

{% file src="/files/hXq9XKUIkOSoZp8sZfee" %}

### **Corncucopia Campaign**

**Cornucopia Campaign Audit**

**Audit** **Date:** March 11, 2025

**Firm:** [Ottersec](https://osec.io/)

{% file src="/files/0G0b9t6dAaIyPzR70G6K" %}

**Cornucopia Campaign Audit**

**Audit** **Date:** February 18, 2025

**Firm:** [Movebit](https://www.movebit.xyz/)

{% file src="/files/e4gjIouB6tYn37mPRjJ1" %}


# Cornucopia Campaign

A step by step guide to claiming Cornucopia funds on Canopy.

### Step 1: Go to <https://app.canopyhub.xyz/explore>.

<figure><img src="/files/2fcuALsGdBM8UyNPedTx" alt=""><figcaption></figcaption></figure>

### Step 2: Connect a Movement Network Wallet.

Movement Wallets can be made at [Nightly](https://nightly.app/) or [Razor Wallet](https://razorwallet.xyz/).

<figure><img src="/files/iBdj8gZuwIHnfRwURm1N" alt=""><figcaption></figcaption></figure>

### Step 3: Click on "Connect EVM Wallet".

Connect the wallet you used to deposit into Cornucopia Vaults on [Concrete](https://movement.concrete.xyz/) or [Veda](https://app.ether.fi/liquid/move-eth).

<figure><img src="/files/uS4SLp4jKkEXSP50wG0h" alt=""><figcaption></figcaption></figure>

### Step 4: Connect the EVM Wallet.

<figure><img src="/files/T3msuOOaFReDIgCW2rRz" alt=""><figcaption></figcaption></figure>

### Step 5: Click on "Link with MOVE wallet".

<figure><img src="/files/WRqr29lFNZmszrZAscBX" alt=""><figcaption></figcaption></figure>

### Step 6: Link your EVM Wallet and Movement Wallet.

<figure><img src="/files/2vAtkz8LFqtZTbeuym0z" alt=""><figcaption></figcaption></figure>

### Step 7: Verify your Movement and EVM wallet are linked.

<figure><img src="/files/sIW6575XrehiP6SAw9Lh" alt=""><figcaption></figcaption></figure>


# Depositing on Canopy

A step by step guide to claiming Cornucopia funds on Canopy.

### Step 1: Go to <https://app.canopyhub.xyz/explore>.

<figure><img src="/files/2fcuALsGdBM8UyNPedTx" alt=""><figcaption></figcaption></figure>

### Step 2: Connect a Movement Network Wallet.

Movement Wallets can be made at [Nightly](https://nightly.app/) or [Razor Wallet](https://razorwallet.xyz/).

<figure><img src="/files/iBdj8gZuwIHnfRwURm1N" alt=""><figcaption></figcaption></figure>

### Step 3: Select a Vault.

<figure><img src="/files/tgnM0Mmz2ghse4jhZuS2" alt=""><figcaption></figcaption></figure>

### Step 4: Choose an Amount to Deopsit.

<figure><img src="/files/ZR0XhLhShKeXxfuKeNeP" alt=""><figcaption></figcaption></figure>

### Step 5: Review your Position.

<figure><img src="/files/FqIUXTLwj3bpEVuRSEFj" alt=""><figcaption></figcaption></figure>


# Withdrawing from Cornucopia and Earning Rewards

### **Step 1: Access Your Vault**

After linking your Movement and Ethereum wallets, locate your Cornucopia Vault (marked with "Cornucopia") and click **Manage Position**.

<div data-full-width="true"><figure><img src="/files/EsJUi3OShkiDhNjfNYXy" alt=""><figcaption><p>Accessible on <a href="https://app.canopyhub.xyz/explore">https://app.canopyhub.xyz/explore</a></p></figcaption></figure></div>

### **Step 2: Claim or Withdraw**

You’ll now see options to **Claim Rewards** and **Withdraw**.

* **Rewards** unlock gradually over 30 days after the initial unlock date.
* When you **Withdraw**, you’ll receive **Canopy Vault LP tokens**, which will appear as a new position on your **Explore** page.
* Even after withdrawing your Cornucopia LPs, you will **continue earning your vesting Cornucopia rewards** until they are fully unlocked.

<figure><img src="/files/nn13vpiNS0f9LoRTc5Cz" alt=""><figcaption></figcaption></figure>

### **Step 3: Withdraw LP Tokens**

Click **Withdraw** to convert your **Cornucopia Vault LPs** into the corresponding **Canopy Vault LPs**.

<figure><img src="/files/o1IW94bPu7q6nBkZmEq8" alt=""><figcaption></figcaption></figure>

### **Step 4: Manage Your Canopy LP Tokens**

After withdrawing Cornucopia Vault LPs, your **Canopy Vault LP tokens** will appear as a new position on your **Explore** page (see example below).\
Click **Manage Liquidity** on your Canopy LP position to take further actions, like staking your tokens in a Canopy Vault Reward Farms.

<figure><img src="/files/VatT4fRWrXRlfZloQQoj" alt=""><figcaption></figcaption></figure>

### **Step 5: Stake Your LP Tokens**

Stake your **Canopy Vault LP tokens** to start earning new rewards.

<div align="center"><figure><img src="/files/iNDXf4g6ucdQiaVJAe9o" alt=""><figcaption></figcaption></figure></div>

### **Step 6: Monitor Your Rewards**

Visit the [**Rewards page**](https://app.canopyhub.xyz/rewards) to track your earnings.\
You’ll see both:

* **Cornucopia rewards** still unlocking from your original position
* **New rewards** earned from staking your Canopy LP tokens in the reward farms

<div data-full-width="true"><figure><img src="/files/X4ljffVxryGfZqMuLFC8" alt=""><figcaption><p>Accessible on <a href="https://app.canopyhub.xyz/explore">https://app.canopyhub.xyz/</a>rewards</p></figcaption></figure></div>


# Withdrawing from Cornucopia

### **Step 1: Access Your Vault**

After linking your Movement and Ethereum wallets, locate your Cornucopia Vault (marked with "Cornucopia") and click **Manage Position**.

<div data-full-width="true"><figure><img src="/files/EsJUi3OShkiDhNjfNYXy" alt=""><figcaption><p>Accessible on <a href="https://app.canopyhub.xyz/explore">https://app.canopyhub.xyz/explore</a></p></figcaption></figure></div>

### **Step 2: Claim or Withdraw**

You’ll now see options to **Claim Rewards** and **Withdraw**.

* **Rewards** unlock gradually over 30 days after the initial unlock date.
* When you **Withdraw**, you’ll receive **Canopy Vault LP tokens**, which will appear as a new position on your **Explore** page.
* Even after withdrawing your Cornucopia LPs, you will **continue earning your vesting Cornucopia rewards** until they are fully unlocked.

<figure><img src="/files/nn13vpiNS0f9LoRTc5Cz" alt=""><figcaption></figcaption></figure>

### **Step 3: Withdraw LP Tokens**

Click **Withdraw** to convert your **Cornucopia Vault LPs** into the corresponding **Canopy Vault LPs**.

<figure><img src="/files/o1IW94bPu7q6nBkZmEq8" alt=""><figcaption></figcaption></figure>

### **Step 4: Manage Your Canopy LP Tokens**

After withdrawing Cornucopia Vault LPs, your **Canopy Vault LP tokens** will appear as a new position on your **Explore** page (see example below).\
Click **Manage Liquidity** on your Canopy LP position to take further actions, like staking your tokens in a Canopy Vault Reward Farms or Withdraw.

<figure><img src="/files/VatT4fRWrXRlfZloQQoj" alt=""><figcaption></figcaption></figure>

### **Step 5: Withdraw Your LP Tokens**

Withdraw your **Canopy Vault LP tokens**.

* If you are in a **lending vault** (such as Moveposition, Echelon, or Layerbank), your tokens will be **returned directly to your wallet** after withdrawal.
* If you are in a **DEX vault** (such as Meridian or Liquidswap), after withdrawing your **Canopy LP tokens**, you’ll need to visit the **Meridian(**[**https://app.meridian.money/**](https://app.meridian.money/)**)** or **Liquidswap(**[**https://movement.liquidswap.com/**](https://movement.liquidswap.com/)**)** UI to complete the final withdrawal of your DEX LP tokens.

<div align="center"><figure><img src="/files/iNDXf4g6ucdQiaVJAe9o" alt=""><figcaption></figcaption></figure></div>


# MoveDrop Stake to Earn Rewards

### Step 1: Claim your $MOVE allocation on Move Drop site and choose your vault.

Clicking "Vault 1" will take you to our Moveposition MOVE Simple Lending vault. Clicking "Vault 2" will take you to our Echelon MOVE Simple Lending vault. Clicking "Vault 3" will take you to our Layerbank MOVE Simple Lending vault.&#x20;

<figure><img src="/files/93d8pKamw0mX6JEKCcqW" alt=""><figcaption></figcaption></figure>

### Step 2: Deposit and Stake to begin earning rewards.

Click "Deposit", approve the transaction, then the "Stake" transaction will come up and approve that.

<figure><img src="/files/u68fuEWgzwCF40Ya1Cuu" alt=""><figcaption></figcaption></figure>

Simple as that! For any questions please open a Move Drop ticket in our Discord at <https://discord.gg/Ph8aP3K2>.


# Terms of Service

Last Updated: March 8, 2025

Please read these Terms of Service (the “Terms”) carefully because they govern your use of the website located at <https://www.canopyhub.xyz/> (the “Site”), the services described below in the “Overview of the Services” section, and the associated web application (the “App”) offered by Canopy (“We,” “Us,” or “Canopy”). To make these Terms easier to read, the Site, our services described below, and the App are collectively called the “Services.”

PLEASE NOTE: THE “DISPUTE RESOLUTION” SECTION OF THESE TERMS CONTAINS AN ARBITRATION AGREEMENT THAT REQUIRES DISPUTES TO BE ARBITRATED ON AN INDIVIDUAL BASIS, AND PROHIBITS CLASS ACTION CLAIMS. IT AFFECTS HOW DISPUTES BETWEEN YOU AND CANOPY ARE RESOLVED. BY ACCEPTING THESE TERMS OF SERVICE, YOU AGREE TO BE BOUND BY THIS ARBITRATION AGREEMENT AND CLASS ACTION WAIVER. PLEASE READ IT CAREFULLY.

1. Agreement to Terms. By accessing or using our Services, you agree to be bound by these Terms. If you don’t agree to be bound by these Terms, do not use the Services. If you are an individual accessing or using the Services on behalf of, or for the benefit of, any corporation, partnership or other entity with which you are associated (“Organization”), then you are agreeing to these Terms on behalf of yourself and such Organization, and you represent and warrant that you have the legal authority to bind such Organization to these Terms. References to “you” and “your” in these Terms will refer to both the individual using the Services and to any such Organization.
2. Overview of the Services. \[HH2] The Services provided by Canopy include an interface on which users may manage their portfolios of cryptocurrency and other digital assets (collectively, “Digital Assets”) on the Movement blockchain network, which is a Layer 2 blockchain network on the Ethereum blockchain network (both blockchain networks collectively, the “Network”). The Network itself is not part of the Services, and your use of the Network is entirely at your own risk. Additionally, the third-party technologies required to be used or interacted with to access the Network, including without limitation any Wallet (as defined below, and with other third-party technologies collectively, “Third-Party Tools”), are not part of the Services, and your use of such Third-Party Tools is entirely at your own risk. The Services are separate and distinct from the Network and any Third-Party Tools and provide one such front-end interface but is not essential to accessing the Network. The Services merely display blockchain data and provide a web application that reduces the complexity of interacting with the Network. All activity on the Network is run by permissionless smart contracts, and other developers are free to create their own interfaces to function with the Network.

Your Wallet; Yield.

&#x20;           (a) In connection with using the Services, you may need to link a third-party digital wallet (“Wallet”). By using a Wallet in connection with the Services, you agree that you are subject to the terms and conditions of the applicable third-party provider of such Wallet. Canopy is not associated with, maintained by, supported by, or affiliated with any Wallet provider. Canopy accepts no responsibility or liability to you in connection with your use of a Wallet. You retain control over your Wallet and Digital Assets at all times when interacting with the Services. Canopy has no ability to help you access or recover your private keys and/or seed phrases for your Wallet, so please keep them in a safe place.

&#x20;           (b) These Terms and the Services are not intended to, and do not, create or impose any fiduciary duties on Canopy. To the fullest extent permitted by law, you acknowledge and agree that Canopy owes no fiduciary duties or liabilities to you or any other party, and that to the extent any such duties or liabilities may exist at law or in equity, those duties and liabilities are hereby irrevocably disclaimed, waived, and eliminated.

&#x20;           (c) Your engagement of the Network or Third-Party Services (as defined below) may result in the accumulation and/or transfer of certain Digital Assets (“Yield”) to an account or Wallet of yours. The amount of Yield you accumulate and/or actually receive, if any, is determined entirely by the Network and/or Third-Party Services. We cannot and do not offer or guarantee the receipt of Yield in connection with your use of the Services or your engagement of the Network and/or Third-Party Services.

3. Changes to these Terms or the Services. We may update the Terms from time to time in our sole discretion. If we do, we’ll let you know by posting the updated Terms on the Site or the App or may send other communications. It’s important that you review the Terms whenever we update them or you use the Services. If you continue to use the Services after we have posted updated Terms, then it means that you accept and agree to the changes. If you don’t agree to be bound by the changes, you may not use the Services anymore. Because our Services are evolving over time, we may change or discontinue all or any part of the Services, at any time and without notice, at our sole discretion.
4. Who May Use the Services?

&#x20;           (a) You must be 18 years of age or older and not be a Prohibited Person to use the Services. A “Prohibited Person” is any person or entity that is (i) located in or is a resident, citizen, national or agent of, or an entity organized, incorporated or doing business in Cuba, Iran, North Korea, Syria, Crimea (Ukraine), Luhansk (Ukraine), Donetsk (Ukraine), and the United States of America\[HH3] ; or (ii) owned or controlled by such persons or entities listed in (i). You acknowledge and agree that you are solely responsible for complying with all applicable laws, rules and regulations (“Applicable Law”) of the jurisdiction you are located or accessing the Services from in connection with your use of the Services. By using the Services, you represent and warrant that you meet these requirements and will not be using the Services for any illegal activity or to engage in the prohibited activities.

&#x20;           (b) To use certain aspects of the Services, you may need to create an account or link another account (“Account”). You agree to provide us with accurate, complete and updated information for your Account. You are solely responsible for any activity on your Account and maintaining the confidentiality and security of your password. We are not liable for any acts or omissions by you in connection with your Account. You must immediately notify us if you know or have any reason to suspect that your Account or password has been stolen, misappropriated or otherwise compromised, or in case of any actual or suspected unauthorized use of your Account. You agree not to create any Account if we have previously removed yours, or we previously banned you from any of our Services, unless we provide written consent otherwise.

&#x20;           (c) We may require you to provide additional information and documents regarding your use of the Services, including at the request of any competent authority or in case of application of any Applicable Law, including laws related to anti-money laundering or for counteracting financing of terrorism. We may also require you to provide additional information or documents in cases where we have reason to believe: (i) that your Wallet is being used for illegal money laundering or for any other illegal activity; or (ii) you have concealed or reported false identification information or other details.

5. Fees. Canopy may charge or pass through fees for some or part of the Services provided to you, including transaction or processing fees, blockchain gas or similar network fees. We will disclose the amount of fees we will charge or pass through to you for the applicable product or service at the time you access, use, or otherwise transact with the Services. Although we will attempt to provide accurate fee information, any such information reflects our estimate of fees, which may vary from the fees actually paid to use the Services and interact with the Network. Additionally, your external Wallet provider may impose a fee to transact on the Services. We are not responsible for any fees charged by a third party. All transactions processed through the Services are non-refundable. You will be responsible for paying any and all taxes, duties, and assessments associated with your use of the Services. In certain cases, your transactions through the Services may not be successful due to an error with the Network or the Wallet. We accept no responsibility or liability to you for any such failed transactions, or any transaction or gas fees that may be incurred by you in connection with such failed transactions. You acknowledge and agree that all information you provide with respect to transactions on the Services, including without limitation credit card, bank account, PayPal or other payment information is accurate, current and complete, and you have the legal right to use such payment method.
6. Rewards.

&#x20;           (a) In connection with using the Services, you may earn certain rewards through the Network (“Rewards”). Canopy does not determine any Rewards and is not responsible for any Rewards.

&#x20;           (b) You further acknowledge and agree that Canopy may, in its sole discretion, convert the Rewards into any other form of currency, including without limitation other Digital Assets or fiat currency, in Canopy’s sole discretion prior to making such Rewards available to you. You acknowledge and agree that, to the extent Canopy converts the Rewards into any other form of currency, Canopy, in its sole discretion, shall determine the exchange rate when converting the Rewards.

&#x20;           (c) You expressly authorize Canopy to withhold from your Rewards an amount equal to all fees due and payable by you.\[HH4] \[BD5]&#x20;

7. Taxes. It is your responsibility to determine what, if any, taxes apply to your use of the Services, including without limitation your receipt of any Rewards, and to report and remit the correct tax to the appropriate tax authority. We are not responsible for determining whether taxes apply to your use of the Services, or for collecting, reporting, or remitting any taxes arising from such use. We encourage you to speak with your personal tax advisor regarding the tax implications of your use of the Services.
8. License Grant; Restrictions. Subject to your compliance with these Terms, Canopy grants to you a limited non-exclusive, non-transferable license, with no right to sublicense, to use the Services. Except as expressly permitted in these Terms, you may not (and may not allow a third party to): (a) copy, modify or create derivative works based on the Services; (b) distribute, transfer, sublicense, lease, lend or rent the Services to any third party; (c) reverse engineer, decompile or disassemble the Services (unless Applicable Law permits, despite this limitation); or (d) make the functionality of the Services available to multiple users through any means. You may not (i) use the Services in any manner that could damage, disable, overburden, or impair the servers and other resources of the Network; or (ii) interfere with any third party’s use of the Network. You may not attempt to gain unauthorized access to any aspect of the Services or to information for which you have not been granted access.\[HH6]&#x20;
9. General Prohibitions; Canopy’s Enforcement Rights. You agree not to do, and not to allow a third party to do, any of the following:

&#x20;           (a) Use, or allow a third party to use, the Services in a manner that: (i) infringes, misappropriates or violates a third party’s patent, copyright, trademark, trade secret, moral rights or other intellectual property rights, or rights of publicity or privacy; (ii) violates, or encourages any conduct that would violate, any Applicable Law or would give rise to civil liability; (iii) is fraudulent, false, misleading or deceptive; (iv) is defamatory, obscene, pornographic, vulgar or offensive; (v) promotes discrimination, bigotry, racism, hatred, harassment or harm against any individual or group; (vi) is violent or threatening or promotes violence or actions that are threatening to any person or entity; or (vii) promotes illegal or harmful activities or substances;

&#x20;           (b) Use VPN software or any other privacy or anonymization tools or techniques or other means to circumvent, or attempt to circumvent, any restrictions that apply to the Services;

&#x20;           (c) Use, display, mirror or frame the Services or any individual element within the Services, Canopy’s name, any Canopy trademark, logo or other proprietary information, or the layout and design of any page or form contained on a page, without Canopy’s express written consent;

&#x20;           (d) Access, tamper with, or use non-public areas of the Services, Canopy’s computer systems, or the technical delivery systems of Canopy’s providers;

&#x20;           (e) Attempt to probe, scan or test the vulnerability of any Canopy system or network or breach any security or authentication measures;

&#x20;           (f) Avoid, bypass, remove, deactivate, impair, descramble or otherwise circumvent any technological measure implemented by Canopy or any of Canopy’s providers or any other third party (including another user) to protect the Services;

&#x20;           (g) Attempt to access or search the Services or download content from the Services using any engine, software, tool, agent, device or mechanism (including spiders, robots, crawlers, data mining tools or the like) other than the software and/or search agents provided by Canopy or other generally available third-party web browsers;

&#x20;           (h) Send any unsolicited or unauthorized advertising, promotional materials, email, junk mail, spam, chain letters or other form of solicitation;

&#x20;           (i) Use any meta tags or other hidden text or metadata utilizing a Canopy trademark, logo, URL or product name without Canopy’s express written consent;

&#x20;           (j) Use the Services, or any portion thereof, for any commercial purpose or for the benefit of any third party or in any manner not permitted by these Terms;

&#x20;           (k) Forge any TCP/IP packet header or any part of the header information in any email or newsgroup posting, or in any way use the Services to send altered, deceptive or false source-identifying information;

&#x20;           (l) Attempt to decipher, decompile, disassemble or reverse engineer any of the software used to provide the Services (unless Applicable Law permits, despite this limitation);

&#x20;           (m) Interfere with, or attempt to interfere with, the access of any user, host or network, including without limitation sending a virus, overloading, flooding, spamming, or mail-bombing the Services;

&#x20;           (n) Use the Services in order to (i) conceal or disguise the origin or nature of proceeds of crime or terrorist financing; (ii) further any breach of Applicable Law; or (iii) deal in any unlawful property, funds or proceeds;

&#x20;           (o) offer, promise, give, permit or authorize any payment or anything else of value, including without limitation any Digital Asset, to a government official or individual employed by another entity in the private sector in violation of any Applicable Law;

&#x20;           (p) Collect or store any personally identifiable information from the Services from other users of the Services without their express permission;

&#x20;           (q) Impersonate or misrepresent your affiliation with any person or entity;

&#x20;           (r) Violate any Applicable Law; or

&#x20;           (s) Encourage or enable any other individual to do any of the foregoing.

Canopy is not obligated to monitor access to or use of the Services or to review or edit any content. However, we have the right to do so for the purpose of operating the Services, to ensure compliance with these Terms and to comply with Applicable Law. We reserve the right, but are not obligated, to remove or disable access to any content at any time and without notice, including without limitation if we, at our sole discretion, consider it objectionable or in violation of these Terms. We have the right to investigate violations of these Terms or conduct that affects the Services. We may also consult and cooperate with law enforcement authorities to prosecute users who violate the law.

10. Ownership; Content.

&#x20;           (a) *Ownership of the Services.* The Services, including their “look and feel” (e.g., text, graphics, images, logos), proprietary content, information, and other materials, are protected under copyright, trademark, and other intellectual property laws. You agree that Canopy and/or its licensors own all right, title, and interest in and to the Services (including any and all intellectual property rights therein), and you agree not to take any action(s) inconsistent with such ownership interests. We and our licensors reserve all rights in connection with the Services and their content, including without limitation the exclusive right to create derivative works.

&#x20;           (b) *Ownership of Trademarks.* Canopy’s name, trademarks, and logos and all related names, logos, product and service names, designs, and slogans are trademarks of Canopy or its affiliates or licensors. Other names, logos, product and service names, designs, and slogans that appear on the Services are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by us.

&#x20;           (c) *Feedback.* We appreciate feedback, comments, ideas, proposals and suggestions for improvements to the Services (“Feedback”). If you choose to submit Feedback, you agree that we are free to use it without any restriction or compensation to you.

&#x20;           (d) *Your Content License Grant.* In connection with your use of the Services, you may be able to post, upload, or submit content to be made available through the Services (“Your Content”). In order to operate the Services, we must obtain from you certain license rights in Your Content so that actions we take in operating the Services are not considered legal violations. Accordingly, by using the Services and uploading Your Content, you grant us a license to access, use, host, cache, store, reproduce, transmit, display, publish, distribute, and modify (for technical purposes) Your Content but solely as required to be able to operate, improve and provide the Services. You agree that these rights and licenses are royalty-free, transferable, sublicensable, worldwide, and irrevocable (for so long as Your Content is stored with us), and include a right for us to make Your Content available to, and pass these rights along to, others with whom we have contractual relationships related to the provision of the Services, solely for the purpose of providing such Services, and to otherwise permit access to or disclose Your Content to third parties if we determine such access is necessary to comply with our legal obligations. To the fullest extent permitted by Applicable Law, Canopy reserves the right, and has absolute discretion, to remove, screen, edit, or delete any of Your Content at any time, for any reason, and without notice. By posting or submitting Your Content through the Services, you represent and warrant that you have all rights, licenses, consents, permissions, power, and/or authority necessary to grant the rights granted herein for Your Content. You agree that Your Content will not contain material subject to copyright or other proprietary rights, unless you have the necessary permission or are otherwise legally entitled to post the material and to grant us the license described above.

11. Third-Party Services. The Services may allow you to use third-party services (“Third-Party Services”) and may display, include or make available content, data, information, applications or materials from third parties, including Third-Party Tools (collectively, “Third-Party Materials”) or provide links to certain third-party websites. Canopy does not endorse any Third-Party Materials or the use of any provider of any Third-Party Services. You agree that your access and use of such Third-Party Services and Third-Party Materials are governed solely by the terms and conditions of such Third-Party Services and Third-Party Materials, as applicable. Canopy is not responsible or liable for, and make no representations as to any aspect of such Third-Party Materials and Third-Party Services, including without limitation their content or the manner in which they handle, protect, manage or process data or any interaction between you and the provider of such Third-Party Services. Canopy is not responsible for examining or evaluating the content, accuracy, completeness, availability, timeliness, validity, copyright compliance, legality, decency, quality or any other aspect of such Third-Party Services, Third-Party Materials or third-party websites. You irrevocably waive any claim against Canopy with respect to such Third-Party Services, Third-Party Materials and any third-party websites. We are not liable for any damage or loss caused or alleged to be caused by or in connection with your enablement, access or use of any such Third-Party Services, Third-Party Materials or third-party websites, or your reliance on the privacy practices, data security processes or other policies of the applicable third-party providers. Third-Party Services, Third-Party Materials, and links to third-party websites are provided solely as a convenience to you.
12. Termination. We may suspend or terminate your Account and/or access to and use of the Services, at our sole discretion, at any time and without notice to you. Provisions that, by their nature, should survive termination of these Terms shall survive termination, including without limitation any obligation you have to pay us or indemnify us, any limitations on our liability, any disclaimers, any terms regarding ownership or intellectual property rights, and terms regarding disputes between us.
13. Disclaimers. Your access to and use of the Services are at your own risk. You understand and agree that the Services are provided to you on an “AS IS” and “AS AVAILABLE” basis. Without limiting the foregoing, to the maximum extent permitted under Applicable Law, Canopy, its parents, affiliates, related companies, officers, directors, employees, agents, representatives, partners and licensors (the “Canopy Entities”) DISCLAIM ALL WARRANTIES AND CONDITIONS, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY WARRANTIES RELATING TO TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, USAGE, QUALITY, PERFORMANCE, SUITABILITY OR FITNESS OF THE SERVICES FOR ANY PARTICULAR PURPOSE, OR AS TO THE ACCURACY, QUALITY, SEQUENCE, RELIABILITY, WORKMANSHIP OR TECHNICAL CODING THEREOF, OR THE ABSENCE OF ANY DEFECTS THEREIN WHETHER LATENT OR PATENT. The Canopy Entities make no warranty or representation and disclaim all responsibility and liability for (a) the completeness, accuracy, availability, timeliness, security or reliability of the Services; (b) any harm to your computer system, loss of data, or other harm that results from your access to or use of the Services; (c) the operation or compatibility with any other application or any particular system or device, including any Wallets; (d) whether the Services will meet your requirements or be available on an uninterrupted, secure or error-free basis; and (e) the deletion of, or the failure to store or transmit, Your Content and other communications maintained by the Services. No advice or information, whether oral or written, obtained from the Canopy Entities or through the Services will create any warranty or representation not expressly made herein. You should not rely on the Services for advice of any kind, including legal, tax, investment, financial or other professional advice.

YOU ACKNOWLEDGE AND AGREE THAT CANOPY MAKES NO REPRESENTATIONS OR WARRANTIES REGARDING THE POTENTIAL REWARDS YOU MAY OWN.

14. Indemnification. By entering into these Terms and accessing or using the Services, you agree that you shall indemnify, defend, and hold harmless the Canopy Entities from and against any and all claims, costs, damages, losses, liabilities and expenses (including attorneys’ fees and costs) incurred by the Canopy Entities arising out of or in connection with (a) your violation or breach of these Terms or any Applicable Law; (b) your violation of any rights of any third party; (c) your misuse of the Services; (d) your negligence or willful misconduct; (e) any dispute you may have with a third party; or (f) Your Content.
15. Limitation of Liability. TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, YOU AGREE THAT IN NO EVENT WILL THE CANOPY ENTITIES BE LIABLE (A) FOR DAMAGES OF ANY KIND, INCLUDING DIRECT, INDIRECT, SPECIAL, EXEMPLARY, INCIDENTAL, CONSEQUENTIAL OR PUNITIVE DAMAGES (INCLUDING WITHOUT LIMITATION PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF USE, DATA OR PROFITS, BUSINESS INTERRUPTION OR ANY OTHER DAMAGES OR LOSSES, ARISING OUT OF OR RELATED TO YOUR USE OR INABILITY TO USE THE SERVICES), HOWEVER CAUSED AND UNDER ANY THEORY OF LIABILITY, WHETHER UNDER THESE TERMS OR OTHERWISE ARISING IN ANY WAY IN CONNECTION WITH THE SERVICES OR THESE TERMS AND WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) EVEN IF THE CANOPY ENTITIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE, OR (B) FOR ANY OTHER CLAIM, DEMAND OR DAMAGES WHATSOEVER RESULTING FROM OR ARISING OUT OF OR IN CONNECTION WITH THESE TERMS OR THE DELIVERY, USE OR PERFORMANCE OF THE SERVICES. THE CANOPY ENTITIES’ TOTAL LIABILITY TO YOU FOR ANY DAMAGES SHALL NOT EXCEED ONE HUNDRED DOLLARS ($100.00). SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE EXCLUSION OR LIMITATION MAY NOT APPLY TO YOU.

16\. Assumptions of Risk.

&#x20;           (a) By using the Services, you represent and warrant that you have sufficient knowledge and experience in business and financial matters, including a sufficient understanding of blockchain technologies, Digital Assets, storage mechanisms (such as Wallets), and blockchain-based software systems to be able to assess and evaluate the risks and benefits of the Services contemplated hereunder, and will bear the risks thereof, including loss of all amounts paid, and the risk that the Digital Assets may have little or no value. You acknowledge and agree that there are risks associated with purchasing and holding Digital Assets, using blockchain technology and staking or restaking Digital Assets. These include, but are not limited to, risk of losing access to Digital Assets due to slashing, loss of private key(s), custodial error or purchaser error, risk of mining or blockchain attacks, risk of hacking and security weaknesses, risk of unfavorable regulatory intervention in one or more jurisdictions, risk related to token taxation, risk of personal information disclosure, risk of uninsured losses, volatility risks, and unanticipated risks. You acknowledge that Digital Assets are neither (i) deposits of or guaranteed by a bank nor (ii) insured by the FDIC or by any other governmental agency of any jurisdiction.

&#x20;           (b) The regulatory regime governing blockchain technologies and Digital Assets is uncertain, and new laws, regulations or policies may materially adversely affect the potential utility or value of such Digital Assets. There also exists the risks of new taxation of the purchase or sale of Digital Assets.

&#x20;           (c) We cannot control how third-party exchange platforms quote or value Digital Assets and we expressly deny and disclaim any liability to you and deny any obligations to indemnify you or hold you harmless for any losses you may incur as a result of fluctuations in the value of Digital Assets.

&#x20;           (d) Smart contracts execute automatically when certain conditions are met. Since smart contracts typically cannot be stopped or reversed, vulnerabilities in their programming and design or other vulnerabilities that may arise due to hacking or other security incidents can have adverse effects to staked or restaked assets, including but not limited to significant volatility and risk of loss.

&#x20;           (e) Certain protocols and networks subject staked assets to slashing upon certain conditions, including without limitation if a validator engages in harmful or suspicious behavior or incorrectly validates a transaction, and we expressly deny and disclaim any liability to you and deny any obligations to indemnify you or hold you harmless for any losses you may incur as a result of slashing.

&#x20;           (f) Certain protocols and networks require that a certain amount of staked assets be locked for a certain period of time while staking, and withdrawal of staked assets may be delayed. We do not guarantee the security or functionality of any third-party protocol, software or technology intended to be compatible with restaked assets.

17. Governing Law; Forum Choice. These Terms and any action related thereto will be governed by the laws of the British Virgin Islands, without regard to its conflict of laws provisions. Except as otherwise expressly set forth in the “Dispute Resolution” section, the exclusive jurisdiction for all Disputes (defined below) that you and Canopy are not required to arbitrate will be the courts located in the British Virgin Islands, and you and Canopy each waive any objection to jurisdiction and venue in such courts.
18. Dispute Resolution. THIS SECTION INCLUDES AN ARBITRATION AGREEMENT AND AN AGREEMENT THAT ALL CLAIMS WILL BE BROUGHT ONLY IN AN INDIVIDUAL CAPACITY (AND NOT AS A CLASS ACTION OR OTHER REPRESENTATIVE PROCEEDING). PLEASE READ IT CAREFULLY.

&#x20;           (a) *Informal Process.* You and Canopy agree that in the event of any dispute between you and Canopy, including any dispute arising out of or in connection with these Terms or the Services or relating in any way to the communications between you and Canopy or any other user of the Services (“Dispute”), either party will first contact the other party in a writing that specifically references this section and which describes the Dispute and its position in relation to it in sufficient details for the other party to engage in meaningful discussions about the Dispute (“Dispute Notice”). For a period of no less than 30 days after receipt of the Dispute Notice, or such longer period as the parties may agree in writing, each party shall make a good faith and sustained effort to resolve the Dispute before resorting to more formal means of resolution.

&#x20;           (b) *Arbitration Agreement.* After the informal dispute resolution process, any remaining Dispute shall be referred to and finally resolved by confidential, binding arbitration to be seated in the British Virgin Islands and conducted in the English language by a single arbitrator pursuant to the International Arbitration Rules (the “Rules”) of the International Centre for Dispute Resolution (the “ICDR”) for the time being in force, which Rules are deemed to be incorporated by reference herein. You and Canopy shall endeavor to agree upon the arbitrator, and if you and Canopy fail to do so within 21 days of the commencement of the arbitration, the appointment shall be made by ICDR in accordance with the Rules. This mandatory arbitration agreement applies to you and to Canopy. However, this arbitration agreement does not (a) govern any Dispute initiated by Canopy for infringement of its intellectual property, or (b) bar you from making use of applicable small claims court procedures in appropriate cases. If you wish to begin an arbitration proceeding, after following the informal dispute resolution procedure, you must send an email requesting arbitration and describing your claim to <operations@canopyhub.xyz>.

&#x20;           (c) *Arbitration Procedure and Rules.* The arbitration will be administered by the ICDR under the Rules by a sole arbitrator. You can access the Rules at <https://www.icdr.org/rules_forms_fees>. Each party shall bear its own filing and administrative fees in the first instance. Canopy will reimburse those fees for claims where the amount in dispute is less than $10,000, unless the arbitrator determines the claims are frivolous, and we will not seek attorneys’ fees and costs in arbitration unless the arbitrator determines the claims are frivolous. The arbitrator, and not any court, will have exclusive authority to resolve any dispute relating to the interpretation, applicability, unconscionability, arbitrability, enforceability or formation of this arbitration agreement, including any claim that all or any part of this arbitration agreement is void or voidable. However, the preceding sentence will not apply to the “Class Action Waiver” section below.

&#x20;           (d) *Class Action Waiver.* Any claim must be brought in the respective party’s individual capacity, and not as a plaintiff or class member in any purported class, collective, representative, multiple plaintiff or similar proceeding (“Class Action”). The parties expressly waive any ability to maintain any Class Action in any forum. If the claim is subject to arbitration, the arbitrator will not have authority to combine or aggregate similar claims or conduct any Class Action nor make an award to any person or entity not a party to the arbitration. Any claim that all or part of this Class Action waiver is unenforceable, unconscionable, void or voidable may be determined only by a court of competent jurisdiction and not by an arbitrator. The parties understand that any right to litigate in court, to have a judge or jury decide their case or to be a party to a class or representative action is waived, and that any claims must be decided individually through arbitration.

&#x20;           (e) *Waiver of Jury Trial.* If, for any reason, a claim proceeds in court rather than in arbitration, you and Canopy each waive any right to a jury trial.

19. Use of the Services in Your Jurisdiction. Canopy makes no representations or warranties that use of the Services is appropriate for use in any jurisdictions. You use the Services at your own risk and are responsible for compliance with Applicable Law.
20. General Terms.

&#x20;           (a) *Reservation of Rights.* Canopy and its licensors exclusively own all right, title and interest in and to the Services, including all associated intellectual property rights. You acknowledge that the Services are protected by copyright, trademark, and other Applicable Law. You agree not to remove, alter or obscure any copyright, trademark, service mark or other proprietary rights notices incorporated in or accompanying the Services.

&#x20;           (b) *Entire Agreement.* These Terms constitute the entire and exclusive understanding and agreement between Canopy and you regarding the Services, and these Terms supersede and replace all prior oral or written understandings or agreements between Canopy and you regarding the Services.

&#x20;           (c) *Severability.* If any provision of these Terms is held invalid or unenforceable by an arbitrator or a court of competent jurisdiction, that provision will be enforced to the maximum extent permissible and the other provisions of these Terms will remain in full force and effect.

&#x20;           (d) *Assignment.* You may not assign or transfer these Terms, by operation of law or otherwise, without Canopy’s prior written consent. Any attempt by you to assign or transfer these Terms, without such consent, will be null. Canopy may freely assign or transfer these Terms without restriction. Subject to the foregoing, these Terms will bind and inure to the benefit of the parties, their successors and permitted assigns.

&#x20;           (e) *Notices.* Any notices or other communications provided by Canopy under these Terms will be given by posting to the Services or App or by email. For notices made by email, the date of receipt will be deemed the date on which such notice is transmitted.

&#x20;           (f) *Injunctive Relief.* You acknowledge that a breach of these Terms could cause irreparable harm to Canopy, and in such cases, we may seek injunctive relief in addition to other remedies available under these Terms or at law.

&#x20;           (g) *Force Majeure.* We will not be liable for any failure or delay in fulfilling our obligations under these Terms due to events beyond our control, including but not limited to natural disasters, wars, government actions, and industrial disturbances.

&#x20;           (h) *Waiver of Rights.* Canopy’s failure to enforce any right or provision of these Terms will not be considered a waiver of such right or provision. The waiver of any such right or provision will be effective only if in writing and signed by a duly authorized representative of Canopy. Except as expressly set forth in these Terms, the exercise by either party of any of its remedies under these Terms will be without prejudice to its other remedies under these Terms or otherwise.

21. Contact Information. If you have any questions about these Terms or the Services, please contact Canopy at <operations@canopyhub.xyz>.

***


# Canopy Smart Contracts

Below are the core contract addresses for Canopy's infrastructure.

### Canopy Core Vaults

**Address:** [0xb10bd32b3979c9d04272c769d9ef52afbc6edc4bf03982a9e326b96ac25e7f2d](https://explorer.movementlabs.xyz/object/0xb10bd32b3979c9d04272c769d9ef52afbc6edc4bf03982a9e326b96ac25e7f2d?network=mainnet)

### Canopy Core Router

**Address:** [0x717b417949cd5bfa6dc02822eacb727d820de2741f6ea90bf16be6c0ed46ff4b](https://explorer.movementlabs.xyz/object/0x717b417949cd5bfa6dc02822eacb727d820de2741f6ea90bf16be6c0ed46ff4b?network=mainnet)

### Canopy Liquidswap Vaults

**Address:** [0x5cd341a0cd4c2fb8d9e342814c00d7b388ad7579365d657ebb5b18e35c3c761b](https://explorer.movementlabs.xyz/account/0x5cd341a0cd4c2fb8d9e342814c00d7b388ad7579365d657ebb5b18e35c3c761b?network=mainnet)

### Canopy Rewards

**Address:** [0x113a1769acc5ce21b5ece6f9533eef6dd34c758911fa5235124c87ff1298633b](https://explorer.movementlabs.xyz/object/0x113a1769acc5ce21b5ece6f9533eef6dd34c758911fa5235124c87ff1298633b?network=mainnet)


# Fee Structure

Canopy’s fee system is designed for adaptability and long-term alignment between protocol success and community participation.

### Overview

Canopy’s fee system consists of two major types:

1. **Performance Fees** – Success-based fees taken on strategy profits.
2. **Management Fees** – Time-based fees applied to assets under management (AUM).

| Strategy Name                    | Management Fee | Performance Fee |
| -------------------------------- | -------------- | --------------- |
| MOVE Simple Lending Echelon      | 1.5%           | 0%              |
| MOVE Simple Lending Layerbank    | 1.5%           | 0%              |
| MOVE Simple Lending Moveposition | 1.5%           | 0%              |
| MER USDC-USDe                    | 1.5%           | 0%              |
| MER USDC-sUSDe                   | 1.5%           | 0%              |
| MER USDC.e-USDT.e                | 1.5%           | 0%              |
| MER LBTC-WBTC                    | 1.5%           | 0%              |
| MER rsETH-wETH                   | 1.5%           | 0%              |
| MER solvBTC-WBTC                 | 1.5%           | 0%              |
| LBTC Simple Lending              | 1.5%           | 0%              |
| ezETH Simple Lending Echelon     | 1.5%           | 0%              |
| solvBTC Simple Lending Echelon   | 1.5%           | 0%              |
| MER wETH-ezETH Metastable        | 1.5%           | 0%              |
| rsETH Simple Lending             | 1.5%           | 0%              |

* Not all vaults are listed here. Please click into the specific vault to see the fees.


# FAQ

Common questions and answers about fees on the platform, including how fees are calculated and when they’re charged.

#### Why is Canopy updating its fee structure?

Canopy is transitioning from a performance-based fee model to a fixed 1.5% annual management fee to ensure sustainable development of new yield strategies and maintain platform security and reliability at scale. This change helps us cultivate a more predictable revenue stream to support our growing ecosystem.

#### When does the new fee structure take effect?

The new 1.5% annual management fee structure is effective immediately across all Canopy vaults and strategies.

#### How will the new fees impact my current yields?

The 1.5% annual management fee is designed to have minimal impact on your net yields. For perspective, this translates to approximately 0.125% per month, which is significantly lower than the potential variation in underlying DeFi yields.kk

### Fee Implementation

#### How exactly is the management fee calculated?

The management fee is calculated as 1.5% of assets under management annually. This translates to approximately 0.004% per day, applied continuously to your deposited assets.

#### Are the fees transparently visible on-chain?

Yes, all management fees are applied on-chain and fully transparent. You can verify the fee applications through Movement blockchain explorers when reviewing your vault transactions.

### Strategy-Specific Questions

#### Do all strategies have the same fee structure?

Yes, we've standardized the fee structure across all strategies to a consistent 1.5% annual management fee with 0% performance fee, regardless of the strategy type or underlying protocols.

#### What happened to the performance fees that were previously charged?

We've eliminated all performance fees in favor of the simplified management fee structure. This means you'll no longer see variable fee rates based on your strategy's performance.

### General Questions

#### How does Canopy's fee structure compare to other DeFi platforms?

Canopy's 1.5% annual management fee is competitive within the DeFi ecosystem, particularly when considering the simplicity and transparency of our fee structure compared to more complex models that may include both management and performance fees.

#### How will the collected fees be used?

Fees collected will fuel the development of new yield strategies, enhance platform security, and ensure reliable operation at scale. This sustainable revenue model allows us to continually improve the Canopy ecosystem and expand the opportunities available to our users.

#### Can I expect the fee structure to change again in the future?

While we aim for consistency, Canopy  may review and adjust fee structures to ensure the long-term sustainability of the platform. Any future changes would be announced and implemented with transparency.

<br>


# Canopy Points Program

The **Canopy Points Program** is an initiative that recognizes users who contribute to Canopy's growth by depositing into select vaults. Points are awarded based on how much, where, and for how long users deposit. These points will serve as a record of early contribution.

***

### Earning Points

Points are only earned through deposits into selected vaults. Eligible vaults in the Canopy UI.

**Categories:**

* **MOVE Vaults** – Highest multiplier
* **Stablecoin Vaults** – Medium multiplier
* **LST (Liquid Staking Token) Vaults** – Base multiplier

***

#### Base Point Rates

Users earn points based on the category of the vault and the size of their deposit. Points accrue **daily** per dollar deposited.

| Vault Category    | Multiplier | Daily Points per $1 |
| ----------------- | ---------- | ------------------- |
| MOVE Vaults       | 8×         | 8 pts               |
| Stablecoin Vaults | 4×         | 4 pts               |
| LST Vaults        | 2×         | 2 pts               |

***


