Skip to content
Back to skills

Glam

ASecurity

Solana vault management via GLAM Protocol. Triggers: glam, glam-cli, glam-sdk, vault create/manage, tokenized vault, share class, DeFi vault, treasury, asset management, access control, delegate permissions, Jupiter swap, Kamino lending/borrow/vaults/farms, staking (Marinade/native/SPL/Sanctum/LST), cross-chain USDC (CCTP), timelock, subscription/redemption, NAV pricing, token transfer. Supports CLI and TypeScript SDK.

  • 5,279 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 6, 2026
ai-agentstypescriptgobashgcpapi

Works with

  • cli
  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 20 files and shows the line behind each finding

Scanned September 6, 2026

npx -y skills add internet-court/internet-court-skill --skill glam --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Glam?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Glam
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/internet-court-glam/badge)](https://www.skillsdirectory.com/skills/internet-court-glam)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: glam
description: "Solana vault management via GLAM Protocol. Triggers: glam, glam-cli, glam-sdk, vault create/manage, tokenized vault, share class, DeFi vault, treasury, asset management, access control, delegate permissions, Jupiter swap, Kamino lending/borrow/vaults/farms, staking (Marinade/native/SPL/Sanctum/LST), cross-chain USDC (CCTP), timelock, subscription/redemption, NAV pricing, token transfer. Supports CLI and TypeScript SDK."
---

# GLAM Protocol Skill

GLAM provides programmable investment infrastructure on Solana: vaults with access control, DeFi integrations, and tokenization.

## Quick Start

```bash
# 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

```bash
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

```bash
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](./docs/troubleshooting.md) for detailed solutions.

---

## Common Mints

| Token   | Address                                        |
| ------- | ---------------------------------------------- |
| SOL     | `So11111111111111111111111111111111111111112`  |
| USDC    | `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` |
| USDT    | `Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB` |
| mSOL    | `mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So`  |
| jitoSOL | `J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn` |

---

## SDK Quick Start

```typescript
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](./resources/cli/vault.md), [delegate](./resources/cli/delegate.md), [jupiter](./resources/cli/jupiter.md), [kamino-lend](./resources/cli/kamino-lend.md), [kamino-vaults](./resources/cli/kamino-vaults.md), [kamino-farms](./resources/cli/kamino-farms.md), [staking](./resources/cli/staking.md), [lst](./resources/cli/lst.md), [invest](./resources/cli/invest.md), [manage](./resources/cli/manage.md), [transfer](./resources/cli/transfer.md), [advanced](./resources/cli/advanced.md), [alt](./resources/cli/alt.md)
- **SDK**: [client](./resources/sdk/client.md), [integrations](./resources/sdk/integrations.md), [ix-mapper](./resources/sdk/ix-mapper.md), [mint](./resources/sdk/mint.md), [multisig](./resources/sdk/multisig.md)
- **Other**: [concepts](./resources/concepts.md), [examples](./examples/EXAMPLES.md), [troubleshooting](./docs/troubleshooting.md)
- **Docs**: https://docs.glam.systems/

Files in this skill

  • LICENSE11.1 KB
  • SKILL.md7.2 KB
  • docs/troubleshooting.md4.8 KB
  • evaluations.json10.7 KB
  • examples/EXAMPLES.md10.9 KB
  • resources/cli/advanced.md4.1 KB
  • resources/cli/alt.md1.6 KB
  • resources/cli/delegate.md3.6 KB
  • resources/cli/invest.md1.8 KB
  • resources/cli/jupiter.md2.8 KB
  • resources/cli/kamino-farms.md2.1 KB
  • resources/cli/kamino-lend.md3.4 KB
  • resources/cli/kamino-vaults.md2.3 KB
  • resources/cli/lst.md2.8 KB
  • resources/cli/manage.md2.9 KB
  • resources/cli/staking.md3.8 KB
  • resources/cli/transfer.md1.9 KB
  • resources/cli/vault.md8 KB
  • resources/concepts.md6.9 KB
  • resources/sdk/client.md10.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.