jingswap-cycle-agent について
jingswap-cycle-agent は、JingSwap の進行中サイクルを監視・分析する読み取り専用スキルです。Pyth の決済レートとリアルタイムの DEX 価格を比較し、条件を満たす場合は入金パラメーターを準備します。実行前に親エージェントの確認が必要です。
主な機能
- 01JingSwap のサイクル状態をリアルタイム取得
- 02Pyth レートと DLMM・XYK 価格の比較
- 03しきい値に基づく参加機会の評価
- 04親エージェント確認用の入金パラメーター作成
- 05状態とアクション結果を JSON で出力
活用シーン
- 01サイクルが入金受付中か監視
- 02DEX 価格に対するオラクル割引の評価
- 03人の承認を経て実行する STX 入金の準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aibtcdev/ skills --skill jingswap-cycle-agentインストール後、Claude Code で/jingswap-cycle-agentを入力して読み込まれたか確認します。
同梱ファイルAGENT.mdjingswap-cycle-agent.ts
詳細
jingswap-cycle-agent
機能
アクティブなJingSwapサイクルを監視し、Pythオラクルの決済レートが、現在のDEX価格と比べて有利なsBTC取得機会を提供しているかどうかを評価します。
| データソース | 取得するデータ | 重要な理由 |
|---|---|---|
sbtc-stx-jing-v2 コントラクト(Hiro読み取り専用API) | サイクルID、フェーズ、経過ブロック数、預け入れ額、最小額 | サイクルは預け入れフェーズですか? sBTCは利用可能ですか? |
| Pyth Hermesオラクル | BTC/USDとSTX/USDの現在価格 | オラクルのSTX/sBTC決済レートを算出します |
get-dlmm-price(コントラクト) | DLMMプール価格(1e10 / raw) | 比較対象となる最良のDEXレート |
get-xyk-price(コントラクト) | XYKプール価格(raw / 1e8) | 2つ目のDEXレートによる照合 |
JingSwapはDEXレートではなく、Pythオラクルレートで決済します。オラクルレートがDEXレートを下回る場合、STXを預け入れると市場で購入するより安くsBTCを取得できます。これが裁定機会です。このスキルは、その価格差をリアルタイムで定量化します。
エージェントに必要な理由
JingSwapのAPI(faktory-dao-backend.vercel.app)にはx-api-keyが必要です。このスキルは、公開Hiro読み取り専用エンドポイント経由でStacksコントラクトを直接読み取るため、APIを完全に回避します。認証情報は不要です。
analyzeコマンドは、サイクル状態と2つの価格ソースを単一のactionフィールドにまとめます。エージェントがコントラクトのエンコーディングやPythフィードIDを把握する必要はありません。
安全性に関する注意
doctor、status、analyzeは読み取り専用です。ウォレットは不要です。participate(--dry-runなし)はDEPOSIT_READYJSONペイロードを出力します。jingswap_deposit_stxを呼び出す前に、親エージェントが確認する必要があります。- メインネット専用です。JingSwap v2コントラクトはメインネット専用です。
- 常にコントラクトをライブで読み取り、サイクル状態をキャッシュすることはありません。
コマンド
doctor
HiroコントラクトAPIとPyth Hermesへの接続を確認します。
bun run jingswap-cycle-agent/jingswap-cycle-agent.ts doctor
出力:
{
"result": "ready",
"checks": {
"hiro_contract_api": "ok",
"pyth_hermes_api": "ok"
},
"contract": "SPV9K21TBFAK4KNRJXF5DFP8N7W46G4V9RCJDC22.sbtc-stx-jing-v2"
}
status
サイクル状態全体と価格スナップショットを取得します。
bun run jingswap-cycle-agent/jingswap-cycle-agent.ts status
出力:
{
"skill": "jingswap-cycle-agent",
"timestamp": "2026-03-29T15:22:18.792Z",
"contract": "SPV9K21TBFAK4KNRJXF5DFP8N7W46G4V9RCJDC22.sbtc-stx-jing-v2",
"cycle": {
"id": 9,
"phase": "deposit",
"blocks_elapsed": 191,
"sbtc_deposited": "0.01929494 sBTC",
"stx_deposited": "0.00 STX",
"min_stx_deposit": "1.00 STX",
"min_sbtc_deposit": "0.00001000 sBTC"
},
"prices": {
"btc_usd": "66488.42",
"stx_usd": "0.216440",
"oracle_stx_per_sbtc": "307191.64",
"dex_stx_per_sbtc_dlmm": "305922.66",
"dex_stx_per_sbtc_xyk": "305306.01",
"oracle_vs_dex_discount_pct": "-0.394"
},
"summary": "Cycle 9 in deposit phase. Oracle 0.39% MORE EXPENSIVE than DEX."
}
analyze
現在のサイクルに有利なエントリー機会があるかどうかを評価します。
bun run jingswap-cycle-agent/jingswap-cycle-agent.ts analyze
bun run jingswap-cycle-agent/jingswap-cycle-agent.ts analyze --min-discount 2.0
オプション:
--min-discount <pct>(デフォルト:1.0)— PARTICIPATEを実行するために必要な、DEXに対する最低オラクル割引率
出力:
{
"skill": "jingswap-cycle-agent",
"timestamp": "2026-03-29T15:22:27.573Z",
"contract": "SPV9K21TBFAK4KNRJXF5DFP8N7W46G4V9RCJDC22.sbtc-stx-jing-v2",
"input": { "min_discount_pct": 1 },
"cycle": {
"id": 9,
"phase": "deposit",
"sbtc_available": "0.01929494 sBTC",
"stx_deposited": "0.00 STX"
},
"pricing": {
"oracle_stx_per_sbtc": "307148.46",
"dex_stx_per_sbtc": "305922.66",
"discount_pct": "-0.401"
},
"action": "MONITOR",
"confidence": "high",
"is_favourable": false,
"rationale": "Oracle rate (307148 STX/sBTC) is 0.40% MORE expensive than DEX (305923 STX/sBTC). Spread does not meet minimum discount threshold of 1%.",
"summary": "MONITOR (high confidence) — cycle 9 (deposit), oracle 0.40% premium vs DEX."
}
participate
機会を評価し、有利な場合は親エージェントが実行するための預け入れパラメーターを準備します。
bun run jingswap-cycle-agent/jingswap-cycle-agent.ts participate --amount-stx 100
bun run jingswap-cycle-agent/jingswap-cycle-agent.ts participate --amount-stx 100 --min-discount 2.0 --dry-run
オプション:
--amount-stx <amount>(必須)— 預け入れるSTXの量--min-discount <pct>(デフォルト:1.0)— 実行に必要な最低割引率--dry-run— 分析のみを実行し、実行用ペイロードは出力しません
有利な場合、次を出力します:
{
"skill": "jingswap-cycle-agent",
"action": "DEPOSIT_READY",
"deposit_params": {
"amount_stx": 100,
"amount_micro_stx": 100000000,
"market": "sbtc-stx",
"cycle": 9
},
"instruction": "Parent agent: call jingswap_deposit_stx with amount=100000000 and market=sbtc-stx to execute this deposit. Confirm before proceeding."
}
アクション値
| アクション | 意味 |
|---|---|
PARTICIPATE | オラクルレートがDEXレートをmin-discount以上下回っています。市場価格を下回る価格でsBTCを取得するため、STXを預け入れます |
MONITOR | 価格差はありますが、しきい値未満です。監視して再試行します |
WAIT_FOR_DEPOSIT_PHASE | サイクルはバッファまたは決済フェーズにあり、預け入れは終了しています |
NO_SBTC_AVAILABLE | 現在のサイクルにsBTCの預け入れがありません。取得できるものはありません |
信頼度:
high— 割引率が2%以上、または明らかに不利medium— 割引率が1~2%low— しきい値に近い
技術的な注意
- コントラクト:
SPV9K21TBFAK4KNRJXF5DFP8N7W46G4V9RCJDC22.sbtc-stx-jing-v2(v2、現行版。v1はサイクル5で使用) - DLMM価格の計算式:
STX/sBTC = 1e10 / dlmmRaw(コントラクトは逆比率を保存) - XYK価格の計算式:
STX/sBTC = xykRaw / 1e8(コントラクトは1e8スケールの直接比率を保存) - オラクル価格:Pyth Hermesの
BTC/USD ÷ STX/USD = STX/sBTC - どのデータソースにもAPIキーは不要です
- すべてのHiro読み取りでは、送信者として
SP000000000000000000002Q6VF78(バーンアドレス。読み取り専用呼び出しで有効)を使用します
出力仕様
すべての出力は標準出力へのJSONです。
エラー:
{ "error": "descriptive message" }
開発元
AIBTC x Bitflow Skills Pay the Billsコンペティションの優勝作です。 原著者:@teflonmusk コンペティションのPR:https://github.com/BitflowFinance/bff-skills/pull/78