Skip to main content
The 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 underlying initialize_mint instruction. The uri should point to a publicly hosted JSON document, see Token Metadata for the schema and hosting guidance.

Permanent Delegate

The permanentDelegate field on mint.initialize controls the Token-2022 Permanent Delegate extension. It accepts three meaningfully different values:
  • Why the sentinel matters: When the delegate is set to SystemProgram.programId, initialize_mint substitutes 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.update can 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 null unless you have a documented compliance reason to enable the extension.
  • Prefer the SystemProgram.programId sentinel 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.

Update Mint

Update mint configuration parameters:

Pause and Unpause

Temporarily halt subscriptions or redemptions:

Token Account Management

Create Token Account

Create a token account for a user to hold vault shares:

Freeze and Unfreeze Accounts

Control the transferability of vault shares by freezing or unfreezing token accounts:

Fetch Token Holders

Retrieve all token holders for the vault mint:

Close Mint

Close the mint account. The vault must have zero outstanding shares: