GLAMIDL Reference

subscribe

Performs an instant subscription into a tokenized vault when policy and valuation allow.

Handler narrative

  1. Load the GLAM state or program account required by the instruction and verify the signer.
  2. Validate mint policy, transfer the subscription asset, and either issue shares immediately or create a queued request.

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.
  • The vault account must be the PDA controlled by the core protocol program and derived conceptually from the state account; instructions use it as the vault authority for SOL, token accounts, and external positions.
  • 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 investor must satisfy mint policy checks, including allowlist, blocklist, minimum subscription amount, max-cap, and lockup configuration where enabled.
  • The subscription asset mint and token accounts must match the mint's base asset configuration, and the resulting share calculation must use the validated NAV path for the flow.

Accounts

AccountRoleDescription
glam_statewritableState account owned by the GLAM Protocol program; it records vault configuration, policies, and pricing records.
glam_vaultread-onlyVault account controlled by the GLAM Protocol program; conceptually derived from the state account and used as the vault authority.
glam_mintwritableToken-2022 mint associated with the GLAM mint or tokenized vault.
glam_escrowread-onlyProgram-derived account used by this instruction; clients should prefer SDK helpers when available.
request_queueread-onlyProgram-derived queue associated with the mint for queued subscriptions and redemptions.
signersigner, writableCalling authority. It must be the owner or a delegate with the explicit permission required by this instruction.
signer_mint_atawritableToken mint account used by the instruction.
escrow_mint_atawritableToken mint account used by the instruction.
deposit_assetread-onlyInstruction-specific account supplied by the caller or SDK.
vault_deposit_atawritableToken account read or written by the instruction.
signer_deposit_atawritableToken account read or written by the instruction.
signer_policywritable, optionalInstruction-specific account supplied by the caller or SDK.
system_programread-onlyStandard Solana program account required by the instruction.
deposit_token_programread-onlyInstruction-specific account supplied by the caller or SDK.
token_2022_programread-onlyStandard Solana program account required by the instruction.
associated_token_programread-onlyStandard Solana program account required by the instruction.
policies_programread-onlyGLAM Policies program account used for Token-2022 transfer-hook behavior.
glam_protocol_programread-onlyGLAM Protocol program account used for authorization or CPI.

Arguments

ArgumentTypeNotes
amount_inu64Base-asset amount to subscribe with, in the base asset's smallest unit.

Policy & permissions

  • No external integration enablement is required beyond the program-level functionality involved in this instruction.
  • Investor caller must satisfy mint policy, including allowlist, blocklist, lockup, and minimum amount checks where configured.

TypeScript SDK usage

await glamClient.invest.subscribe(
  new BN(10_000_000_000),
  false,
);

Cross-instruction constraints

  • No additional cross-instruction constraint is documented beyond account initialization, authority checks, and policy validation.