imthatcarlos

Solana Swaps

專業領域v0.1.0
作者:imthatcarlos更新於 2026-05-18solana-swaps@clawhub_imthatcarlos/solana-swaps
金融分析#Wallet

據 AlphaMoat 統計,截至 2026-09,Solana Swaps 累計下載 3,264 次、獲 0 個星標,在全部 5,078 個 AI 技能中排名第 3,486 位,在「專業領域」分類(465 個)中排名第 284 位。

累計安裝
103
累計下載
3264
星標
-
全站排名
#3,486
全站前 69% · 「專業領域」前 62%
平台累計安裝累計下載星標評論
ClawHub ↗1033098--
SkillHub ↗1033264-—

各平台的計數口徑不同,統計時間不一致。

這個技能是做什麼的

它描述獲取報價、構建交易、使用本地 keypair 簽名並提交交易的流程,並要求展示兌換詳情、價格影響、滑點和最低到賬量後等待明確確認。該流程涉及私鑰、即時市場價格、網路費用及不可逆資金交易;不要暴露金鑰,且每次交換前都需核實報價並取得針對該筆交易的明確授權。

資料釋出於 2026-10-29

可以用來做什麼

  • 讀取指定 Solana 錢包的 SOL 或代幣餘額。
  • 獲取代幣兌換報價並檢查價格影響和滑點引數。
  • 在確認後再構建、簽名和提交交換交易。

什麼時候用

  • 需要檢視錢包餘額或瞭解代幣兌換步驟時。
  • 準備執行交換前,需要核實幣種、數量、報價、費用及滑點時。
  • 涉及任何簽名或提交資金交易前,需要使用者對具體交易明確確認時。

示例提示詞

以下是根據技能文件生成的示例,不代表實際執行結果。

只解釋如何檢查錢包餘額,不讀取金鑰或連線網路。
列出這筆擬議交換需要展示和核實的資訊,但不要構建、簽名或提交交易。

月度資料趨勢

累計下載3264
2007268233572026-03 · 累計下載 21002026-05 · 累計下載 26322026-07 · 累計下載 29492026-08 · 累計下載 30242026-09 · 累計下載 326426-0326-09
星標-
0112026-03 · 星標 -2026-05 · 星標 -2026-07 · 星標 -2026-08 · 星標 -2026-09 · 星標 -26-0326-09

2026-09 起統計方法調整:同名技能按作者分別統計,並覆蓋全部技能。圖中虛線為調整前的月份,與之後的資料不直接比較,也不計算跨越調整的增長。

月份累計下載環比星標
2026-093264—-
2026-083024+2.5%-
2026-072949—-
2026-052632—-
2026-032100—-

SKILL.md 原文

以下是作者釋出的原始檔案,按純文字顯示,本站未做修改或稽核;其中的連結不可點選,命令請核實後再執行。抓取於 2026-10-23。

6.4 KB · ClawHub v0.1.0
---
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.
展開全部(共 195 行)
## 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

「專業領域」分類下的熱門技能

資料月份:2026-09 · 下載/星標/安裝數聚合自公開技能註冊庫(ClawHub、SkillHub),按月更新。口徑說明見資料方法。