TheDocumentation Index
Fetch the complete documentation index at: https://docs.glam.systems/llms.txt
Use this file to discover all available pages before exploring further.
mint sub-client manages the lifecycle of tokenized vault mints, including initialization, configuration updates, subscription/redemption pausing, and token account management.
For creating a tokenized vault with a mint, see Create a Vault.
Initialize Mint
Create a new tokenized vault by initializing a mint. The vault state is automatically created by the underlyinginitialize_mint instruction. The uri should point to a publicly hosted JSON document, see Token Metadata for the schema and hosting guidance.
Permanent Delegate
ThepermanentDelegate field on mint.initialize controls the Token-2022 Permanent Delegate extension. It accepts three meaningfully different values:
| Value | Behavior |
|---|---|
null (default) | Extension not enabled. No party can force-transfer or burn investor shares. |
| System Program ID | Sentinel. The mint PDA itself is set as the permanent delegate, meaning the GLAM Mint Program retains programmatic control. |
| Any other key | The provided key holds the permanent-delegate authority directly and unconditionally. |
- Why the sentinel matters: When the delegate is set to
SystemProgram.programId,initialize_mintsubstitutes the mint PDA as the on-chain authority. Any forced transfer or burn must therefore be invoked through a GLAM Mint Program instruction signed by the program via PDA seeds, gated by GLAM access control rather than a single keypair. - Rotation rules:
mint.updatecan rotate the permanent delegate only if the current delegate is the mint itself. Once a non-mint key has been set, that key must rotate the authority directly (spl-token authorize <mint> permanent-delegate <new>); the vault manager cannot reclaim it through GLAM.
Best practices
- Default to
nullunless you have a documented compliance reason to enable the extension. - Prefer the
SystemProgram.programIdsentinel over an external key. It keeps the authority programmatic and rotatable through GLAM. - Never use a single EOA as the delegate. If you must point it at an external account, use a multisig (e.g., Squads).
- Disclose the configuration. If the extension is enabled, document who holds the authority and under what conditions it will be exercised.
- Plan for the lifetime of the key. Once a non-mint delegate is set, your operational procedures (custody, multisig membership, recovery) become load-bearing for the vault.