Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.meteora.ag/llms.txt

Use this file to discover all available pages before exploring further.

This page summarizes the on-chain constraints that matter for integrators and operators. It focuses on what the deployed vault program enforces.

Main Accounts

AccountImportant fields
Vaultenabled, total_amount, token_vault, fee_vault, token_mint, lp_mint, strategies, base, admin, operator, locked_profit_tracker.
Strategyreserve, collateral_vault, strategy_type, current_liquidity, bumps, vault, is_disable.
LockedProfitTrackerlast_updated_locked_profit, last_report, locked_profit_degradation.

Program Addresses

ValueAddress
Mainnet program24Uqj9JCLxUeoC3hGfh5W3s9FM9uCHDS2SG3LYwBpyTi
Treasury owner9kZeN47U2dubGbbzMrzzoRAUvpuxVLRcjW9XiFpYjUo4
Rebalance vault baseHWzXGcGHy4tcpYfaRDCyLNzXqBTv3E6BttpCH2vJxArv
Production initial admin/operatorDHLXnJdACTY83yKwnUkeoDjqi4QBbsYGa1v8tJL76ViX
Vault PDAs are derived from the token mint and vault base. In practice this means one rebalance vault PDA and one idle vault PDA per token mint for this program.
On non-test builds, the initializer payer can be anyone, but new vaults initialize admin and operator to the fixed production admin address above. Rebalance vault admin can later transfer admin or set a different operator.

Roles

RoleWhat it can do
UserDeposit into enabled vaults, withdraw by burning LP tokens, and use the strategy-backed withdrawal path when the required accounts are provided.
AdminManage rebalance vault settings: enable or disable deposits, set operator, transfer admin, set fee vault, update locked-profit degradation, initialize/add/remove strategies, and submit strategy actions.
OperatorSubmit deposit_strategy, withdraw_strategy, and claim_rewards for rebalance vaults. The admin can also submit these actions.
Treasury ownerMust own the configured fee vault and reward token accounts used by reward claims.
The program’s enabled flag gates deposits only. It does not block withdrawals.

Permissioned Instructions

InstructionPermission and constraints
enable_vaultAdmin only, rebalance vault only.
set_operatorAdmin only, rebalance vault only.
transfer_adminCurrent admin and new admin sign; rebalance vault only.
transfer_fee_vaultAdmin only; new fee vault must be for the vault LP mint and owned by the treasury address.
update_locked_profit_degradationAdmin only; value must be greater than 0 and less than or equal to 1,000,000,000,000.
initialize_strategyAdmin only; rebalance vault only; fee vault must already be set.
add_strategyAdmin only; strategy must belong to the vault and must not be disabled.
remove_strategyAdmin only; withdraws all strategy collateral and requires remaining strategy liquidity to be at most 1 unit.
remove_strategy2Admin only; supports advance payment with max_admin_pay_amount and permanently disables the strategy.
deposit_strategy / withdraw_strategyAdmin or operator; rebalance vault only; strategy must be listed on the vault.
claim_rewardsAdmin or operator; rebalance vault only; strategy must be listed; reward account must be treasury-owned.

Strategy Limits

LimitValue
Maximum strategies per vault30
Maximum bump values stored per strategy10
Supported external strategy handler in current sourceJupLend
JupLend deposit precision toleranceAt most 100 smallest units between requested deposit and calculated deposited liquidity.
Strategy-backed withdrawal precision lossAt most 1 smallest unit.
The StrategyType enum still includes several legacy variants, but the handler dispatch for those variants panics as unsupported. Documentation should not describe those variants as active integrations unless the deployed program is updated. For JupLend, the reserve mint must match the vault token mint, the collateral mint must match the lending reserve’s f-token mint, and the remaining accounts must satisfy Jupiter Lend’s deposit or withdrawal account requirements. Jupiter Lend rewards are automatically reflected in the collateral token, so the current JupLend claim_rewards handler does not transfer a separate reward token.

Token Support

Vault initialization, deposits, withdrawals, LP minting, and most token accounts use anchor_spl::token, the SPL Token program interface. The vault program does not include a general Token-2022 transfer-hook or transfer-fee handling path for user deposits and withdrawals.
Treat Dynamic Vault as SPL Token based unless a specific deployed vault and integration has been separately verified. Do not assume Token-2022 extension support from this program.

Rebalance Vault vs Idle Vault

Rebalance vaults use Meteora’s configured base address and can interact with strategy instructions. Idle vaults use the default base address and are constrained out of rebalance-only instructions.
CapabilityRebalance vaultIdle vault
User deposit and withdrawYesYes
Enable or disable depositsYesNo
Set operatorYesNo
Transfer adminYesNo
Transfer fee vaultYesNo
Initialize or add strategyYesNo
Strategy deposit or withdrawalYesNo
Claim strategy rewardsYesNo

Important Edge Cases

  • Deposits with token_amount = 0 fail.
  • Deposits fail when enabled = 0; withdrawals do not.
  • Slippage is enforced with minimum_lp_token_amount on deposit and min_out_amount on withdrawal.
  • Strategy initialization fails if fee_vault is still the default public key.
  • A fee vault must be owned by the treasury address and must use the vault LP mint.
  • Reward claims must send rewards to a treasury-owned token account.
  • Losses from strategy actions reduce locked profit before new gain is added.
  • Strategy removal does not automatically claim rewards; comments in the source indicate rewards should be claimed separately when applicable.