glam について
glamは、Solanaの投資インフラを扱う開発者向けのスキルです。GLAM CLIとSDKを通じて、アクセス制御付きボールト、DeFi連携、トークン化の操作を説明します。
主な機能
- 01ボールトの作成と管理
- 02DeFi連携の有効化と利用
- 03委任権限と資産許可リストの管理
- 04スワップ、貸付、ステーキング、ブリッジ
活用シーン
- 01トークン化ボールトと初期価格の設定
- 02KaminoLendでの資産預け入れ
- 03JupiterSwapでのトークンスワップ
- 04CCTPによるUSDCのブリッジ
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sendaifun/ skills --skill glamインストール後、Claude Code で/glamを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evaluations.jsondocs/troubleshooting.mdexamples/EXAMPLES.mdresources/concepts.mdresources/cli/advanced.mdalt.mddelegate.mdinvest.mdjupiter.mdkamino-farms.mdkamino-lend.mdkamino-vaults.mdlst.mdmanage.mdstaking.mdtransfer.mdvault.mdresources/sdk/client.mdintegrations.mdix-mapper.mdmint.mdmultisig.md詳細
GLAM プロトコルスキル
GLAM は、Solana 上でプログラム可能な投資インフラを提供します。アクセス制御付きのボールト、DeFi 連携、トークン化を利用できます。
クイックスタート
# 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
重要:連携の有効化
連携を使用する前に、必ず有効化してください。 これが最もよくあるエラーです。
利用可能:JupiterSwap、KaminoLend、KaminoVaults、KaminoFarms、SplToken、CCTP、GlamMint、Marinade(ステージング)、StakePool(ステージング)、SanctumSingle(ステージング)、SanctumMulti(ステージング)、StakeProgram(ステージング)。
ステージングの連携には --bypass-warning が必要です。
ワークフロー
トークン化ボールトのセットアップ
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 レンディング
glam-cli integration enable KaminoLend
glam-cli kamino-lend init # Required once
glam-cli kamino-lend deposit \
7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF \
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v \
1000
判断ツリー
| 目的 | 連携 | コマンド |
|---|---|---|
| トークンをスワップする | JupiterSwap | jupiter swap |
| 利回りを得るために貸し出す | KaminoLend | kamino-lend deposit |
| SOL をステーキングする(リキッド) | Marinade(ステージング) | marinade --bypass-warning stake |
| SOL をステーキングする(LST) | StakePool / SanctumSingle / SanctumMulti(ステージング) | lst --bypass-warning stake <pool> <amount> |
| SOL をステーキングする(ネイティブ) | StakeProgram(ステージング) | stake --bypass-warning list / deactivate / withdraw |
| Kamino ボールト | KaminoVaults | kamino-vaults deposit |
| トークン化ボールト | — | vault create → manage price → 投資家が invest subscribe |
| シェアトークンを管理する | — | SDK のみ:client.mint.*(凍結、発行、バーン、強制転送) |
| USDC をブリッジする | CCTP | cctp bridge-usdc <amount> <domain> <dest>(0=ETH、1=AVAX、2=OP、3=ARB、6=BASE、7=POLYGON) |
| タイムロック | — | timelock set <seconds> |
よくあるエラー
| エラー | 解決方法 |
|---|---|
| "Signer is not authorized" | vault view で所有者を確認します。必要に応じてデリゲートを付与します |
| "Integration not enabled" | integration enable <NAME> |
| "Asset not in allowlist" | vault allowlist-asset <MINT> |
| "User not initialized" | kamino-lend init |
| "No route found" | 少額で試し、トークンの流動性を確認します |
| "Slippage exceeded" | --slippage-bps を増やすか、金額を減らします |
| "Account is frozen" | SDK:client.mint.setTokenAccountsStates() |
| "Missing jupiter_api_key" | jupiter_api_key を config.json に追加します |
詳細な解決方法については、トラブルシューティングを参照してください。
よく使うミント
| トークン | アドレス |
|---|---|
| SOL | So11111111111111111111111111111111111111112 |
| USDC | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
| USDT | Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB |
| mSOL | mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So |
| jitoSOL | J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn |
SDK クイックスタート
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,
});
標準の Solana 命令を GLAM プロキシ経由の命令に変換する、高度なプロキシ命令のマッピングについては、ix-mapper SDK リファレンスを参照してください。
リファレンス
- CLI: ボールト、委任、jupiter、kamino-lend、kamino-vaults、kamino-farms、ステーキング、lst、投資、管理、送金、高度な機能、alt
- SDK: クライアント、インテグレーション、ix-mapper、ミント、マルチシグ
- その他: 概念、サンプル、トラブルシューティング
- ドキュメント: https://docs.glam.systems/
コメント
Markdown 対応