glam
GLAM Protocol Skill
GLAM provides programmable investment infrastructure on Solana: vaults with access control, DeFi integrations, and tokenization.
Quick Start
# Install CLI
npm install -g @glamsystems/glam-cli
# Configure (~/.config/glam/config.json)
cat > ~/.config/glam/config.json << 'EOF'
{
"keypair_path": "~/.config/solana/id.json",
"json_rpc_url": "https://api.mainnet-beta.solana.com"
}
EOF
# Create vault, set active, enable integrations, verify
glam-cli vault create ./vault-template.json
glam-cli vault set <VAULT_STATE_PUBKEY>
glam-cli integration enable JupiterSwap KaminoLend
glam-cli vault view
Critical: Integration Enablement
You MUST enable integrations BEFORE using them. This is the most common error.
Available: JupiterSwap, KaminoLend, KaminoVaults, KaminoFarms, SplToken, CCTP, GlamMint, Marinade (staging), StakePool (staging), SanctumSingle (staging), SanctumMulti (staging), StakeProgram (staging).
Staging integrations require --bypass-warning.
Workflows
Tokenized Vault Setup
glam-cli vault create ./tokenized-vault-template.json
glam-cli vault set <VAULT_STATE_PUBKEY>
glam-cli integration enable JupiterSwap KaminoLend
glam-cli manage price # Set initial NAV price
glam-cli jupiter set-max-slippage 100 # Configure swap policy
# Optional: delegate trading permissions (protocol-scoped)
glam-cli delegate grant <TRADER_PUBKEY> SwapAny --protocol JupiterSwap
# Optional: set timelock (24 hours)
glam-cli timelock set 86400
Kamino Lending
glam-cli integration enable KaminoLend
glam-cli kamino-lend init # Required once
glam-cli kamino-lend deposit \
7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF \
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v \
1000
Decision Tree
| Goal | Integration | Command |
|---|---|---|
| Swap tokens | JupiterSwap |
jupiter swap |
| Lend for yield | KaminoLend |
kamino-lend deposit |
| Stake SOL (liquid) | Marinade (staging) |
marinade --bypass-warning stake |
| Stake SOL (LST) | StakePool / SanctumSingle / SanctumMulti (staging) |
lst --bypass-warning stake <pool> <amount> |
| Stake SOL (native) | StakeProgram (staging) |
stake --bypass-warning list / deactivate / withdraw |
| Kamino vaults | KaminoVaults |
kamino-vaults deposit |
| Tokenized vault | — | vault create → manage price → investors invest subscribe |
| Manage share tokens | — | SDK only: client.mint.* (freeze, issue, burn, forceTransfer) |
| Bridge USDC | CCTP |
cctp bridge-usdc <amount> <domain> <dest> (0=ETH, 1=AVAX, 2=OP, 3=ARB, 6=BASE, 7=POLYGON) |
| Timelock | — | timelock set <seconds> |
Common Errors
| Error | Solution |
|---|---|
| "Signer is not authorized" | Check vault view for owner; grant delegate if needed |
| "Integration not enabled" | integration enable <NAME> |
| "Asset not in allowlist" | vault allowlist-asset <MINT> |
| "User not initialized" | kamino-lend init |
| "No route found" | Try smaller amount; check token liquidity |
| "Slippage exceeded" | Increase --slippage-bps or reduce amount |
| "Account is frozen" | SDK: client.mint.setTokenAccountsStates() |
| "Missing jupiter_api_key" | Add jupiter_api_key to config.json |
See troubleshooting for detailed solutions.
Common Mints
| Token | Address |
|---|---|
| SOL | So11111111111111111111111111111111111111112 |
| USDC | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
| USDT | Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB |
| mSOL | mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So |
| jitoSOL | J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn |
SDK Quick Start
import {
GlamClient,
WSOL,
USDC,
getProgramAndBitflagByProtocolName,
} from "@glamsystems/glam-sdk";
import { BN } from "@coral-xyz/anchor";
const client = new GlamClient({ wallet });
// Create vault
const { vaultPda } = await client.vault.create({
name: "My Vault",
assets: [WSOL, USDC],
});
// Enable Jupiter integration
const perms = getProgramAndBitflagByProtocolName();
const [program, bitflag] = perms["JupiterSwap"];
await client.access.enableProtocols(vaultPda, program, parseInt(bitflag, 2));
// Swap
await client.jupiterSwap.swap(vaultPda, {
inputMint: USDC,
outputMint: WSOL,
amount: new BN(100_000_000),
slippageBps: 50,
});
For advanced proxy instruction remapping (convert standard Solana instructions into GLAM-proxied instructions), see the ix-mapper SDK reference.
Reference
- CLI: vault, delegate, jupiter, kamino-lend, kamino-vaults, kamino-farms, staking, lst, invest, manage, transfer, advanced, alt
- SDK: client, integrations, ix-mapper, mint, multisig
- Other: concepts, examples, troubleshooting
- Docs: https://docs.glam.systems/
More from sendaifun/skills
helius
Build Solana applications with Helius infrastructure. Covers transaction sending (Sender), asset/NFT queries (DAS API), real-time streaming (WebSockets, Laserstream), event pipelines (webhooks), priority fees, wallet analysis, and agent onboarding.
216solana-kit
Complete guide for @solana/kit - the modern, tree-shakeable, zero-dependency JavaScript SDK from Anza. Covers RPC connections, signers, transaction building with pipe, signing, sending, and account fetching with full TypeScript support.
203pumpfun
Complete PumpFun Protocol guide for building token launches, bonding curves, and AMM integrations on Solana. Covers Pump Program (token creation, buy/sell on bonding curves), PumpSwap AMM (liquidity pools, swaps), fee structures, creator fees, and SDK integration.
166meteora
Complete Meteora DeFi SDK suite for building liquidity pools, AMMs, bonding curves, vaults, token launches, and zap operations on Solana. Use when integrating DLMM, DAMM v2, DAMM v1, Dynamic Bonding Curves, Alpha Vaults, Zap, or Stake-for-Fee functionality.
165vulnhunter
Security vulnerability detection and variant analysis skill. Use when hunting for dangerous APIs, footgun patterns, error-prone configurations, and vulnerability variants across codebases. Combines sharp edges detection with variant hunting methodology.
146raydium
Complete Raydium Protocol SDK - the single source of truth for integrating Raydium on Solana. Covers SDK, Trade API, CLMM, CPMM, AMM pools, LaunchLab token launches, farming, CPI integration, and all Raydium tools.
145