GLAMIDL Reference
GLAM MintProduction

fulfill

Fulfills pending subscription or redemption requests after required pricing and settlement conditions.

Applies toVaultTokenized VaultSingle-Asset Vault

Required conditions

  • 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.
  • The vault must have fresh pricing records for the operation; fee or fulfillment math depends on NAV values written by the pricing flow.
  • The request queue or escrow account must contain the expected request state for the signer, request type, timing window, and amount being processed.

Accounts

AccountRoleDescription
glam_statewritableGLAM state account that stores vault configuration, integration ACLs, delegate permissions, policies, assets, mint linkage, and pricing records.
glam_vaultwritableVault PDA associated with the GLAM state and used as the vault authority.
glam_mintwritableToken mint account used or validated by this instruction.
glam_escrowread-onlyEscrow account or escrow token account used by mint flows.
request_queuewritableRequest queue account used by mint subscription or redemption flows.
signersigner, writableCalling authority or fee payer.
escrow_mint_atawritableToken mint account used or validated by this instruction.
assetread-onlyMint account for the asset being fulfilled or settled in this mint flow.
vault_asset_atawritableToken account read or written by this instruction.
escrow_asset_atawritableToken account read or written by this instruction.
system_programread-onlySolana System Program.
deposit_token_programread-onlyToken program account.
token_2022_programread-onlyToken-2022 program account.
associated_token_programread-onlyAssociated Token Account program.
glam_protocol_programread-onlyGLAM Protocol program account used for authorization or CPI.

Arguments

ArgumentTypeNotes
limitoption<u32>Needed to avoid CU exhaustion in the case of a large amount of pending requests.

Policy & permissions

  • Permissionlessness is controlled by notify_and_settle.permissionless_fulfillment.
  • When permissionless, any signer can fulfill queued requests.
  • Otherwise the caller must be the GLAM owner or a delegate with Mint Fulfill.

TypeScript SDK usage

const preInstructions = await glamClient.price.priceVaultIxs();
await glamClient.invest.fulfill(null, {
  preInstructions,
  lookupTables: glamClient.price.lookupTables,
  simulate: true,
});

Cross-instruction constraints

  • Requires fresh pricing for the vault. The pricing operation itself must be atomic in a single transaction.