GLAM Mint StagingStaging
validate_aum
Validates vault AUM after pricing instructions populate priced protocol records.
Handler narrative
- Load the GLAM state or program account required by the instruction and verify the signer.
- Apply mint lifecycle, token-account, ACL, or policy changes after verifying the required authority.
- 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
| Account | Role | Description |
|---|---|---|
| glam_state | read-only | State account owned by the GLAM Protocol program; it records vault configuration, policies, and pricing records. |
| signer | signer, writable | Calling authority. It must be the owner or a delegate with the explicit permission required by this instruction. |
| event_authority | optional | Program-derived account used by this instruction; clients should prefer SDK helpers when available. |
| event_program | optional | Fixed 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.