ビルダーのための
Jupiter ワークショップ

Agent Skillsで爆速開発

© Jupiter × SuzuPay | Clawathon Tokyo Edition
Opening

自己紹介

asuma
© Jupiter × SuzuPay | Clawathon Tokyo Edition
Opening

本日の流れ

Section Time 内容 目的
1 5 min API / Why Jupiter Jupiterの強みを掴む
2 5 min Jupiter Agent Skills 開発加速の仕組みを理解する
3 20 min デモ Agent実装フローを見る
4 15 min 最小実装 Swap / Lend / Recurring の基本形
5 10 min 実務の注意点 Error handling と hardening の要点
6 5 min Q&A / Closing 質疑応答と参考資料確認
© Jupiter × SuzuPay | Clawathon Tokyo Edition
Opening

Jupiter API

© Jupiter × SuzuPay | Clawathon Tokyo Edition
Opening
© Jupiter × SuzuPay | Clawathon Tokyo Edition
Opening

Why Jupiter? ビルダー視点の 3 つの強み

01流動性の集約

  • Metis / JupiterZ / DFlow / OKX など複数ルーターを 1 つの API で扱える
  • 最良レート探索と route selection を自前実装しなくてよい
  • Swap 以外にも Trigger / Recurring / Lend / Price / Tokens が揃っている

02実装しやすい API

  • Ultra Swap は GET /order → 署名 → POST /execute の明快な流れ
  • x-api-key を前提に REST で統一されている
  • ハッカソンで必要な「まず動かす」までが速い

03Agent Skills と相性が良い

  • API 選定、認証、gotchas、retry 方針をまとめて agent に渡せる
  • ドキュメントを毎回読み直さずに統合コードを書き始められる
  • 実装スピードと正確性を同時に上げやすい
© Jupiter × SuzuPay | Clawathon Tokyo Edition

SECTION 2

Jupiter Agent Skills とは

© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 2

Skills for AI coding agents to integrate with the Jupiter ecosystem.

基本的にはcoding agentがJupiter APIのintegrationをしやすくするためのskillで、4つのSKILL.mdからなる

© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 2
  • integrate-jupiter
    • jupiter apiのintegrationに関する一般的なskill
  • jupiter-lend
    • lending機能のintegrateに特に特化したskill
  • jupiter-swap-migration
    • 既存実装をJupiter Swap V2 APIにmigrateするためのskill
  • jupiter-vrfd
    • Jupiter Token Verificationを扱うためのskill
© Jupiter × SuzuPay | Clawathon Tokyo Edition

SECTION 3

デモ

© Jupiter × SuzuPay | Clawathon Tokyo Edition

SECTION 4

最小実装ハンズオン

© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 4

1. Setup

  1. portal.jup.agにアクセスしAPI keyを取得
export JUPITER_API_KEY="your api key"
# or using dotenvx
curl -sfS https://dotenvx.sh | sh
dotenvx set JUPITER_API_KEY ${your_api_key} --env-file .env.encrypted

などで環境変数に値をset

© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 4

2. OpenClawにagentを追加

openclaw agents add jupiter-demo \
  --workspace ./examples/openclaw \
  --non-interactive

openclaw agents set-identity \
  --workspace ./examples/openclaw \
  --from-identity
© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 4

3. OpenClawをworkspace内で起動

cd ./examples/openclaw

openclaw tui
© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 4

4. OpenClaw経由でswapを実行する

prompt例

SOLを1USDCにswapしてください
© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 4

5. OpenClaw経由でlendを実行する

prompt例

最小額のdeposit額をlendしてください
© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 4

6. OpenClaw経由でscheduling orderを実行する

prompt例

scheduling orderでdcaを実行してください
© Jupiter × SuzuPay | Clawathon Tokyo Edition

SECTION 5

実務上の注意点 / Advanced Topics

© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 5

実務上の注意点 / Advanced Topics

  1. 秘密鍵の扱い
  2. Error Handling
  3. Latency and Server Locations
© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 5

1. 秘密鍵の扱い

  • .envなどのファイルに書くと最近のAIはgitignoreしたりしても結構中身を普通に読んでくる
  • dotenvxで暗号化して保存し実行時に復号化
  • cli.jsonなどでpermissionを設定
    • "deny": [
            "Bash(dotenvx get *)",
            "Bash(dotenvx decrypt *)",
            "Read(.env.keys)",
            "Read(/**/.env.keys)",
            "Write(.env.keys)",
            "Write(/**/.env.keys)"
          ]
      
© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 5

2. Error Handling

説明
TTL(有効期限) 署名済みTxは約2分で失効 → 再クォート必須
冪等性 同じ requestId + signedTx で2分以内なら再送可
Rate Limit 50 req / 10s 基本。Retry-After ヘッダーを必ず確認
署名エラー(-1003) 全必要署名者が揃っているか確認
/build/execute 混用 /build の Tx は自前RPC経由のみ。/execute に渡すと失敗
payer 指定時 ルートが Metis のみに限定(JupiterZ / DFlow 除外)
© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 5

2. Error Handling

エラーコード対応表

Code 分類 対処法 Retry
-1 オーダー失効 再クォート
-1000 ランディング失敗 パラメータ調整して再試行
-1001 不明エラー 指数バックオフで再試行
-1003 署名不足 全署名者を確認
-1004 Blockhash失効 再クォート(TTL切れ)
-2003 クォート失効(RFQ) 再クォート
429 Rate Limit超過 Retry-After 後に再試行
© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 5

2. Error Handling

リトライ戦略

async function withRetry(fn, max = 3) {
  for (let i = 0; i < max; i++) {
    try { return await fn(); }
    catch (err) {
      const retry = [-1, -1000, -1001,
        -1004, -2003, 429].includes(err.code);
      if (!retry || i === max - 1) throw err;
      const ms = 2 ** i * 1000 + Math.random() * 1000;
      await sleep(ms);
      if ([-1, -1004, -2003].includes(err.code))
        await reQuote();
    }
  }
}

タイムアウト目安: クォート 5s / 実行 30s / 合計オペレーション 60s

© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 5

2. Error Handling

本番投入チェックリスト

項目 内容
APIキー検証 起動時に x-api-key 未設定なら即 Fail Fast
タイムアウト設定 全 fetch 呼び出しに AbortController を追加
リトライ対象の分類 retryable / non-retryable をエラーコードで判定
requestId のロギング 全APIコールの requestId + status をログに記録
冪等性の確認 再送前に同Txが確定していないかチェック
Slippage 上限設定 アプリ設定から最大スリッページを強制
残高・アドレス検証 実行前に mint アドレスと残高を確認
© Jupiter × SuzuPay | Clawathon Tokyo Edition
Section 5

Latency and Server Locations

Jupiter APIはrpc nodeへのtxの送信まで行ってくれる便利なサービスです。
ただし自分のアプリケーションからjupiter api serverまでの距離はdeployしているcloudやSaaSのregionによって変わってきます。

  • Asia-Pacific: Singapore (ap-southeast-1) or Tokyo (ap-northeast-1)
  • Europe: Frankfurt (eu-central-1)
  • Americas: Virginia (us-east-1), Oregon (us-west-2), or São Paulo (sa-east-1)
© Jupiter × SuzuPay | Clawathon Tokyo Edition

Thank You For Listening

© Jupiter × SuzuPay | Clawathon Tokyo Edition

Support from Jupiter

© Jupiter × SuzuPay | Clawathon Tokyo Edition

Support from Jupiter

© Jupiter × SuzuPay | Clawathon Tokyo Edition

Support from Jupiter

Developer plan 3ヶ月分のクレジットを無料で配布中!

下記のQRコードから申請フォームにアクセスし、フォームを入力してください
応募フォーム QRコード
© Jupiter × SuzuPay | Clawathon Tokyo Edition
Closing

参考資料

© Jupiter × SuzuPay | Clawathon Tokyo Edition

基本的にはこれ単体でopenclawに入れれば何でも動く、みたいなskillではなくこのskillをClaude CodeやCodexなどに与えて使用するイメージ

Jupiter Token Verificationは何かDex Paidみたいな感じで1000JUPでtokenの認証ができるサービス

実際にCursor, Claudeなどのcoding agentを使ってjupiterでswapなどを実行するscriptを書いてもらい実行する

実際に受講者が手を動かして実装するsection

Openclawのworkspaceを作るのがいいかな、swap, lendとかできて、DCAの自動化もOpenclawでやるみたいな

AIで開発する時代、手を動かして実装するハンズオンとかって意味ない気するな 今回はopenclawで動かすことを目標にしよう

ここは無料クレジット対象のkeyがその場で配られるかも

dcaは100USDCがminimum, 2回分割の50USDC / order

このwithRetryという実装はskillの中にsample codeが載っています

$25するDeveloper plan 3ヶ月分のcreditを無料配布