Skip to main content
GLAM Mints provide the tokenization infrastructure that powers subscription and redemption flows using Token-2022 features. They enable controlled issuance and burning of vault share tokens, with built-in administrative controls and secure custody mechanisms.

Token Extensions

Token Extensions expand the core Solana token standard with advanced capabilities. They retain minting, transferring, and freezing, while adding support for custom logic, extended metadata, and confidential transfers. GLAM builds on this extended interface using the Token-2022 program, a superset of the legacy Token program. To learn more about Token Extensions visit the official documentation here.
Token Extensions (Token 2022) are still evolving, and certain features or configurations may introduce limitations across the ecosystem. While some integrations support standard extensions like Metadata and Transfer Fee, broader compatibility is still being explored.
ExtensionSupportedEnabled by Default
Mint Close Authority
Transfer Fees⏹️⏹️
Non-Transferable⏹️⏹️
Interest-Bearing⏹️⏹️
Permanent Delegate⏹️
Transfer Hook
Metadata
Metadata Pointer
Confidential Transfers⏹️⏹️
Pausable Config⏹️⏹️
Immutable Owner⏹️⏹️
Required Memo on Transfer⏹️⏹️
CPI Guard⏹️⏹️
Default Account State
Pausable Account⏹️⏹️
If you need support for additional Token Extensions, please contact us at mint@glam.systems.

Token Metadata

When users subscribe to a tokenized vault, they receive share tokens. Wallets (Phantom, Solflare) and aggregators (Jupiter) rely on token metadata to display a human-readable name, symbol, and logo. GLAM mints use the Token-2022 Metadata and Metadata Pointer extensions, which are enabled by default. The mint stores name, symbol, and a uri onchain. The uri points to an offchain JSON document that wallets fetch to resolve the token’s description and image.

Metadata JSON Schema

For broad wallet and indexer compatibility, use a metadata JSON document at uri with these recommended fields:
FieldTypeDescription
namestringFull name of the share token (should match the onchain mint name)
symbolstringShort ticker, typically 2–6 characters (should match the onchain mint symbol)
descriptionstringSummary of the vault’s purpose and strategy
imagestringHTTPS URL to the token logo (PNG or SVG, square, at least 512×512 px)
Example:
{
  "name": "GLAM SOL",
  "symbol": "gmSOL",
  "description": "Liquid SOL strategy vault on GLAM. Share token represents a pro-rata claim on vault assets.",
  "image": "https://your-domain.com/gmsol-logo.png"
}

Hosting Options

For broad wallet support, use a publicly accessible HTTPS URL that returns the JSON document with Content-Type: application/json. Three common approaches:

GitHub

Free, version-controlled, and reliable. Host the JSON and logo in a public repo and link to the raw file URL. Updates are trivial, and history is auditable.

Arweave / IPFS

Permanent, decentralized hosting. Best when immutability is a feature rather than a limitation. Updates require publishing a new URI and updating the mint.

Self-hosted

Full control over caching, updates, and analytics. Requires your own infrastructure and uptime guarantees.
Wallets and indexers cache metadata aggressively. Prefer a stable URL and update the JSON in place rather than rotating URIs. If you do change the uri onchain, expect delays before clients refresh.

Setting the URI

The metadata URI is part of the mint configuration and is typically set at vault creation time. Set the uri field via:
  • CLI: the mint.uri field in the vault template. See CLI General Usage for the template reference.
  • SDK: the uri parameter passed to mint.initialize. See Mint Management for initialization and lifecycle operations.

Checklist

Before announcing your vault, verify:
  • The URI returns valid JSON with the recommended wallet/indexer-compatible fields.
  • name and symbol in the JSON match the onchain mint name and symbol.
  • The image URL resolves to a square logo at least 512×512 px.
  • The share token displays correctly in a wallet after a test subscription.