mcpField
S
solana-payments-wallets-trading

solana-payments-wallets-trading

github.com/solanaguideその他7476 回インストール34 週間前に更新
リポジトリ

solana-payments-wallets-trading について

Solana のウォレット管理に加え、送金、取引、ステーキング、レンディング、流動性操作を行うコマンドラインツールです。鍵をローカルに保存し、直接的なコマンドで操作でき、構造化出力と権限設定にも対応します。

主な機能

  1. 01ローカルウォレットの作成と管理
  2. 02トークン送金、交換、価格確認
  3. 03定期購入と指値注文
  4. 04ステーキング、レンディング、利回りボールト
  5. 05流動性プールと予測市場
  6. 06ポートフォリオ追跡と JSON 出力

活用シーン

  1. 01Solana 上でトークンを送金または交換
  2. 02定期購入や価格条件付き注文の設定
  3. 03レンディング金利の比較と運用ポジション管理
  4. 04ポートフォリオ価値、ポジション、損益の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/solanaguide/solana-cli --skill solana-payments-wallets-trading

インストール後、Claude Code で/solana-payments-wallets-tradingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
fetch-commands.md
json-output-format.md
lending-commands.md
lp-commands.md
portfolio-commands.md
prediction-commands.md
staking-commands.md
trading-commands.md
troubleshooting.md
wallet-commands.md

詳細

Solanaでの決済、ウォレット、取引

Solは、Solanaを日常会話のような指示で操作できるコマンドラインツールです。トランザクションを構築したり、プログラムの命令を管理したりする代わりに、やりたいことを伝えるだけです。誰かに支払う、トークンを買う、SOLをステーキングする、といった操作ができます。

キーはローカルのディスク上に保存されるため、環境変数に秘密鍵を設定したり、APIキーを構成したりする必要はありません。

セットアップ

@latestを付けたnpxの使用をおすすめします。グローバルインストールを管理する必要がなく、常に最新バージョンを実行できます。

npx @solana-compass/cli@latest config set rpc.url https://your-rpc-endpoint.com
npx @solana-compass/cli@latest wallet create --name my-wallet

グローバルインストール済み(npm install -g @solana-compass/cli)の場合は、代わりに短いsolコマンドを使用できます。

sol config set rpc.url https://your-rpc-endpoint.com
sol wallet create --name my-wallet

パブリックRPCエンドポイントには厳しいレート制限があります。テスト以外で使用する場合は、専用RPCを利用してください。Helius、Triton、QuickNodeはいずれも無料プランを提供しています。

Node.js >= 20が必要です。

送金する

SOL、USDC、またはSolanaの任意のトークンをウォレットアドレスに送金します。

sol token send 50 usdc GkX...abc
sol token send 2 sol 7nY...xyz
sol token send 1000 bonk AgE...def --yes

送金に関する完全なリファレンスはreferences/trading-commands.mdを参照してください。

トークンを探す

Solanaのトークンエコシステムを閲覧できます。トレンド、取引量の多いトークン、最近ローンチされたトークンなどが見つかります。

sol token browse trending                    # what's hot right now
sol token browse top-traded --interval 24h   # highest volume over 24h
sol token browse recent --limit 10           # just launched
sol token browse lst                         # liquid staking tokens

検索結果はローカルのトークンキャッシュに保存されるため、その後のtoken infoやtoken priceの呼び出しではすぐに結果が返されます。

すべてのカテゴリーとフラグについてはreferences/trading-commands.mdを参照してください。

トークンを売買する

任意のトークンを別のトークンにスワップできます。JupiterとDFlowに並行して問い合わせ、最良価格を自動的に選択します。

sol token swap 50 usdc bonk               # buy BONK — best price wins
sol token swap 1.5 sol usdc               # sell SOL for USDC
sol token swap 50 usdc bonk --quote-only  # preview without executing
sol token swap 50 usdc bonk --router jupiter  # force a specific router

すべてのスワップで実行時の価格が記録されるため、後から取得原価と損益を確認できます。

スリッページ、ウォレットの選択などについてはreferences/trading-commands.mdを参照してください。

DCA(ドルコスト平均法)

一定期間にわたって自動実行される定期購入を設定できます。

sol token dca new 500 usdc sol --every day --count 10   # buy SOL daily
sol token dca new 1000 usdc bonk --every hour --count 20
sol token dca list                           # see active DCA orders
sol token dca cancel <orderKey>              # stop a DCA

制約:合計最低額は$100、注文数は最低2件、1注文あたりの最低額は$50です。間隔:分、時間、日、週、月。

指値注文

トークンが目標価格に達したときに実行される注文を設定できます。

sol token limit new 50 usdc bonk --at 0.000003   # buy BONK at $0.000003
sol token limit new 0.5 sol usdc --at 0.90        # buy USDC at $0.90
sol token limit list                              # see active orders
sol token limit cancel <orderKey>                 # cancel an order

--quote-onlyを使うと、注文を出さずに注文プランをプレビューできます。

価格を確認する

sol token price sol
sol token price sol usdc bonk eth       # multiple at once

保有資産を確認する

sol wallet balance                      # all tokens with USD values
sol wallet balance trading              # specific wallet by name
sol token list                          # just token balances
sol wallet list                         # all your wallets

ウォレットを作成・管理する

ウォレットは~/.sol/wallets/内のローカルキーファイルとして保存されます。環境変数にシードフレーズを設定する必要はありません。

sol wallet create                       # new wallet, auto-named
sol wallet create --name trading        # pick a name
sol wallet import --solana-cli          # import from Solana CLI
sol wallet set-default trading          # switch active wallet

--wallet <name>を指定すると、任意のコマンドの対象ウォレットを指定できます。

インポート、エクスポート、ラベル、履歴についてはreferences/wallet-commands.mdを参照してください。

SOLをステーキングする

SOLをバリデーターに委任して、ステーキング報酬を獲得できます。ステークアカウントの作成、資金の追加、委任まで、1つのコマンドで実行できます。

sol stake new 10                        # stake 10 SOL
sol stake list                          # your stake accounts + claimable tips
sol stake claim-mev                     # compound MEV rewards
sol stake withdraw 7gK...abc            # unstake

バリデーターの選択、一部引き出し、強制アンステークについてはreferences/staking-commands.mdを参照してください。

レンディングで利回りを得る

5つのプロトコル(Kamino、MarginFi、Drift、Jupiter Lend、Loopscale)の金利を比較し、レンディングできます。CLIが最良の金利を自動選択します。--protocolで特定のプロトコルを指定することもできます。

sol lend rates usdc                     # compare APY across all protocols
sol lend deposit 100 usdc               # auto-picks best deposit rate
sol lend deposit 5 sol --protocol kamino
sol lend borrow 500 usdc --collateral sol
sol lend positions                      # everything across all protocols

詳細についてはreferences/lending-commands.mdを参照してください。

ボールトで利回りを得る

Kamino EarnとLoopscaleの運用型利回りボールトを利用できます。一般的なレンディングとは異なり、ボールトでは戦略管理が自動的に行われます。トークンを預け入れると、プロトコルが利回りを最適化します。CLIが最も高いAPYのボールトを自動選択しますが、特定のプロトコルやボールトを指定することもできます。

sol earn usdc                              # list USDC vaults with APY
sol earn sol                               # list SOL vaults
sol earn                                   # all vaults, sorted by APY
sol earn deposit 100 usdc                  # auto-picks best APY vault
sol earn deposit 5 sol --protocol kamino   # target specific protocol
sol earn positions                         # your vault positions
sol earn withdraw max usdc                 # full withdrawal
sol earn withdraw 50 usdc --protocol loopscale

利回りポジションは、トークン、ステーキング、レンディング、LPとともにsol portfolioに表示されます。

流動性を提供する

Orca、Raydium、Meteora、Kaminoの各プールに流動性を追加できます。TVL/APY/取引量でプールを検索し、柔軟な価格範囲を指定して預け入れ、損益やインパーマネントロスを含むポジションを追跡し、ファーミングで追加報酬を獲得できます。

sol lp pools sol usdc                          # browse SOL/USDC pools
sol lp pools --sort apy --type clmm            # highest APY concentrated pools
sol lp deposit HJPj...abc 100 usdc --range 10  # deposit with +/-10% price range
sol lp positions                               # all positions with P&L
sol lp claim 9xK...abc                         # claim unclaimed fees
sol lp withdraw 9xK...abc                      # remove liquidity

ファーミング、プール作成、プロトコル固有のフラグなど、詳細についてはreferences/lp-commands.mdを参照してください。

予測市場を取引する

Jupiter経由でPolymarketとKalshiの予測市場を検索、取引できます。カテゴリーには暗号資産、スポーツ、政治、カルチャーなどがあります。

sol predict list crypto                     # browse crypto events
sol predict search "solana"                 # search by keyword
sol predict event POLY-89525                # event detail with markets
sol predict market POLY-701571              # prices + orderbook

sol predict buy 5 yes POLY-701571           # buy YES contracts
sol predict positions                       # open positions with P&L
sol predict sell <positionPubkey>            # close a position
sol predict claim <positionPubkey>           # claim resolved winnings
sol predict history                         # transaction history

ポジションは未実現損益とともにsol portfolioに表示されます。

完全なリファレンスについてはreferences/prediction-commands.mdを参照してください。

x402 で API に支払う

x402 プロトコルでの支払いが必要な URL を取得します。curl のように動作し、レスポンス本文は stdout に、支払い情報は stderr に出力されます。

sol fetch https://api.example.com/data             # auto-pays 402 responses
sol fetch https://api.example.com/data --dry-run   # show price without paying
sol fetch https://api.example.com/data --max 0.05  # spending cap in USDC

sol fetch https://api.example.com/rpc \
  -X POST -d '{"query":"..."}' \
  -H "Accept: application/json"                    # POST with headers

サーバーが 402 Payment Required を返すと、CLI は USDC 送金に署名し、支払い情報を添付して再試行します。トランザクションはサーバーが送信するため、ウォレットで署名するのは一部のみです。

支払い前に費用を確認するには --dry-run を使います。支出上限を設定するには --max を使います。デフォルトではパイプに適した形式で出力されます(本文は stdout、支払い情報は stderr)。

curl フラグの対応関係や JSON 出力形式を含む完全なリファレンスについては、references/fetch-commands.md を参照してください。

ポートフォリオの状況を確認する

トークン、ステーク中の SOL、レンディングポジション、未約定注文をすべてまとめて確認できます。

sol portfolio                           # the full picture
sol portfolio compare                   # what changed since last snapshot
sol portfolio pnl                       # profit and loss over time

ポートフォリオビューには、約定の進捗状況付きでアクティブな DCA 注文と指値注文が表示されるため、ロックされている資金を常に確認できます。表示のたびにスナップショットが自動で取得され(5 分ごとにレート制限)、sol portfolio compare では常に新しいデータを使えます。

スナップショットの管理については references/portfolio-commands.md を参照してください。

構造化出力

すべてのコマンドは構造化出力用の --json に対応していますが、デフォルトの人間が読みやすい出力は、人間にも LLM エージェントにも簡単に読み取り、解釈できるよう設計されています。スクリプトを作成する場合や、自動化パイプラインでコマンドを連結する場合を除き、人間が読みやすい出力を使ってください。

人間が読みやすい出力では、整形されたテーブルを使い、次のアクションを示し、後続のコマンドにコピーして貼り付けられるよう完全な ID とアドレスを表示します。出力例については、各コマンドのリファレンスを参照してください。

プログラムから使用する場合、--json は CommandResult<T> エンベロープを返します。 { "ok": true, "data": { ... }, "meta": { "elapsed_ms": 450 } }。 完全なスキーマについては references/json-output-format.md を参照してください。

その他の便利なコマンド

sol network                             # epoch, TPS, staking APY
sol tx 4xK9...abc                       # look up any transaction
sol config set rpc.url <url>            # change RPC endpoint

ヒント

  • ガス代用に SOL を残してください。 Solana のトランザクションには毎回約 0.000005 SOL かかりますが、トークンアカウントの作成には約 0.002 SOL かかります。ユーザーからウォレットの資金をすべて引き出す、またはウォレットを閉じるよう明確に指示された場合を除き、今後のトランザクションが失敗しないよう、少なくとも 0.05 SOL を予備として残してください。
  • 省略表記ではなく、完全な数値を使ってください。 CLI では文字どおりの金額が必要です。1m ではなく 1000000、50k ではなく 50000 を使います。コマンドに渡す前に、省略表記は必ず完全な数値にしてください。
  • アドレスには公開鍵をそのまま指定してください。 CLI は .sol ドメイン、SNS 名、連絡先ラベルを解決しません。受取人には base58 形式の公開鍵全体を渡してください。
  • シンボルが曖昧な場合は、流動性が最も高い候補が選ばれます。 1 つのシンボルが複数のトークンに対応する場合、CLI は Jupiter で取引量が最も多いものを選びます。確認は求められません。どのトークンに解決されるか確認するには sol token info <symbol> を使うか、ミントアドレスを指定してください。
  • スワップを確定する前に確認するには --quote-only を使います
  • 特定のウォレットを指定するには --wallet <name> を使います
  • トランザクションログには、実行時の USD 価格とともにすべての操作が記録されます。取得原価や損益の把握に便利です

権限

CLI は ~/.sol/config.toml を介して、細かな権限設定をサポートしています。権限が false に設定されている場合、制限対象のコマンドは登録されません。--help や sol <group> --help に表示されず、実行すると「unknown command」が返されます。

すべての権限はデフォルトで true です(省略時は許可)。読み取り専用の設定例:

[permissions]
canTransfer = false
canSwap = false
canStake = false
canWithdrawStake = false
canLend = false
canWithdrawLend = false
canBorrow = false
canBurn = false
canCreateWallet = false
canRemoveWallet = false
canExportWallet = false
canFetch = false
権限制限対象のサブコマンド
canTransfertoken send
canSwaptoken swap、token close --all、token dca new/cancel、token limit new/cancel
canStakestake new
canWithdrawStakestake withdraw、stake claim-mev
canLendlend deposit、earn deposit、lp deposit、lp farm stake、lp create
canWithdrawLendlend withdraw、earn withdraw、lp withdraw、lp claim、lp farm unstake/harvest
canBorrowlend borrow、lend repay
canBurntoken burn、token close --burn
canCreateWalletwallet create、wallet import
canRemoveWalletwallet remove
canExportWalletwallet export
canFetchfetch(x402 決済)

読み取り専用コマンド(token browse/price/info/list、wallet list/balance、stake list、lend rates/positions、earn list/positions、lp pools/info/positions/configs/farm list、portfolio、network、tx)は、権限にかかわらず常に使用できます。

セキュリティ制御

CLI は、エージェント主導のワークフローに対して、権限(許可される操作)、トランザクション上限(使用できる金額)、許可リスト(許可されるアドレスとトークン)の3層の保護を提供します。

セキュリティの設定

エージェントがセキュリティ設定を構成し、その後ユーザーが確認してロックできます。

# 1. Set permissions
sol config set permissions.canSwap true
sol config set permissions.canTransfer false

# 2. Set transaction limits
sol config set limits.maxTransactionUsd 500
sol config set limits.maxDailyUsd 2000

# 3. Set allowlists
sol config set allowlist.tokens So11111111111111111111111111111111111111112,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263
sol config set allowlist.addresses DRtXHDgC312wpNdNCSb8vCoXDcofCJcPHdAynKGz7Vr,7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU

# 4. Review — confirm everything looks right before locking
sol config status

# 5. Lock — prevents all further changes via CLI
sol config lock

ロック後、セキュリティ設定を変更できるのは、人が ~/.sol/config.toml を直接編集した場合のみです。

トランザクション上限
設定説明
limits.maxTransactionUsd1回のトランザクションあたりの最大 USD 額です。未設定の場合、上限はありません。
limits.maxDailyUsd直近24時間の累計使用額の上限です。未設定の場合、上限はありません。

上限は、token swap、token send、stake new、lend deposit、lend borrow、DCA の作成、指値注文の作成に適用されます。自身のウォレットへの出金、MEV 報酬の請求、読み取り操作には適用されません。

アドレス許可リスト

allowlist.addresses — ウォレットアドレスをカンマ区切りで指定します。設定すると、送信先(token send)は、指定したアドレスとローカルのウォレットデータベース内のすべてのウォレットに制限されます(自身のウォレットは常に許可されます)。空または未設定の場合、制限はありません。

トークン許可リスト

allowlist.tokens — トークンのシンボルまたはミントアドレスをカンマ区切りで指定します。設定すると、スワップ、DCA の作成、指値注文では、入力トークンと出力トークンの両方がリストに含まれている必要があります。空または未設定の場合、すべてのトークンが許可されます。

セキュリティ状態の確認
sol config status              # human-readable security overview
sol config status --json       # structured output for agents

セキュリティの全体像として、すべての権限とその有効状態、現在の直近24時間の使用額を含むトランザクション上限、アドレスとトークンの許可リスト、設定がロックされているかどうか、潜在的なリスクに関する警告(例:上限が未設定、パブリック RPC を使用中)を表示します。エージェントは、何が許可されているかを把握するために config.toml を直接読むのではなく、sol config status を使用してください。

重要:ファイルシステムへのアクセス

エージェントに ~/.sol/ への読み取りまたは書き込みアクセスを許可しないでください。 このディレクトリには、秘密鍵とセキュリティ設定が含まれています。エージェントは sol CLI コマンドを通じてのみ Solana を操作し、設定ファイルや鍵ファイルを直接読み取ってはなりません。セキュリティの設定を支援した後は、sol config lock で設定をロックし、~/.sol/ へのファイルシステムアクセスを制限するようユーザーに勧めてください。

セキュリティモデル

秘密鍵は ~/.sol/wallets/ にファイルとして保存されます。CLI はトランザクションの署名時にそれらを読み込みます。秘密鍵が環境変数として公開されたり、標準出力に出力されたりすることはありません。このツールを使用する LLM エージェントが生の鍵データを読み取るには、ファイルを明示的に開く必要があり、標準の権限モードではユーザーの承認が求められます。

権限、制限、許可リストが連携して、CLI で実行できる操作を制御します。エージェントは、権限が有効になっており、制限と許可リストのチェックを通過したうえで、CLI を呼び出すたびにユーザーの承認を得る必要があります。

これらの対策で保護されないもの: これらの制御は、CLI とエージェントの権限レベルで機能します。同じマシン上の他のソフトウェアが鍵ファイルを読み取ることは防げません。同じ OS ユーザーアカウントで実行されるツール、MCP サーバー、プラグイン、スクリプトは、~/.sol/wallets/ を直接読み取ることができます。エージェントに追加のツールへのアクセスを許可すると、特に任意のファイルを読み取ったり、シェルコマンドを実行したりできるツールを許可した場合、それらのツールは Sol CLI の権限に関係なく秘密鍵を抽出できます。

ウォレットの残高はリスクに応じた適切な額に保ってください。エージェントを使用するワークフローには資金を限定した専用ウォレットを使用し、自動化ツールがアクセスできる鍵ファイルに多額の資産を保管しないでください。

トラブルシューティング

よくある問題(RPC のレート制限、 トークンの解決、トランザクションのタイムアウト)については、references/troubleshooting.md を参照してください。

コメント