GLAMIDL Reference

validate_aum

Validates vault AUM after pricing instructions populate priced protocol records.

Handler narrative

  1. Load the GLAM state or program account required by the instruction and verify the signer.
  2. Apply mint lifecycle, token-account, ACL, or policy changes after verifying the required authority.
  3. Validates AUM of the vault and emits AumRecord event.

Required conditions

  • The submitted accounts must match the declared account list, signer requirements, writable requirements, fixed program addresses, and account relationships shown below.
  • The GLAM state account is the source of truth for owner, enabled integrations, delegate permissions, policies, assets, borrowable assets, timelock settings, mint linkage, and pricing records.
  • Mint actions must satisfy the linked GLAM state, Token-2022 mint configuration, mint policy, and any request queue or escrow state involved in the flow.
  • All pricing instructions for the same pricing operation must be in one Solana transaction; splitting them across multiple transactions is unsupported and can produce stale, inconsistent, or rejected NAV calculations.
  • Oracle, token-account, position, and pricing-record accounts must all refer to the same vault state and base asset so the AUM calculation is internally consistent.

Accounts

AccountRoleDescription
glam_stateread-onlyState account owned by the GLAM Protocol program; it records vault configuration, policies, and pricing records.
signersigner, writableCalling authority. It must be the owner or a delegate with the explicit permission required by this instruction.
event_authorityoptionalProgram-derived account used by this instruction; clients should prefer SDK helpers when available.
event_programoptionalFixed program or sysvar account required by this instruction.

Arguments

No arguments.

Policy & permissions

  • No external integration enablement is required beyond the program-level functionality involved in this instruction.
  • Pricing callers must be authorized to update valuation records for the vault. Pricing does not grant asset-movement rights.

TypeScript SDK usage

const pricingIxs = await glamClient.price.priceVaultIxs();
const validateIx = await glamClient.price.validateAumIx();

Cross-instruction constraints

  • Run after all required pricing instructions, and include validation in the same transaction when the operation depends on an atomic NAV calculation.