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.| Extension | Supported | Enabled 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 storesname, 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 aturi with these recommended fields:
| Field | Type | Description |
|---|---|---|
name | string | Full name of the share token (should match the onchain mint name) |
symbol | string | Short ticker, typically 2–6 characters (should match the onchain mint symbol) |
description | string | Summary of the vault’s purpose and strategy |
image | string | HTTPS URL to the token logo (PNG or SVG, square, at least 512×512 px) |
Hosting Options
For broad wallet support, use a publicly accessible HTTPS URL that returns the JSON document withContent-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.
Setting the URI
The metadata URI is part of the mint configuration and is typically set at vault creation time. Set theuri field via:
- CLI: the
mint.urifield in the vault template. See CLI General Usage for the template reference. - SDK: the
uriparameter passed tomint.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.
nameandsymbolin the JSON match the onchain mint name and symbol.- The
imageURL resolves to a square logo at least 512×512 px. - The share token displays correctly in a wallet after a test subscription.