💼 Jupiter Skill
Solanaブロックチェーン上でJupiterのAPIを使い、トーク
📺 まず動画で見る(YouTube)
▶ 【自動化】AIガチ勢の最新活用術6選がこれ1本で丸分かり!【ClaudeCode・AIエージェント・AI経営・Skills・MCP】 ↗
※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。
📜 元の英語説明(参考)
Execute Jupiter API operations on Solana - fetch quotes, sign transactions, execute swaps, prediction markets. Use when implementing token swaps, DCA, limit orders, lending, prediction markets, or any Jupiter integration. Includes scripts for Ultra and Metis swap flows.
🇯🇵 日本人クリエイター向け解説
Solanaブロックチェーン上でJupiterのAPIを使い、トーク
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o jupiter-skill.zip https://jpskill.com/download/4942.zip && unzip -o jupiter-skill.zip && rm jupiter-skill.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/4942.zip -OutFile "$d\jupiter-skill.zip"; Expand-Archive "$d\jupiter-skill.zip" -DestinationPath $d -Force; ri "$d\jupiter-skill.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
jupiter-skill.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
jupiter-skillフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 7
💬 こう話しかけるだけ — サンプルプロンプト
- › Jupiter Skill で、私のビジネスを分析して改善案を3つ提案して
- › Jupiter Skill を使って、来週の会議用の資料を作って
- › Jupiter Skill で、現状の課題を整理してアクションプランに落として
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Claude が読む原文 SKILL.md(中身を展開)
この本文は AI(Claude)が読むための原文(英語または中国語)です。日本語訳は順次追加中。
Jupiter API Skill
Execute Jupiter API operations through 4 utility scripts for fetching data, signing transactions, and executing swaps on Solana.
Base URL: https://api.jup.ag
Quick Reference
| Task | Script | Example |
|---|---|---|
| Fetch any Jupiter API | fetch-api.ts |
pnpm fetch-api -e /ultra/v1/search -p '{"query":"SOL"}' |
| Sign a transaction | wallet-sign.ts |
pnpm wallet-sign -t "BASE64_TX" -w ~/.config/solana/id.json |
| Execute Ultra order | execute-ultra.ts |
pnpm execute-ultra -r "REQUEST_ID" -t "SIGNED_TX" |
| Send tx to RPC | send-transaction.ts |
pnpm send-transaction -t "SIGNED_TX" |
Setup
Install dependencies before using scripts:
cd /path/to/jup-skill
pnpm install
Run pnpm install once per clone (and again after dependency changes) before any pnpm fetch-api, pnpm wallet-sign, pnpm execute-ultra, or pnpm send-transaction command.
API Key Setup
ALWAYS required. All Jupiter API endpoints require an x-api-key header.
- Visit portal.jup.ag
- Create account and generate API key
- Set via environment variable (recommended):
export JUP_API_KEY=your_api_key_hereOr pass via
--api-keyflag on each command.
Wallet Safety
Signing requires access to a local Solana wallet JSON file (--wallet), which contains private key material.
- Do not use a high-value wallet for automation.
- Prefer a dedicated low-balance wallet for this workflow.
- For testing, prefer ephemeral keys.
- If your setup supports it, prefer hardware signing over raw key files.
Scripts
fetch-api.ts
Fetch data from any Jupiter API endpoint.
# Search for tokens
pnpm fetch-api -e /ultra/v1/search -p '{"query":"SOL"}'
# Get Ultra swap order (quote + unsigned transaction)
pnpm fetch-api -e /ultra/v1/order -p '{
"inputMint": "So11111111111111111111111111111111111111112",
"outputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "1000000",
"taker": "YOUR_WALLET_ADDRESS"
}'
# Get Metis quote
pnpm fetch-api -e /swap/v1/quote -p '{
"inputMint": "So11111111111111111111111111111111111111112",
"outputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "1000000",
"slippageBps": "50"
}'
# POST request (for Metis swap transaction)
pnpm fetch-api -e /swap/v1/swap -m POST -b '{
"quoteResponse": {...},
"userPublicKey": "YOUR_WALLET"
}'
Arguments:
-e, --endpoint(required): API path, e.g.,/ultra/v1/order-p, --params: Query params (GET) or body (POST) as JSON string-b, --body: Request body for POST requests-m, --method: HTTP method,GET(default) orPOST-k, --api-key: API key (or useJUP_API_KEYenv var)
wallet-sign.ts
Sign transactions using a local wallet file.
SECURITY NOTE: The
--walletflag is required. This script does not accept private keys via command line arguments to prevent exposure in shell history and process listings.
# Using Solana CLI wallet (JSON array format)
pnpm wallet-sign -t "BASE64_UNSIGNED_TX" --wallet ~/.config/solana/id.json
# Tilde expansion is supported
pnpm wallet-sign -t "BASE64_UNSIGNED_TX" --wallet ~/my-wallets/trading.json
Arguments:
-t, --unsigned-tx(required): Base64-encoded unsigned transaction-w, --wallet(required): Path to Solana CLI JSON wallet file (supports ~ for home directory)
Output: Signed transaction (base64) to stdout.
execute-ultra.ts
Execute Ultra orders after signing.
pnpm execute-ultra -r "REQUEST_ID_FROM_ORDER" -t "BASE64_SIGNED_TX"
Arguments:
-r, --request-id(required): Request ID from/ultra/v1/orderresponse-t, --signed-tx(required): Base64-encoded signed transaction-k, --api-key: API key (or useJUP_API_KEYenv var)
Output: Execution result JSON including signature and status.
send-transaction.ts
Send signed transactions to Solana RPC. Use for Metis swaps (Ultra handles RPC internally).
Warning: The default public Solana RPC (
api.mainnet-beta.solana.com) is rate-limited and unreliable for production use. Use a dedicated RPC provider (Helius, QuickNode, Triton, etc.) for production applications.
# Default RPC (mainnet-beta)
pnpm send-transaction -t "BASE64_SIGNED_TX"
# Custom RPC
pnpm send-transaction -t "BASE64_SIGNED_TX" -r "https://your-rpc.com"
# With environment variable
export SOLANA_RPC_URL="https://your-rpc.com"
pnpm send-transaction -t "BASE64_SIGNED_TX"
Arguments:
-t, --signed-tx(required): Base64-encoded signed transaction-r, --rpc-url: RPC endpoint (default:https://api.mainnet-beta.solana.com)--skip-preflight: Skip preflight checks (faster, less safe)--max-retries: Max send retries (default: 3)
Output: Transaction signature to stdout.
Workflows
Ultra Swap (Recommended)
Ultra is RPC-less, gasless, with automatic slippage optimization.
Ultra Swap Progress:
- [ ] Step 1: Get order from /ultra/v1/order
- [ ] Step 2: Sign the transaction
- [ ] Step 3: Execute via /ultra/v1/execute
- [ ] Step 4: Verify result
Step 1: Get Order
ORDER=$(pnpm fetch-api -e /ultra/v1/order -p '{
"inputMint": "So11111111111111111111111111111111111111112",
"outputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "1000000",
"taker": "YOUR_WALLET_ADDRESS"
}')
echo "$ORDER"
Response contains requestId and transaction (base64 unsigned).
Step 2: Sign Transaction
Extract transaction from response and sign:
UNSIGNED_TX=$(echo "$ORDER" | jq -r '.transaction')
SIGNED_TX=$(pnpm wallet-sign -t "$UNSIGNED_TX" -w ~/.config/solana/id.json)
Step 3: Execute Order
REQUEST_ID=$(echo "$ORDER" | jq -r '.requestId')
pnpm execute-ultra -r "$REQUEST_ID" -t "$SIGNED_TX"
Step 4: Verify
Check the signature on Solscan.
Metis Swap (Advanced)
Use Metis when you need custom transaction composition or fine-grained control.
Metis Swap Progress:
- [ ] Step 1: Get quote from /swap/v1/quote
- [ ] Step 2: Build transaction via /swap/v1/swap
- [ ] Step 3: Sign the transaction
- [ ] Step 4: Send to RPC
- [ ] Step 5: Verify on-chain
Step 1: Get Quote
QUOTE=$(pnpm fetch-api -e /swap/v1/quote -p '{
"inputMint": "So11111111111111111111111111111111111111112",
"outputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "1000000",
"slippageBps": "50"
}')
Step 2: Build Transaction
SWAP_TX=$(pnpm fetch-api -e /swap/v1/swap -m POST -b "{
\"quoteResponse\": $QUOTE,
\"userPublicKey\": \"YOUR_WALLET_ADDRESS\",
\"dynamicComputeUnitLimit\": true,
\"prioritizationFeeLamports\": \"auto\"
}")
Step 3: Sign
UNSIGNED_TX=$(echo "$SWAP_TX" | jq -r '.swapTransaction')
SIGNED_TX=$(pnpm wallet-sign -t "$UNSIGNED_TX" --wallet ~/.config/solana/id.json)
Step 4: Send to RPC
pnpm send-transaction -t "$SIGNED_TX" -r "https://your-rpc.com"
Step 5: Verify
Check signature on Solscan.
Prediction Markets (Beta)
Trade on real-world event outcomes. Contracts trade $0-$1 USD, with prices reflecting outcome probability.
Prediction Market Flow:
- [ ] Step 1: Browse events/markets
- [ ] Step 2: Create order (buy YES/NO contracts)
- [ ] Step 3: Sign and send transaction
- [ ] Step 4: Monitor position
- [ ] Step 5: Claim winnings (if correct)
Step 1: Browse Events
# Search for events
pnpm fetch-api -e /prediction/v1/events/search -p '{"query":"election","limit":"10"}'
# List all events
pnpm fetch-api -e /prediction/v1/events -p '{"category":"politics","includeMarkets":"true"}'
# Get specific event with markets
pnpm fetch-api -e /prediction/v1/events/{eventId} -p '{"includeMarkets":"true"}'
Step 2: Create Order
# Buy YES contracts on a market
ORDER=$(pnpm fetch-api -e /prediction/v1/orders -m POST -b '{
"ownerPubkey": "YOUR_WALLET_ADDRESS",
"marketId": "MARKET_ID",
"isYes": true,
"isBuy": true,
"contracts": 10,
"maxBuyPriceUsd": 0.65
}')
Response contains transaction (base64 unsigned) and order details.
Step 3: Sign and Send
UNSIGNED_TX=$(echo "$ORDER" | jq -r '.transaction')
SIGNED_TX=$(pnpm wallet-sign -t "$UNSIGNED_TX" -w ~/.config/solana/id.json)
pnpm send-transaction -t "$SIGNED_TX" -r "YOUR_RPC_URL"
Step 4: Monitor Position
# List your positions
pnpm fetch-api -e /prediction/v1/positions -p '{"ownerPubkey":"YOUR_WALLET_ADDRESS"}'
# Get specific position
pnpm fetch-api -e /prediction/v1/positions/{positionPubkey}
# View order history
pnpm fetch-api -e /prediction/v1/history -p '{"ownerPubkey":"YOUR_WALLET_ADDRESS"}'
Step 5: Claim Winnings
After market resolves, claim payout for winning positions:
CLAIM=$(pnpm fetch-api -e /prediction/v1/positions/{positionPubkey}/claim -m POST -b '{
"ownerPubkey": "YOUR_WALLET_ADDRESS"
}')
UNSIGNED_TX=$(echo "$CLAIM" | jq -r '.transaction')
SIGNED_TX=$(pnpm wallet-sign -t "$UNSIGNED_TX" -w ~/.config/solana/id.json)
pnpm send-transaction -t "$SIGNED_TX" -r "YOUR_RPC_URL"
Prediction API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /prediction/v1/events |
List events with filters |
| GET | /prediction/v1/events/search |
Search events by query |
| GET | /prediction/v1/events/{eventId} |
Get event details |
| GET | /prediction/v1/markets/{marketId} |
Get market details |
| GET | /prediction/v1/orderbook/{marketId} |
Get orderbook |
| POST | /prediction/v1/orders |
Create order (returns unsigned tx) |
| DELETE | /prediction/v1/orders |
Close/cancel order |
| GET | /prediction/v1/positions |
List user positions |
| DELETE | /prediction/v1/positions/{positionPubkey} |
Sell position |
| POST | /prediction/v1/positions/{positionPubkey}/claim |
Claim winnings |
| GET | /prediction/v1/leaderboards |
View leaderboards |
| GET | /prediction/v1/profiles/{ownerPubkey} |
User profile stats |
Key Concepts
- Contracts: Trade in units, each worth $0-$1 based on probability
- YES/NO: Binary outcomes - buy YES if you think event happens, NO otherwise
- Settlement: Winning contracts pay $1, losing contracts pay $0
- No claim fees: Winners receive full $1 per contract
Jupiter Lend
Deposit tokens to earn yield or borrow against collateral.
Deposit (Earn)
# Get deposit transaction
DEPOSIT=$(pnpm fetch-api -e /lend/v1/earn/deposit -m POST -b '{
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "1000000",
"signer": "YOUR_WALLET_ADDRESS"
}')
# Sign and send
UNSIGNED_TX=$(echo "$DEPOSIT" | jq -r '.transaction')
SIGNED_TX=$(pnpm wallet-sign -t "$UNSIGNED_TX" -w ~/.config/solana/id.json)
pnpm send-transaction -t "$SIGNED_TX" -r "YOUR_RPC_URL"
Withdraw
WITHDRAW=$(pnpm fetch-api -e /lend/v1/earn/withdraw -m POST -b '{
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "1000000",
"signer": "YOUR_WALLET_ADDRESS"
}')
# Sign and send as above
Portfolio API
Track DeFi positions, platform info, and staked JUP across Solana.
Get Positions
Fetch all positions for a wallet address across Jupiter products.
# Get all positions
pnpm fetch-api -e /portfolio/v1/positions/YOUR_WALLET_ADDRESS
# Filter by specific platforms
pnpm fetch-api -e /portfolio/v1/positions/YOUR_WALLET_ADDRESS -p '{"platforms":"jupiter-exchange,jupiter-governance"}'
Response includes:
elements: Array of position types (Multiple, Liquidity, Leverage, BorrowLend, Trade)tokenInfo: Token metadata indexed by network and addressfetcherReports: Status of each data fetcher
Get Platforms
List all available platforms tracked by the Portfolio API.
pnpm fetch-api -e /portfolio/v1/platforms
Response includes platform details:
id: Platform identifier (e.g.,jupiter-exchange)name: Display nameimage: Logo URLdescription: Platform summarydefiLlamaId: DefiLlama referenceisDeprecated: Whether platform is deprecatedtags: Categorization tagslinks: Social/web links (website, discord, twitter, github, docs)
Get Staked JUP
Check staked JUP amounts and pending unstaking for a wallet.
pnpm fetch-api -e /portfolio/v1/staked-jup/YOUR_WALLET_ADDRESS
Response:
{
"stakedAmount": 15000.5,
"unstaking": [
{
"amount": 500,
"until": 1711000000000
}
]
}
stakedAmount: Total staked JUPunstaking: Pending unstakes with amount and completion timestamp (ms)
Trigger API (Limit Orders)
Create orders that execute automatically when price conditions are met.
Create Limit Order
ORDER=$(pnpm fetch-api -e /trigger/v1/createOrder -m POST -b '{
"inputMint": "So11111111111111111111111111111111111111112",
"outputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"maker": "YOUR_WALLET_ADDRESS",
"payer": "YOUR_WALLET_ADDRESS",
"params": {
"makingAmount": "1000000000",
"takingAmount": "150000000",
"expiredAt": null
}
}')
# Sign and send
UNSIGNED_TX=$(echo "$ORDER" | jq -r '.transaction')
SIGNED_TX=$(pnpm wallet-sign -t "$UNSIGNED_TX" -w ~/.config/solana/id.json)
pnpm send-transaction -t "$SIGNED_TX" -r "YOUR_RPC_URL"
Parameters:
makingAmount: Amount of input token to sell (in smallest units)takingAmount: Minimum amount of output token to receiveexpiredAt: Unix timestamp for expiration (null = no expiry)slippageBps: Optional slippage tolerance (0 = exact price only)
Get Orders
# Get active orders
pnpm fetch-api -e /trigger/v1/getTriggerOrders -p '{"user":"YOUR_WALLET","orderStatus":"active"}'
# Get order history
pnpm fetch-api -e /trigger/v1/getTriggerOrders -p '{"user":"YOUR_WALLET","orderStatus":"history","page":"1"}'
Cancel Order
# Cancel single order
CANCEL=$(pnpm fetch-api -e /trigger/v1/cancelOrder -m POST -b '{
"maker": "YOUR_WALLET_ADDRESS",
"order": "ORDER_ACCOUNT_ADDRESS",
"computeUnitPrice": "auto"
}')
# Sign and send transaction
# Cancel all orders (batched in groups of 5)
CANCEL_ALL=$(pnpm fetch-api -e /trigger/v1/cancelOrders -m POST -b '{
"maker": "YOUR_WALLET_ADDRESS",
"computeUnitPrice": "auto"
}')
Trigger API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /trigger/v1/createOrder |
Create limit order |
| GET | /trigger/v1/getTriggerOrders |
Get orders by wallet |
| POST | /trigger/v1/cancelOrder |
Cancel single order |
| POST | /trigger/v1/cancelOrders |
Cancel multiple orders (batched) |
Fees: 0.03% for stable pairs, 0.1% for other pairs.
Recurring API (DCA)
Automate recurring token purchases at specified intervals.
Create DCA Order
ORDER=$(pnpm fetch-api -e /recurring/v1/createOrder -m POST -b '{
"user": "YOUR_WALLET_ADDRESS",
"inputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"outputMint": "So11111111111111111111111111111111111111112",
"params": {
"time": {
"inAmount": "10000000",
"numberOfOrders": 10,
"interval": 86400,
"minPrice": null,
"maxPrice": null,
"startAt": null
}
}
}')
# Sign and send
UNSIGNED_TX=$(echo "$ORDER" | jq -r '.transaction')
SIGNED_TX=$(pnpm wallet-sign -t "$UNSIGNED_TX" -w ~/.config/solana/id.json)
pnpm send-transaction -t "$SIGNED_TX" -r "YOUR_RPC_URL"
Parameters:
inAmount: Total amount to spend (raw units)numberOfOrders: How many purchases to makeinterval: Seconds between purchases (86400 = daily)minPrice/maxPrice: Optional price bounds (null = any price)startAt: Unix timestamp to start (null = immediate)
Get Orders
# Get active DCA orders
pnpm fetch-api -e /recurring/v1/getRecurringOrders -p '{"user":"YOUR_WALLET","orderStatus":"active","recurringType":"time"}'
# Get order history
pnpm fetch-api -e /recurring/v1/getRecurringOrders -p '{"user":"YOUR_WALLET","orderStatus":"history","recurringType":"time","page":"1"}'
Cancel Order
CANCEL=$(pnpm fetch-api -e /recurring/v1/cancelOrder -m POST -b '{
"user": "YOUR_WALLET_ADDRESS",
"order": "ORDER_ACCOUNT_ADDRESS",
"recurringType": "time"
}')
# Sign and send transaction
Recurring API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /recurring/v1/createOrder |
Create DCA order |
| GET | /recurring/v1/getRecurringOrders |
Get orders by wallet |
| POST | /recurring/v1/cancelOrder |
Cancel order |
Fees: 0.1% per execution. Token2022 tokens NOT supported.
API Endpoints Reference
| Use Case | API | Endpoint |
|---|---|---|
| Token swaps (default) | Ultra | /ultra/v1/order, /ultra/v1/execute |
| Swaps with control | Metis | /swap/v1/quote, /swap/v1/swap |
| Limit orders | Trigger | /trigger/v1/createOrder, /trigger/v1/cancelOrder |
| Get limit orders | Trigger | /trigger/v1/getTriggerOrders |
| DCA orders | Recurring | /recurring/v1/createOrder, /recurring/v1/cancelOrder |
| Get DCA orders | Recurring | /recurring/v1/getRecurringOrders |
| Token search | Ultra | /ultra/v1/search |
| Token holdings | Ultra | /ultra/v1/holdings/{address} |
| Token warnings | Ultra | /ultra/v1/shield |
| Token prices | Price | /price/v3?ids={mints} |
| Token metadata | Tokens | /tokens/v2/search?query={query} |
| Portfolio positions | Portfolio | /portfolio/v1/positions/{address} |
| Portfolio platforms | Portfolio | /portfolio/v1/platforms |
| Staked JUP | Portfolio | /portfolio/v1/staked-jup/{address} |
| Prediction markets | Prediction | /prediction/v1/events, /prediction/v1/orders |
| Lending deposit | Lend | /lend/v1/earn/deposit |
| Lending withdraw | Lend | /lend/v1/earn/withdraw |
Caveats & Limitations
API Key & Rate Limits
| Tier | Rate Limit |
|---|---|
| Free | 60 requests/minute |
| Pro | Up to 30,000 requests/minute |
| Ultra | Dynamic scaling with executed swap volume |
Ultra rate limits increase as you execute more swaps. Base: 50 requests per 10-second window.
Fees
| API | Fee |
|---|---|
| Ultra | 5-10 basis points per swap |
| Metis | No Jupiter fee (you pay gas) |
Integrators can add custom fees (50-255 bps). Jupiter takes 20% of integrator fees.
Gasless Requirements
Ultra offers "gasless" swaps where Jupiter pays the transaction fees, but with important caveats:
- User still needs SOL for account rent (creating token accounts)
- User must sign the transaction (not truly "zero-touch")
- Minimum trade amount: ~$10 equivalent
- Automatic when taker has <0.01 SOL
- JupiterZ RFQ: market makers pay transaction fees
Transaction Size Limit
Solana transactions are limited to 1232 bytes. If you hit this:
- Reduce
maxAccountsparameter in quote request - Use
dynamicComputeUnitLimit: truefor Metis
Token Limitations
- Token2022: NOT supported for Recurring (DCA) orders
- Some tokens may have transfer fees or freeze authority
Ultra vs Metis
| Feature | Ultra | Metis |
|---|---|---|
| RPC required | No (Jupiter handles) | Yes (your RPC) |
| Gasless | Yes (conditions apply) | No |
| Custom instructions | No | Yes |
| Transaction composition | No | Yes |
| Slippage | Auto-optimized | Manual |
Use Ultra for most swaps. Use Metis only when you need to add custom instructions or compose transactions.
Common Errors
| Error | Cause | Fix |
|---|---|---|
TransactionExpiredBlockhashNotFound |
Blockhash expired | Request fresh order/quote |
SlippageToleranceExceeded |
Price moved too much | Increase slippage or retry |
InsufficientFunds |
Not enough SOL/tokens | Check balances |
RateLimited (429) |
Too many requests | Wait and retry, or upgrade tier |
InvalidSignature |
Wrong signer or corrupted tx | Verify wallet matches taker address |
Ultra Execute Error Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| -1 to -5 | Client/validation errors |
| -1000 to -1999 | Aggregator routing errors |
| -2000 to -2999 | RFQ (market maker) errors |
Environment Variables
| Variable | Description | Default |
|---|---|---|
JUP_API_KEY |
Jupiter API key | (required) |
SOLANA_RPC_URL |
RPC endpoint for send-transaction | https://api.mainnet-beta.solana.com |
Common Token Mints
| Token | Mint Address |
|---|---|
| SOL (wrapped) | So11111111111111111111111111111111111111112 |
| USDC | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
| USDT | Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB |
| JUP | JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN |
Resources
Freshness note: This skill includes Jupiter API guidance, but the API can change. After each new run/session, verify endpoints and params against the latest docs at dev.jup.ag.
Docs URLs for Claude Sync
Check these first on each run/session:
https://dev.jup.ag/llms.txthttps://dev.jup.ag/llms-full.txt
Then verify workflow-specific pages:
https://dev.jup.ag/get-started/index.mdhttps://dev.jup.ag/portal/setup.mdhttps://dev.jup.ag/portal/rate-limit.mdhttps://dev.jup.ag/portal/responses.mdhttps://dev.jup.ag/docs/ultra/index.mdhttps://dev.jup.ag/docs/ultra/get-started.mdhttps://dev.jup.ag/docs/ultra/get-order.mdhttps://dev.jup.ag/docs/ultra/execute-order.mdhttps://dev.jup.ag/docs/ultra/response.mdhttps://dev.jup.ag/docs/ultra/rate-limit.mdhttps://dev.jup.ag/docs/ultra/search-token.mdhttps://dev.jup.ag/docs/swap/index.mdhttps://dev.jup.ag/docs/swap/get-quote.mdhttps://dev.jup.ag/docs/swap/build-swap-transaction.mdhttps://dev.jup.ag/docs/swap/send-swap-transaction.mdhttps://dev.jup.ag/docs/swap/common-errors.mdhttps://dev.jup.ag/updates/index.md
Any Jupiter docs page can also be fetched as markdown by appending .md to the path.
- Jupiter Portal - API key management
- Jupiter Docs - Full documentation
- Status Page - API status
- Solscan - Transaction explorer
同梱ファイル
※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (22,981 bytes)
- 📎 README.md (5,818 bytes)
- 📎 scripts/execute-ultra.ts (4,756 bytes)
- 📎 scripts/fetch-api.ts (4,588 bytes)
- 📎 scripts/send-transaction.ts (5,280 bytes)
- 📎 scripts/utils.ts (1,776 bytes)
- 📎 scripts/wallet-sign.ts (4,273 bytes)