Lineagei
Frameworki
What's Anchor?
Batteries-included Rust framework. Ships account-validation codegen, 8-byte instruction discriminators, and an on-chain IDL — the program describes itself.
Bigger binary and higher rent in exchange for safety rails, introspection, and dev speed. The choice of a team optimizing for correctness over on-chain footprint.
Originally Coral (Armani Ferrante); now community-maintained.
What it is
The de facto standard. Rust macros (#[program], #[derive(Accounts)]) eliminate boilerplate: it auto-generates 8-byte account and instruction discriminators — SHA256("account:<Name>")[..8] and SHA256("global:<ix>")[..8] — handles Borsh (de)serialization, enforces account constraints declaratively (mut, has_one, seeds, init), and emits a JSON IDL that client libraries consume directly. The cost: Borsh copies data on every deserialize (not zero-copy), and the macro machinery adds binary bloat and compute overhead — irrelevant for ~99% of programs.
When to pick it
Building a new protocol, moving fast, or wanting maximum ecosystem compatibility. It's the beginner default and stays the right call for most production programs.
How it looks on-chain
The most recognizable framework. Every account it owns begins with an 8-byte discriminator, and the IDL is often published on-chain at a PDA derived from the program id. Both are strong, reliable fingerprints — this is the only framework we can label with confidence.
Others in the wild: Steel (Ore team — near-native performance on solana-program), Seahorse (Python → Anchor), and Poseidon & Quasar (TypeScript → Rust). Transpilers inherit their lowering target's fingerprint: a Quasar or Poseidon program that compiles down to Anchor will look like Anchor on-chain — discriminators and all.
Anchor docsFootprinti
Recovered architecturei
Reachi
Controli
What's upgrade authority?
The upgrade authority is the account allowed to replace a program's code after it's deployed.
If it's set (mutable), that key can push new bytecode at any time — including malicious code, the classic "rug" vector. If it's null (immutable / frozen), the code can never change; what 's on-chain is final. A Squads multisig sits in between — upgrades are possible but need M-of-N signers, not one hot wallet. So mutable + single hot-wallet = highest risk; immutable or multisig = stronger guarantees.
What's a verified build?
A verified build proves the program running on-chain was compiled from the public source you can read — nothing hidden.
Someone re-compiles the source in a deterministic (Docker) environment and checks the resulting bytecode is byte-for-byte identical to what's deployed; tools like solana-verify do this and record it with a verification service. "Not verified" isn't a red flag by itself — most programs simply never submit one. It just means you're trusting the deployed bytecode as-is, with no source cross-check.
Convictioni
Interface — the on-chain IDLi
6 of 28 instructions used · 22 never called in this window
Instructions 28
accept_protocol_admin
- pending_adminsigner
- protocolwritable
accept_vault_admin
- pending_adminsigner
- vaultwritable
add_adaptor
- payersignerwritable
- adminsigner
- protocol
- vaultwritable
- adaptor_add_receiptwritable
- adaptor_program
- system_program
calibrate_high_water_mark
- adminsigner
- protocol
- vaultwritable
- vault_lp_mintwritable
- admin_lp_atawritable
- lp_token_program
calibrate_high_water_mark_unsafe
- adminsigner
- protocol
- vaultwritable
- vault_lp_mintwritable
cancel_request_withdraw_vault
- user_transfer_authoritysignerwritable
- protocol
- vaultwritable
- vault_lp_mintwritable
- user_lp_atawritable
- request_withdraw_lp_atawritable
- request_withdraw_vault_receiptwritable
- lp_token_program
- system_program
close_strategy
- payersignerwritable
- managersigner
- protocol
- vault
- strategy
- strategy_init_receiptwritable
- system_program
create_lp_metadata
- payersignerwritable
- adminsigner
- vault
- vault_lp_mint
- vault_lp_mint_auth
- metadata_accountwritable
- metadata_program
- rent
- system_program
- namestring
- symbolstring
- uristring
deposit_strategy
- managersigner
- protocol
- vaultwritable
- strategy
- adaptor_add_receipt
- strategy_init_receiptwritable
- vault_asset_idle_authwritable
- vault_strategy_authwritable
- vault_asset_mintwritable
- vault_lp_mint
- vault_asset_idle_atawritable
- vault_strategy_asset_atawritable
- asset_token_program
- adaptor_program
- amountu64
- instruction_discriminatorOption<bytes>
- additional_argsOption<bytes>
deposit_vault
- user_transfer_authoritysigner
- protocol
- vaultwritable
- vault_asset_mint
- vault_lp_mintwritable
- user_asset_atawritable
- vault_asset_idle_atawritable
- vault_asset_idle_auth
- user_lp_atawritable
- vault_lp_mint_auth
- asset_token_program
- lp_token_program
- system_program
- amountu64
direct_withdraw_strategy
- user_transfer_authoritysignerwritable
- protocol
- vaultwritable
- adaptor_add_receipt
- strategy_init_receiptwritable
- direct_withdraw_init_receipt
- strategy
- vault_asset_mintwritable
- vault_lp_mintwritable
- request_withdraw_lp_atawritable
- vault_strategy_authwritable
- user_asset_atawritable
- vault_strategy_asset_atawritable
- request_withdraw_vault_receiptwritable
- adaptor_program
- asset_token_program
- lp_token_program
- system_program
- user_argsOption<bytes>
direct_withdraw_strategy_with_tolerance
- user_transfer_authoritysignerwritable
- protocol
- vaultwritable
- adaptor_add_receipt
- strategy_init_receiptwritable
- direct_withdraw_init_receipt
- strategy
- vault_asset_mintwritable
- vault_lp_mintwritable
- request_withdraw_lp_atawritable
- vault_strategy_authwritable
- user_asset_atawritable
- vault_strategy_asset_atawritable
- request_withdraw_vault_receiptwritable
- adaptor_program
- asset_token_program
- lp_token_program
- system_program
- user_argsOption<bytes>
- toleranceu64
harvest_fee
- harvestersigner
- vault_manager
- vault_admin
- protocol_treasury
- protocol
- vaultwritable
- vault_lp_mintwritable
- vault_lp_mint_auth
- vault_manager_lp_atawritable
- vault_admin_lp_atawritable
- protocol_treasury_lp_atawritable
- lp_token_program
init_protocol
- payersignerwritable
- adminsigner
- protocolwritable
- system_program
- treasurypubkey
- operational_stateu16
initialize_direct_withdraw_strategy
- payersignerwritable
- adminsigner
- protocol
- vaultwritable
- strategy
- strategy_init_receiptwritable
- adaptor_add_receipt
- direct_withdraw_init_receiptwritable
- adaptor_program
- system_program
- instruction_discriminatorOption<bytes>
- additional_argsOption<bytes>
- allow_user_argsbool
initialize_strategy
- payersignerwritable
- managersigner
- protocol
- vault
- strategy
- adaptor_add_receipt
- strategy_init_receiptwritable
- vault_strategy_authwritable
- adaptor_program
- system_program
- instruction_discriminatorOption<bytes>
- additional_argsOption<bytes>
initialize_vault
- payersignerwritable
- manager
- admin
- protocol
- vaultsignerwritable
- vault_lp_mintwritable
- vault_asset_mint
- vault_asset_idle_atawritable
- vault_lp_mint_auth
- vault_asset_idle_auth
- clock
- rent
- associated_token_program
- asset_token_program
- lp_token_program
- system_program
- configVaultInitializationInput
- namestring
- descriptionstring
instant_withdraw_strategy
- user_transfer_authoritysignerwritable
- protocol
- vaultwritable
- adaptor_add_receipt
- strategy_init_receiptwritable
- direct_withdraw_init_receipt
- strategy
- vault_asset_mintwritable
- vault_lp_mintwritable
- user_lp_atawritable
- vault_strategy_authwritable
- user_asset_atawritable
- vault_strategy_asset_atawritable
- adaptor_program
- asset_token_program
- lp_token_program
- system_program
- amountu64
- is_amount_in_lpbool
- is_withdraw_allbool
- user_argsOption<bytes>
instant_withdraw_strategy_with_tolerance
- user_transfer_authoritysignerwritable
- protocol
- vaultwritable
- adaptor_add_receipt
- strategy_init_receiptwritable
- direct_withdraw_init_receipt
- strategy
- vault_asset_mintwritable
- vault_lp_mintwritable
- user_lp_atawritable
- vault_strategy_authwritable
- user_asset_atawritable
- vault_strategy_asset_atawritable
- adaptor_program
- asset_token_program
- lp_token_program
- system_program
- amountu64
- is_amount_in_lpbool
- is_withdraw_allbool
- user_argsOption<bytes>
- toleranceu64
instant_withdraw_vault
- user_transfer_authoritysigner
- protocol
- vaultwritable
- vault_asset_mint
- vault_lp_mintwritable
- user_lp_atawritable
- vault_asset_idle_atawritable
- vault_asset_idle_authwritable
- user_asset_atawritable
- asset_token_program
- lp_token_program
- system_program
- amountu64
- is_amount_in_lpbool
- is_withdraw_allbool
remove_adaptor
- adminsignerwritable
- protocol
- vaultwritable
- adaptor_add_receiptwritable
- adaptor_program
- system_program
request_withdraw_vault
- payersignerwritable
- user_transfer_authoritysigner
- protocol
- vault
- vault_lp_mint
- user_lp_atawritable
- request_withdraw_lp_atawritable
- request_withdraw_vault_receiptwritable
- lp_token_program
- system_program
- amountu64
- is_amount_in_lpbool
- is_withdraw_allbool
update_protocol
- adminsigner
- protocolwritable
- fieldProtocolConfigField
- databytes
update_vault_adaptor_policy
- adminsigner
- protocol
- vaultwritable
- allow_any_adaptoru8
update_vault_config
- adminsigner
- protocol
- vaultwritable
- rent
- fieldVaultConfigField
- databytes
update_vault_protocol_fee
- adminsigner
- protocol
- vaultwritable
- vault_lp_mintwritable
- fieldProtocolFeeField
- fee_bpsu16
withdraw_strategy
- managersigner
- protocol
- vaultwritable
- adaptor_add_receipt
- strategy_init_receiptwritable
- strategy
- adaptor_program
- vault_asset_idle_authwritable
- vault_strategy_authwritable
- vault_asset_mintwritable
- vault_lp_mint
- vault_asset_idle_atawritable
- vault_strategy_asset_atawritable
- asset_token_program
- amountu64
- instruction_discriminatorOption<bytes>
- additional_argsOption<bytes>
withdraw_vault
- user_transfer_authoritysignerwritable
- protocol
- vaultwritable
- vault_asset_mint
- vault_lp_mintwritable
- request_withdraw_lp_atawritable
- vault_asset_idle_atawritable
- vault_asset_idle_authwritable
- user_asset_atawritable
- request_withdraw_vault_receiptwritable
- asset_token_program
- lp_token_program
- system_program
Accounts 6
AdaptorAddReceipt
no fields
DirectWithdrawInitReceipt
no fields
Protocol
no fields
RequestWithdrawVaultReceipt
no fields
StrategyInitReceipt
no fields
Vault
no fields
Types 44
AcceptProtocolAdminEventstruct
- protocolpubkey
- admin_beforepubkey
- admin_afterpubkey
- accepted_tsu64
AcceptVaultAdminEventstruct
- vaultpubkey
- admin_beforepubkey
- admin_afterpubkey
- accepted_tsu64
AdaptorAddReceiptstruct
- vaultpubkeyThe vault associated with this strategy.
- adaptor_programpubkeyThe adapter program address.
- versionu8A version number (1 byte).
- bumpu8The bump for the adaptor add receipt.
- _padding0[u8; 7]7 bytes of padding to align future 8-byte fields on 8-byte boundaries.
- last_updated_epochu64The epoch at which the strategy was last updated.
- _reserved[u8; 56]Reserved space for future fields
AddAdaptorEventstruct
- adminpubkey
- vaultpubkey
- adaptor_programpubkey
- adaptor_add_receiptpubkey
- adaptor_last_updated_tsu64
- added_tsu64
CalibrateHighWaterMarkEventstruct
- adminpubkey
- vaultpubkey
- vault_asset_total_valueu64
- vault_lp_supply_incl_fees_beforeu64
- vault_lp_supply_incl_fees_afteru64
- vault_highest_asset_per_lp_decimal_bits_beforeu128
- vault_highest_asset_per_lp_decimal_bits_afteru128
- amount_lp_burnedu64
- calibrated_tsu64
CalibrateHighWaterMarkUnsafeEventstruct
- adminpubkey
- vaultpubkey
- vault_asset_total_valueu64
- vault_lp_supply_incl_feesu64
- vault_highest_asset_per_lp_decimal_bits_beforeu128
- vault_highest_asset_per_lp_decimal_bits_afteru128
- calibrated_tsu64
CancelRequestWithdrawVaultEventstruct
- vaultpubkey
- userpubkey
- request_withdraw_vault_receiptpubkey
- amount_lp_refundedu64
- amount_lp_burnedu64
- vault_highest_asset_per_lp_decimal_bits_beforeu128
- vault_highest_asset_per_lp_decimal_bits_afteru128
- cancelled_tsu64
CloseStrategyEventstruct
- managerpubkey
- vaultpubkey
- strategypubkey
- strategy_init_receiptpubkey
- closed_tsu64
DepositStrategyEventstruct
- managerpubkey
- vaultpubkey
- strategypubkey
- strategy_init_receiptpubkey
- adaptor_programpubkey
- vault_asset_mintpubkey
- vault_amount_asset_depositedu64
- vault_asset_total_value_beforeu64
- vault_asset_total_value_afteru64
- vault_lp_supply_incl_fees_beforeu64
- vault_lp_supply_incl_fees_afteru64
- vault_highest_asset_per_lp_decimal_bits_beforeu128
- vault_highest_asset_per_lp_decimal_bits_afteru128
- vault_asset_idle_ata_amount_beforeu64
- vault_asset_idle_ata_amount_afteru64
- strategy_position_value_beforeu64
- strategy_position_value_afteru64
- deposited_tsu64
DepositVaultEventstruct
- userpubkey
- user_amount_asset_depositedu64
- user_amount_lp_mintedu64
- vaultpubkey
- vault_asset_mintpubkey
- vault_asset_total_value_beforeu64
- vault_asset_total_value_afteru64
- vault_lp_supply_incl_fees_beforeu64
- vault_lp_supply_incl_fees_afteru64
- vault_lp_total_accumulated_fees_beforeu64
- vault_lp_total_accumulated_fees_afteru64
- vault_lp_dead_weight_beforeu64
- vault_lp_dead_weight_afteru64
- vault_highest_asset_per_lp_decimal_bits_beforeu128
- vault_highest_asset_per_lp_decimal_bits_afteru128
- deposited_tsu64
DirectWithdrawInitReceiptstruct
- vaultpubkeyThe vault associated with this strategy.
- strategypubkeyThe strategy address.
- adaptor_programpubkeyThe position value.
- instruction_discriminatorbytesThe instruction discriminator.
- additional_argsOption<bytes>The additional arguments.
- allow_user_argsboolWhether the user args are allowed.
- versionu8A version number (1 byte).
- bumpu8The bump for the strategy init receipt.
DirectWithdrawStrategyEventstruct
- userpubkey
- user_amount_asset_withdrawnu64
- user_amount_lp_burnedu64
- vaultpubkey
- strategypubkey
- strategy_init_receiptpubkey
- direct_withdraw_init_receiptpubkey
- adaptor_programpubkey
- vault_asset_mintpubkey
- vault_asset_total_value_unlocked_beforeu64
- vault_asset_total_value_beforeu64
- vault_asset_total_value_afteru64
- vault_lp_supply_incl_fees_beforeu64
- vault_lp_supply_incl_fees_afteru64
- vault_lp_total_accumulated_fees_beforeu64
- vault_lp_total_accumulated_fees_afteru64
- vault_lp_dead_weight_beforeu64
- vault_lp_dead_weight_afteru64
- vault_highest_asset_per_lp_decimal_bits_beforeu128
- vault_highest_asset_per_lp_decimal_bits_afteru128
- strategy_position_value_beforeu64
- strategy_position_value_afteru64
- withdrawn_tsu64
FeeConfigurationstruct
- manager_performance_feeu16Manager performance fee in basis points (BPS).
- admin_performance_feeu16Admin performance fee in basis points (BPS).
- manager_management_feeu16Manager management fee in basis points (BPS).
- admin_management_feeu16Admin management fee in basis points (BPS).
- redemption_feeu16The redemption fee in basis points (BPS).
- issuance_feeu16The issuance fee in basis points (BPS).
- protocol_performance_feeu16Protocol performance fee in basis points (BPS).
- protocol_management_feeu16Protocol management fee in basis points (BPS).
- reserved[u8; 32]Reserved bytes for future use.
FeeStatestruct
- accumulated_lp_manager_feesu64The accumulated manager fees in the vault.
- accumulated_lp_admin_feesu64The accumulated admin fees in the vault.
- accumulated_lp_protocol_feesu64The accumulated protocol fees in the vault.
- reserved[u8; 16]Reserved bytes for future use.
FeeUpdatestruct
- last_performance_fee_update_tsu64The timestamp when the performance fees were last updated.
- last_management_fee_update_tsu64The timestamp when the management fees were last updated.
HarvestFeeEventstruct
- harvesterpubkey
- vaultpubkey
- protocolpubkey
- adminpubkey
- managerpubkey
- amount_lp_admin_feesu64
- amount_lp_manager_feesu64
- amount_lp_protocol_feesu64
HighWaterMarkstruct
- highest_asset_per_lp_decimal_bitsu128The highest recorded total asset value per share
- last_updated_tsu64The timestamp when the high water mark was last updated
- reserved[u8; 8]Reserved for future use
InitProtocolEventstruct
- adminpubkey
- treasurypubkey
- operational_stateu16
- initialized_tsu64
InitializeDirectWithdrawStrategyEventstruct
- adminpubkey
- vaultpubkey
- strategypubkey
- strategy_init_receiptpubkey
- adaptor_programpubkey
- instruction_discriminatorbytes
- additional_argsbytes
- allow_user_argsbool
- initialized_tsu64
InitializeStrategyEventstruct
- managerpubkey
- vaultpubkey
- vault_strategy_authpubkey
- strategypubkey
- strategy_init_receiptpubkey
- adaptor_programpubkey
- initialized_tsu64
- is_initializedbool
InitializeVaultEventstruct
- payerpubkey
- vaultpubkey
- vault_namestring
- vault_descriptionstring
- vault_asset_mintpubkey
- vault_asset_idle_atapubkey
- vault_lp_mintpubkey
- vault_managerpubkey
- vault_adminpubkey
- vault_config_max_capu64
- vault_config_start_at_tsu64
- vault_config_locked_profit_degradation_durationu64
- vault_config_withdrawal_waiting_periodu64
- vault_config_manager_performance_feeu16
- vault_config_admin_performance_feeu16
- vault_config_manager_management_feeu16
- vault_config_admin_management_feeu16
- vault_config_redemption_feeu16
- vault_config_issuance_feeu16
- initialized_tsu64
InstantWithdrawStrategyEventstruct
- userpubkey
- amountu64
- is_amount_in_lpbool
- is_withdraw_allbool
- user_amount_asset_withdrawnu64
- user_amount_lp_burnedu64
- vaultpubkey
- strategypubkey
- strategy_init_receiptpubkey
- direct_withdraw_init_receiptpubkey
- adaptor_programpubkey
- vault_asset_mintpubkey
- vault_asset_total_value_unlocked_beforeu64
- vault_asset_total_value_beforeu64
- vault_asset_total_value_afteru64
- vault_lp_supply_incl_fees_beforeu64
- vault_lp_supply_incl_fees_afteru64
- vault_lp_total_accumulated_fees_beforeu64
- vault_lp_total_accumulated_fees_afteru64
- vault_lp_dead_weight_beforeu64
- vault_lp_dead_weight_afteru64
- vault_highest_asset_per_lp_decimal_bits_beforeu128
- vault_highest_asset_per_lp_decimal_bits_afteru128
- strategy_position_value_beforeu64
- strategy_position_value_afteru64
- withdrawn_tsu64
InstantWithdrawVaultEventstruct
- userpubkey
- amountu64
- is_amount_in_lpbool
- is_withdraw_allbool
- user_amount_asset_withdrawnu64
- user_amount_lp_burnedu64
- vaultpubkey
- vault_asset_mintpubkey
- vault_asset_total_value_unlocked_beforeu64
- vault_asset_total_value_beforeu64
- vault_asset_total_value_afteru64
- vault_lp_supply_incl_fees_beforeu64
- vault_lp_supply_incl_fees_afteru64
- vault_lp_total_accumulated_fees_beforeu64
- vault_lp_total_accumulated_fees_afteru64
- vault_lp_dead_weight_beforeu64
- vault_lp_dead_weight_afteru64
- vault_highest_asset_per_lp_decimal_bits_beforeu128
- vault_highest_asset_per_lp_decimal_bits_afteru128
- withdrawn_tsu64
LockedProfitStatestruct
- last_updated_locked_profitu64
- last_reportu64
Protocolstruct
- adminpubkeyThe admin of the protocol.
- operational_stateu16The operational state of the protocol.
- _padding1[u8; 2]Padding after the operational-state flags.
- bumpu8The bump for the protocol.
- _padding0[u8; 1]1 byte of padding to align future 8-byte fields on 8-byte boundaries.
- pending_adminpubkeyThe pending admin for admin transfer.
- treasurypubkeyThe treasury that receives protocol fees.
ProtocolConfigFieldenum
- OperationalState
- PendingAdmin
- Treasury
ProtocolFeeFieldenum
- ProtocolPerformanceFee
- ProtocolManagementFee
RemoveAdaptorEventstruct
- adminpubkey
- vaultpubkey
- adaptor_programpubkey
- adaptor_add_receiptpubkey
- removed_tsu64
RequestWithdrawVaultEventstruct
- vaultpubkey
- userpubkey
- requested_amountu64
- is_amount_in_lpbool
- is_withdraw_allbool
- request_withdraw_vault_receiptpubkey
- amount_lp_escrowedu64
- amount_asset_to_withdraw_decimal_bitsu128
- withdrawable_from_tsu64
- vault_asset_mintpubkey
- vault_asset_total_value_unlockedu64
- vault_asset_total_valueu64
- vault_lp_supply_incl_feesu64
- requested_tsu64
RequestWithdrawVaultReceiptstruct
- vaultpubkey
- userpubkey
- amount_lp_escrowedu64
- amount_asset_to_withdraw_decimal_bitsu128
- withdrawable_from_tsu64
- bumpu8
- versionu8
StrategyInitReceiptstruct
- vaultpubkeyThe vault associated with this strategy.
- strategypubkeyThe strategy address.
- adaptor_programpubkeyThe adaptor program address.
- position_valueu64The position value.
- last_updated_tsu64The last updated timestamp.
- versionu8A version number (1 byte).
- bumpu8The bump for the strategy init receipt.
- vault_strategy_auth_bumpu8The bump for the vault strategy auth.
- _padding0[u8; 5]6 bytes of padding to align future 8-byte fields on 8-byte boundaries.
- _reserved[u8; 64]Reserved space for future fields
UpdateProtocolEventstruct
- adminpubkey
- protocolpubkey
- fieldstring
- old_valuestring
- new_valuestring
- updated_tsu64
UpdateVaultAdaptorPolicyEventstruct
- adminpubkey
- vaultpubkey
- fieldstring
- old_valueu8
- new_valueu8
- updated_tsu64
UpdateVaultConfigEventstruct
- adminpubkey
- vaultpubkey
- fieldstring
- old_valuestring
- new_valuestring
- updated_tsu64
UpdateVaultEventstruct
- adminpubkey
- vaultpubkey
- vault_config_max_cap_beforeu64
- vault_config_max_cap_afteru64
- vault_config_start_at_ts_beforeu64
- vault_config_start_at_ts_afteru64
- vault_config_locked_profit_degradation_duration_beforeu64
- vault_config_locked_profit_degradation_duration_afteru64
- vault_config_withdrawal_waiting_period_beforeu64
- vault_config_withdrawal_waiting_period_afteru64
- vault_config_manager_performance_fee_beforeu16
- vault_config_manager_performance_fee_afteru16
- vault_config_admin_performance_fee_beforeu16
- vault_config_admin_performance_fee_afteru16
- vault_config_manager_management_fee_beforeu16
- vault_config_manager_management_fee_afteru16
- vault_config_admin_management_fee_beforeu16
- vault_config_admin_management_fee_afteru16
- vault_config_redemption_fee_beforeu16
- vault_config_redemption_fee_afteru16
- vault_config_issuance_fee_beforeu16
- vault_config_issuance_fee_afteru16
- updated_tsu64
UpdateVaultProtocolFeeEventstruct
- adminpubkey
- vaultpubkey
- fieldstring
- old_valueu16
- new_valueu16
- updated_tsu64
Vaultstruct
- name[u8; 32]The vault's name.
- description[u8; 64]A description or summary for this vault.
- assetVaultAssetThe vault’s main asset configuration (inline nested struct).
- lpVaultLpThe vault’s LP (share) configuration (inline nested struct).
- pending_adminpubkeyThe pending admin for admin transfer.
- managerpubkeyThe manager of this vault (has certain permissions).
- adminpubkeyThe admin of this vault (broader or fallback permissions).
- vault_configurationVaultConfigurationThe vault fee, cap, and locked profit degradation duration configuration (inline nested struct).
- fee_configurationFeeConfigurationThe vault fee and cap configuration (inline nested struct).
- fee_updateFeeUpdateThe fee update state of the vault.
- fee_stateFeeStateThe fee state of the vault.
- dead_weightu64The accumulated dead weight of the vault.
- high_water_markHighWaterMark
- last_updated_tsu64The last time (Unix timestamp) this vault data was updated.
- versionu8The version of the vault.
- allow_any_adaptoru8Protocol-admin-controlled adaptor allowlist bypass.
- _padding0[u8; 6]Padding to keep `locked_profit_state` at its existing 8-byte-aligned offset.
- locked_profit_stateLockedProfitStateThe locked profit state of the vault.
- reserved[u8; 240]Reserved bytes for future use.
VaultAssetstruct
- mintpubkeyThe mint for the vault’s main asset.
- idle_atapubkeyThe “idle” token account holding un-invested assets.
- total_valueu64The total amount of this asset currently in the vault.
- idle_ata_auth_bumpu8The bump for the vault asset mint.
- reserved[u8; 95]Reserved bytes for future use.
VaultConfigFieldenum
- MaxCap
- StartAtTs
- LockedProfitDegradationDuration
- WithdrawalWaitingPeriod
- ManagerPerformanceFee
- AdminPerformanceFee
- ManagerManagementFee
- AdminManagementFee
- RedemptionFee
- IssuanceFee
- Manager
- PendingAdmin
- DisabledOperations
VaultConfigurationstruct
- max_capu64The maximum total amount allowed in the vault.
- start_at_tsu64active from timestamp
- locked_profit_degradation_durationu64The locked profit degradation duration.
- withdrawal_waiting_periodu64The waiting period for a withdrawal. prec: seconds
- disabled_operationsu16Reserved bytes for future use.
- reserved[u8; 46]Reserved bytes for future use.
VaultInitializationInputstruct
- max_capu64The maximum total amount allowed in the vault.
- start_at_tsu64active from timestamp
- manager_performance_feeu16Manager performance fee in basis points (BPS).
- admin_performance_feeu16Admin performance fee in basis points (BPS).
- manager_management_feeu16Manager management fee in basis points (BPS).
- admin_management_feeu16Admin management fee in basis points (BPS).
- locked_profit_degradation_durationu64The locked profit degradation duration.
- redemption_feeu16The redemption fee in basis points (BPS).
- issuance_feeu16The issuance fee in basis points (BPS).
- withdrawal_waiting_periodu64The waiting period for a withdrawal.
VaultLpstruct
- mintpubkeyThe LP mint (e.g., representing shares in this vault).
- mint_bumpu8The bump for the vault LP mint.
- mint_auth_bumpu8The bump for the vault LP mint authority.
- reserved[u8; 30]Reserved bytes for future use.
WithdrawStrategyEventstruct
- managerpubkey
- vaultpubkey
- strategypubkey
- strategy_init_receiptpubkey
- adaptor_programpubkey
- vault_asset_mintpubkey
- vault_amount_asset_withdrawnu64
- vault_asset_total_value_beforeu64
- vault_asset_total_value_afteru64
- vault_lp_supply_incl_fees_beforeu64
- vault_lp_supply_incl_fees_afteru64
- vault_highest_asset_per_lp_decimal_bits_beforeu128
- vault_highest_asset_per_lp_decimal_bits_afteru128
- vault_asset_idle_ata_amount_beforeu64
- vault_asset_idle_ata_amount_afteru64
- strategy_position_value_beforeu64
- strategy_position_value_afteru64
- withdrawn_tsu64
WithdrawVaultEventstruct
- userpubkey
- user_amount_asset_withdrawnu64
- user_amount_lp_burnedu64
- vaultpubkey
- vault_asset_mintpubkey
- vault_asset_total_value_unlocked_beforeu64
- vault_asset_total_value_beforeu64
- vault_asset_total_value_afteru64
- vault_lp_supply_incl_fees_beforeu64
- vault_lp_supply_incl_fees_afteru64
- vault_lp_total_accumulated_fees_beforeu64
- vault_lp_total_accumulated_fees_afteru64
- vault_lp_dead_weight_beforeu64
- vault_lp_dead_weight_afteru64
- vault_highest_asset_per_lp_decimal_bits_beforeu128
- vault_highest_asset_per_lp_decimal_bits_afteru128
- withdrawn_tsu64
Events 26
AcceptProtocolAdminEvent
no fields
AcceptVaultAdminEvent
no fields
AddAdaptorEvent
no fields
CalibrateHighWaterMarkEvent
no fields
CalibrateHighWaterMarkUnsafeEvent
no fields
CancelRequestWithdrawVaultEvent
no fields
CloseStrategyEvent
no fields
DepositStrategyEvent
no fields
DepositVaultEvent
no fields
DirectWithdrawStrategyEvent
no fields
HarvestFeeEvent
no fields
InitProtocolEvent
no fields
InitializeDirectWithdrawStrategyEvent
no fields
InitializeStrategyEvent
no fields
InitializeVaultEvent
no fields
InstantWithdrawStrategyEvent
no fields
InstantWithdrawVaultEvent
no fields
RemoveAdaptorEvent
no fields
RequestWithdrawVaultEvent
no fields
UpdateProtocolEvent
no fields
UpdateVaultAdaptorPolicyEvent
no fields
UpdateVaultConfigEvent
no fields
UpdateVaultEvent
no fields
UpdateVaultProtocolFeeEvent
no fields
WithdrawStrategyEvent
no fields
WithdrawVaultEvent
no fields
Errors 18
- 6000InvalidAmountInvalid amount provided.
- 6001InvalidTokenMintInvalid token mint.
- 6002InvalidTokenAccountInvalid token account.
- 6003InvalidAccountInputInvalid account input.
- 6004MathOverflowMath overflow.
- 6005FeeExceedsTotalAssetValueFee exceeds total asset value.
- 6006MaxCapExceededMax cap exceeded.
- 6007VaultNotActiveVault not active.
- 6008ManagerNotAllowedManager not allowed in remaining.
- 6009OperationNotAllowedOperation not allowed.
- 6010AdaptorEpochInvalidAdaptor epoch invalid.
- 6011InvalidFeeConfigurationFee configuration invalid.
- 6012WithdrawalNotYetAvailableWithdrawal not yet available.
- 6013InvalidInputInvalid input.
- 6014DivisionByZeroDivision by zero.
- 6015InstantWithdrawNotAllowedInstant withdraw not allowed.
- 6016AdaptorProgramNotWhitelistedAdaptor program not whitelisted.
- 6017InvalidAdaptorPolicyInvalid adaptor policy.
What's an IDL?
An IDL — Interface Description Language — is a JSON spec that describes how to talk to a program: its instructions, the accounts each one needs, argument and account types, events, and errors.
Anchor auto-generates it at build time. A program can publish it on-chain at a PDA derived from its id, so any client or explorer can decode the program's transactions without its source code.
Why it's often missing
Publishing is opt-in — a courtesy, not a requirement. Many programs never do, and non-Anchor frameworks (Pinocchio, native, Steel) don't produce one at all; their interface lives in an off-chain Shank/Codama artifact, or nowhere public. Absence means you can't auto-decode it — not that anything is wrong.
6 of 28 instructions used · 22 never called in this window · +3 more
Tractioni
The recordi
| Event | When | Detail | Receipt |
|---|---|---|---|
| DEPLOY | 4d ago | slot 431,703,051 | back…3051 |