Skip to main content

Overview

GLAM CLI supports three types of vaults, each with its own template and use case:
  • Vault: Basic vault for managing assets
  • Tokenized Vault: Vault with share tokens for investor subscriptions/redemptions
  • Single Asset Vault: Specialized vault for managing a single asset type
All vaults are created using the glam vault create command with a JSON configuration file.

Available Templates

GLAM provides starter templates in the templates/ directory:
{
  "state": {
    "accountType": "vault",
    "name": "GLAM Vault Devnet",
    "enabled": true,
    "baseAssetMint": "So11111111111111111111111111111111111111112",
    "assets": [
      "So11111111111111111111111111111111111111112",
      "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
    ]
  }
}
Basic vault with asset allowlist. Ideal for portfolio management without tokenization.
{
  "state": {
    "accountType": "tokenizedVault",
    "name": "GLAM SOL",
    "baseAssetMint": "So11111111111111111111111111111111111111112",
    "enabled": true
  },
  "mint": {
    "name": "GLAM SOL",
    "symbol": "gmSOL",
    "uri": "https://glam.systems",
    "maxCap": 1000000000000,
    "minSubscription": 100000000,
    "minRedemption": 100000000,
    "lockupPeriod": 0,
    "feeStructure": {
      "vault": {
        "subscriptionFeeBps": 10,
        "redemptionFeeBps": 10
      },
      "manager": {
        "subscriptionFeeBps": 0,
        "redemptionFeeBps": 0
      },
      "management": {
        "feeBps": 0
      },
      "performance": {
        "feeBps": 2000,
        "hurdleRateBps": 500,
        "hurdleType": "hard"
      }
    }
  }
}
Tokenized vault with share tokens and fee structures for investor subscriptions.
{
  "state": {
    "accountType": "singleAssetVault",
    "name": "Single Asset Vault",
    "baseAssetMint": "So11111111111111111111111111111111111111112"
  },
  "mint": {
    "name": "Single Asset Vault",
    "symbol": "SAV",
    "uri": "https://glam.systems",
    "lockupPeriod": 0,
    "feeStructure": {
      "vault": {
        "subscriptionFeeBps": 0,
        "redemptionFeeBps": 0
      }
    },
    "notifyAndSettle": {
      "model": "continuous",
      "redeemSettlementPeriod": 604800
    }
  }
}
Specialized for managing a single asset type with settlement periods.

Creating Your First Vault

1

Copy a template

Choose the appropriate template for your use case and copy it to your working directory:
cp templates/vault.json my-vault.json
2

Customize configuration

Edit the JSON file to customize your vault:
{
  "state": {
    "accountType": "vault",
    "name": "My Portfolio Vault",
    "enabled": true,
    "baseAssetMint": "So11111111111111111111111111111111111111112",
    "assets": [
      "So11111111111111111111111111111111111111112"
    ]
  }
}
The baseAssetMint is the primary deposit asset. Use So11111111111111111111111111111111111111112 for SOL.
3

Create the vault

Run the create command:
glam vault create my-vault.json
The CLI will display a confirmation prompt with vault details.
4

Confirm and deploy

Review the details and confirm. The CLI will output:
State PDA: 8x7F...9zKp
Vault PDA: 5mQ2...3nLw
Initialized vault: 2Tx9...4kPq
Save these addresses! The State PDA is used for all subsequent vault operations.
5

Set as active vault

Set this vault as your active vault for future commands:
glam vault set 8x7F...9zKp

Skip Confirmation Prompt

Use the -y or --yes flag to skip the confirmation prompt:
glam vault create my-vault.json -y

Configuration Reference

State Configuration

FieldTypeRequiredDescription
accountTypestringYesVault type: vault, tokenizedVault, or singleAssetVault
namestringYesVault name (displayed in listings)
enabledbooleanNoWhether vault is enabled (default: true)
baseAssetMintstringYesPrimary deposit asset mint address
assetsarrayNoAsset allowlist (mint addresses)

Mint Configuration (Tokenized/Single Asset Only)

FieldTypeRequiredDescription
namestringYesShare token name
symbolstringYesShare token symbol
uristringYesMetadata URI
maxCapnumberNoMaximum total supply
minSubscriptionnumberNoMinimum subscription amount
minRedemptionnumberNoMinimum redemption amount
lockupPeriodnumberNoLockup period in seconds

Fee Structure

Fees are specified in basis points (1 bps = 0.01%):
"feeStructure": {
  "vault": {
    "subscriptionFeeBps": 10,    // 0.10% subscription fee
    "redemptionFeeBps": 10        // 0.10% redemption fee
  },
  "performance": {
    "feeBps": 2000,               // 20% performance fee
    "hurdleRateBps": 500,         // 5% hurdle rate
    "hurdleType": "hard"          // or "soft"
  }
}

Listing Vaults

View all your vaults:
# Show your vaults (owned or delegated)
glam vault list

# Show only vaults you own
glam vault list --owner-only

# Show all vaults on the network
glam vault list --all

# Filter by type
glam vault list --type tokenizedVault

# JSON output
glam vault list --json

Viewing Vault Details

Inspect a vault’s full configuration:
# View active vault
glam vault view

# View specific vault
glam vault view <state-pubkey>

# Compact output
glam vault view --compact

Next Steps

Managing Assets

Add assets to the allowlist and check token balances

Delegate Permissions

Grant delegates permission to manage your vault

Investor Operations

Enable subscriptions and redemptions for tokenized vaults

Build docs developers (and LLMs) love