据 AlphaMoat 统计,截至 2026-09,Solana Swaps 累计下载 3,264 次、获 0 个星标,在全部 5,078 个 AI 技能中排名第 3,486 位,在「专业领域」分类(465 个)中排名第 284 位。
| 平台 | 累计安装 | 累计下载 | 星标 | 评论 |
|---|---|---|---|---|
| ClawHub ↗ | 103 | 3,098 | - | - |
| SkillHub ↗ | 103 | 3,264 | - | — |
各平台的计数口径不同,统计时间不一致。
它描述获取报价、构建交易、使用本地 keypair 签名并提交交易的流程,并要求展示兑换详情、价格影响、滑点和最低到账量后等待明确确认。该流程涉及私钥、实时市场价格、网络费用及不可逆资金交易;不要暴露密钥,且每次交换前都需核实报价并取得针对该笔交易的明确授权。
资料发布于 2026-10-29
以下是根据技能文档生成的示例,不代表实际运行结果。
2026-09 起统计方法调整:同名技能按作者分别统计,并覆盖全部技能。图中虚线为调整前的月份,与之后的数据不直接比较,也不计算跨越调整的增长。
| 月份 | 累计下载 | 环比 | 星标 |
|---|---|---|---|
| 2026-09 | 3,264 | — | - |
| 2026-08 | 3,024 | +2.5% | - |
| 2026-07 | 2,949 | — | - |
| 2026-05 | 2,632 | — | - |
| 2026-03 | 2,100 | — | - |
以下是作者发布的原始文件,按纯文本显示,本站未做修改或审核;其中的链接不可点击,命令请核实后再运行。抓取于 2026-10-23。
---
name: solana-swaps
description: Swap tokens on Solana via Jupiter aggregator and check wallet balances. Use when user wants to swap tokens, check SOL/token balance, or get swap quotes.
metadata: {"clawdbot":{"emoji":"💰","requires":{"bins":["solana","spl-token","curl","jq","node"],"env":["SOLANA_KEYPAIR_PATH"]}}}
---
# Solana Swaps
Manage your Solana wallet: check balances and swap tokens using the Jupiter aggregator.
## Environment Variables
These environment variables are pre-configured and available for use:
| Variable | Description |
|----------|-------------|
| `SOLANA_KEYPAIR_PATH` | Path to wallet keypair JSON file |
| `JUPITER_API_KEY` | Jupiter API key for authenticated requests (avoids platform fees, required for Token2022/pump.fun tokens) |
**Note:** These are already set in the skill config. Just use `$SOLANA_KEYPAIR_PATH` and `$JUPITER_API_KEY` directly in commands.
### Verify Setup
```bash
# Check wallet address
solana address --keypair "$SOLANA_KEYPAIR_PATH"
# Check Solana CLI config
solana config get
```
## Balance Checking
### Check SOL Balance
```bash
solana balance --keypair "$SOLANA_KEYPAIR_PATH"
```
### List All Token Accounts
```bash
spl-token accounts --owner $(solana address --keypair "$SOLANA_KEYPAIR_PATH")
```
### Check Specific Token Balance
```bash
spl-token balance <TOKEN_MINT_ADDRESS> --owner $(solana address --keypair "$SOLANA_KEYPAIR_PATH")
```
## Common Token Mint Addresses
| Token | Symbol | Mint Address | Decimals |
|-------|--------|-------------|----------|
| Wrapped SOL | SOL | So11111111111111111111111111111111111111112 | 9 |
| USD Coin | USDC | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v | 6 |
| Tether | USDT | Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB | 6 |
| Bonk | BONK | DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 | 5 |
| Jupiter | JUP | JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN | 6 |
| Raydium | RAY | 4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R | 6 |
## Token Swaps via Jupiter
**CRITICAL: Always display swap details and wait for explicit user confirmation before executing any swap.**
### Step 1: Get Quote
Convert human-readable amounts to raw units:
- SOL: multiply by 1,000,000,000 (10^9)
- USDC/USDT: multiply by 1,000,000 (10^6)
- BONK: multiply by 100,000 (10^5)
```bash
# Example: Get quote for swapping 1 SOL to USDC
INPUT_MINT="So11111111111111111111111111111111111111112"
OUTPUT_MINT="EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
AMOUNT="1000000000" # 1 SOL in lamports
SLIPPAGE_BPS="50" # 0.5% slippage
# Get quote with API key authentication
curl -s -H "x-api-key: $JUPITER_API_KEY" \
"https://api.jup.ag/swap/v1/quote?inputMint=${INPUT_MINT}&outputMint=${OUTPUT_MINT}&amount=${AMOUNT}&slippageBps=${SLIPPAGE_BPS}" | jq .
```
### Step 2: Display Quote and Request Confirmation
Parse the quote response and display to user:
- Input: amount and token name
- Output: expected amount and token name
- Price impact percentage
- Slippage tolerance
- Minimum received (otherAmountThreshold)
**IMPORTANT**: Ask user "Do you want to proceed with this swap?" and wait for explicit confirmation ("yes", "proceed", "confirm") before continuing.
### Step 3: Build Swap Transaction
After user confirms, request the swap transaction:
```bash
USER_PUBKEY=$(solana address --keypair "$SOLANA_KEYPAIR_PATH")
# Save quote response to file
QUOTE_FILE="/tmp/jupiter_quote.json"
curl -s -H "x-api-key: $JUPITER_API_KEY" \
"https://api.jup.ag/swap/v1/quote?inputMint=${INPUT_MINT}&outputMint=${OUTPUT_MINT}&amount=${AMOUNT}&slippageBps=${SLIPPAGE_BPS}" > "$QUOTE_FILE"
# Request swap transaction
curl -s -X POST \
-H "x-api-key: $JUPITER_API_KEY" \
-H "Content-Type: application/json" \
"https://api.jup.ag/swap/v1/swap" \
-d "{
\"quoteResponse\": $(cat $QUOTE_FILE),
\"userPublicKey\": \"${USER_PUBKEY}\",
\"dynamicComputeUnitLimit\": true,
\"prioritizationFeeLamports\": {
\"priorityLevelWithMaxLamports\": {
\"maxLamports\": 5000000,
\"priorityLevel\": \"high\"
}
}
}" > /tmp/jupiter_swap.json
# Extract the swap transaction
SWAP_TX=$(cat /tmp/jupiter_swap.json | jq -r '.swapTransaction')
```
### Step 4: Sign and Submit Transaction
Use the jupiter-swap.mjs script to sign and submit:
```bash
node "$(dirname "$0")/scripts/jupiter-swap.mjs" \
--keypair "$SOLANA_KEYPAIR_PATH" \
--transaction "$SWAP_TX"
```
The script will output the transaction signature and a Solscan link.
## Safety Rules
1. **ALWAYS** display swap details and wait for user confirmation before executing
2. **NEVER** execute swaps automatically without explicit approval
3. **ALWAYS** check balance before attempting swaps to ensure sufficient funds
4. **WARN** users if price impact exceeds 1%
5. **WARN** users if slippage is set above 1% (100 bps)
6. **NEVER** log, display, or transmit private key contents
## Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| "Insufficient balance" | Not enough input tokens | Check balance, reduce swap amount |
| "Slippage tolerance exceeded" | Price moved during swap | Get fresh quote, consider higher slippage |
| "Transaction expired" | Blockhash too old | Get fresh quote and retry immediately |
| "Account not found" | Missing token account | Token account will be created automatically |
| "Route not found" | No liquidity for pair | Try smaller amount or different token |
| "Platform fee not supported" | Token2022 tokens block platform fees | Use authenticated API with $JUPITER_API_KEY header |
### Retry Logic
If a swap fails due to network issues:
1. Wait 2-3 seconds
2. Get a fresh quote (prices may have changed)
3. Re-confirm with user showing new quote
4. Retry the swap
## Example Interactions
### Check Balance
User: "What's my SOL balance?"
1. Run: `solana balance --keypair "$SOLANA_KEYPAIR_PATH"`
2. Report: "Your wallet has X.XXX SOL"
### Swap Tokens
User: "Swap 0.5 SOL for USDC"
1. Get wallet address
2. Fetch Jupiter quote for 0.5 SOL (500000000 lamports) -> USDC
3. Display quote details:
- From: 0.5 SOL
- To: ~XX.XX USDC (estimated)
- Price Impact: X.XX%
- Minimum Received: XX.XX USDC
4. Ask: "Do you want to proceed with this swap?"
5. Wait for confirmation
6. On "yes": Execute swap, report transaction link
7. On "no": Acknowledge cancellation
### List All Tokens
User: "Show me all my tokens"
1. Run: `spl-token accounts --owner $(solana address --keypair "$SOLANA_KEYPAIR_PATH")`
2. Format and display token list with balances
基于 AkShare 库取 A 股行情、财务与板块数据的数据接口技能。
用自然语言查询东方财富的金融数据,结果落成 Excel 与 Markdown 表格。
协助整理中国专利相关材料、检索问题和技术说明草稿。
金融数据查询技能:基于 westock 命令行工具查询市场结构化数据。
以 Yahoo Finance 数据取报价与基本面,并生成带技术指标图表的本地行情分析技能。
按价值投资框架做 A 股与港股估值分析的技能。
查 A 股实时行情、拆解分时量能并管理持仓的分析脚本。
盯住自选股的行情与技术指标,触发条件时按级别推送预警消息。
数据月份:2026-09 · 下载/星标/安装数聚合自公开技能注册库(ClawHub、SkillHub),按月更新。口径说明见数据方法。