x402-funding について
x402-fundingは、HyperliquidとBinanceまたはOKXの無期限契約の年率換算ファンディングレートを比較し、流動性で銘柄を絞って取引方向を示します。取引所間の差を調べる開発者やエージェント向けで、オプションのエンドポイントでは板の厚みから約定可能な容量も測定します。
主な機能
- 01銘柄ごとの間隔で年率換算
- 02Binanceを基準にOKXへフォールバック
- 03流動性を満たす取引可能銘柄
- 04ロング・ショートの取引方向表示
- 05板情報による約定容量の測定
活用シーン
- 01銘柄ごとの取引所間レート差の確認
- 02統一した間隔での資金調達収益比較
- 03約定可能規模とエントリー影響の確認
- 04MCPクライアントから差異データを取得
MCP 対応
MCP対応クライアントに`get_funding_divergence`ツールを提供し、任意の`limit`パラメーターを受け付けます。ローカルのMCPツールは支払い設定なしで取引所APIを読み取ります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 5 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 返すペアの数(既定値は 5)。 |
詳細
x402 Funding Divergence
取引所間の無期限先物ファンディングレートを比較します。 Hyperliquid と流動性の高い CEX のベンチマーク(Binance、または Binance が地域制限を設けている場合は OKX)を比較し、各取引所の実際のファンディング間隔で年率換算します。両方の取引所で流動性のあるペアに絞り込み、ベーシストレードの方向も判定済みです。
1 回の呼び出しで、2 つの取引所のレートに差があるすべてのペアを、差の大きい順に取得できます。API キーも登録も不要で、レート制限の調整も必要ありません。
import { fundingDivergence } from "x402-funding-divergence";
const { top } = await fundingDivergence({ topN: 5 });
[
{
"coin": "AAVE",
"hl_apr_pct": 10.95,
"cex_apr_pct": -7.29,
"divergence_bps": 1823.8,
"hl_interval_hours": 1,
"cex_interval_hours": 8,
"oi_usd": 58969834,
"vol_24h_usd": 8784527,
"cex_vol_24h_usd": 103668389,
"anomaly": false,
"trade": "short_hyperliquid_long_binance",
"stability": { "window_hours": 72, "cex_samples": 9, "hl_samples": 72, "cex_mean_apr_pct": -0.03, "cex_std_apr_pct": 7.47, "hl_mean_apr_pct": 6.2, "hl_std_apr_pct": 9.79 }
}
]
この trade フィールドが何より重要です。どちらのポジションをショートし、どちらをロングするかを示し、その数値の取得元である取引所も明記します。後続の処理で解釈する必要はありません。
このプロジェクトの目的
ある取引所のファンディングレートから分かるのは、その取引所の見方です。2つの取引所の差から分かるのは、両者のキャリー期待の隔たりです。これはベーシス判断の基礎となる入力値であり、リターン予測ではありません。
手作業で行うには、取引所や銘柄ごとに異なるファンディング間隔、2種類の単位規則、さらに両方の注文板に十分な流動性があるペアを選別する条件をすり合わせる必要があります。このパッケージなら、1回の呼び出しで処理できます。
- 間隔は仮定せず、取得します。 Hyperliquidは1時間ごとにファンディングを行います。Binanceはデフォルトでは8時間ごとですが、4時間ごとも一般的です。上場する820銘柄のうち、465銘柄は4時間ごと、2銘柄は1時間ごとに決済されます。そのため、銘柄ごとの間隔は
/fapi/v1/fundingInfoから取得します。OKXでは銘柄ごとに異なるため、nextFundingTime − fundingTimeから算出します。すべての銘柄を8時間ごとと仮定すると、4時間ごとの契約では年率換算値がすべて半分になりますが、その誤りは見た目には分かりません。 - 両方のレッグに流動性が必要です。 Hyperliquidでは未決済建玉が1,000,000ドル以上、かつ24時間の出来高が2,000,000ドル以上であり、ベンチマーク取引所では24時間のクオート出来高が2,000,000ドル以上であることが条件です。片側の板に厚みがあっても、もう片側が空なら、差がどれだけ大きく見えても取引できません。
- 乖離はフラグで示し、上位にはしません。 2,000 bpsを超えると、その行には
anomaly: trueが設定され、通常の行より下位にランク付けされます。これほど大きな差は、通常、保有できるキャリーではなく、片方の取引所で生じた乖離です。 - アクセスが制限された地域でも動作します。 Binanceは米国のアドレスからのリクエストにHTTP 451を返し、BybitのCDNも拒否します。このセンサーはまずBinanceを試し、次にOKXへフォールバックし、使用した取引所を
benchmark.venueで通知します。設定は不要です。応答した取引所が自動的に選ばれます。 - センサーモジュールの依存関係はゼロです。 ネイティブの
fetch以外は使用しないため、Node 20以降、サーバーレス関数、エッジランタイムで動作します。パッケージ全体には、その上にx402決済サーバーが追加されています。
利用方法は3つあります。 ローカルでは、ライブラリまたはMCPツールを無料で利用できます。ネットワーク呼び出しは取引所のAPIに対するものだけです。HTTP経由のリモート利用は2つの料金プランから選べます。
/fundingは乖離データのみで1回**$0.02**、/ultraは実測した執行可能な規模、つまり各乖離に対して実際に取引できるサイズを加えて1回**$0.25**です。どちらも同じセンサーを使用し、Ultraでは注文板の厚みが追加されます。ホスト型エンドポイントを利用するとUltraを参照してください。
無料のローカルパッケージを使う場合も、有料のホスト型エンドポイントを使う場合も、ブロックチェーンの複雑な管理は不要です。RPCエンドポイントも、ETHも、KYCも必要ありません。
インストール
npm install x402-funding-divergence
Node.js 20以降が必要です。
2分で連携
TypeScript。 パッケージには型定義が同梱されています。インストールも、手書きも不要です。
import { fundingDivergence, type FundingResponse } from "x402-funding-divergence";
const data: FundingResponse = await fundingDivergence({ topN: 5 });
const best = data.top[0]; // fully typed
if (best) console.log(best.coin, best.trade, best.divergence_bps);
その他の言語。 レスポンスはJSON Schema Draft 2020-12に準拠していることを検証できます。スキーマはパッケージ内に同梱されているため(schema/funding-divergence.schema.json)、このページを読む代わりに、そこからクライアントを生成できます。
npx ajv-cli@5 validate \
-s node_modules/x402-funding-divergence/schema/funding-divergence.schema.json \
-d response.json
エージェント(MCP)。 Claude Desktop、Cursor、または任意のMCPクライアントに、次の項目を1つ追加します。
{
"mcpServers": {
"x402-funding": { "command": "npx", "args": ["-y", "x402-funding-divergence"] }
}
}
Coinbase AgentKit。 CoinbaseのX402ActionProviderは、x402で保護された任意のエンドポイントを呼び出せるように作られています。また、ここで紹介するどちらの料金も、デフォルトの1リクエストあたり1.00 USDCという上限を下回っています。既知のサービスしか呼び出さないため、URLを一度登録してください。
const provider = x402ActionProvider({
registeredServices: ["https://x402-funding.onrender.com"],
// maxPaymentUsdc defaults to 1.00, which already covers both routes
});
連携に必要なのはこれだけです。各フィールドの説明はレスポンスの形式を参照してください。
データだけが必要ですか? このパッケージには依存関係とともに決済サーバー全体が同梱されています。センサーだけが必要な場合は、
hyperliquid-binance-fundingをインストールしてください。同じセンサーファイル、同じ出力で、依存関係はゼロです。
ライブラリとして使用する
import { fundingDivergence } from "x402-funding-divergence";
const data = await fundingDivergence({ topN: 10 });
console.log(data.benchmark.venue); // "binance" or "okx"
console.log(data.pairs_tradable); // pairs that cleared both liquidity floors
console.log(data.top); // first topN rows, ordinary rows before anomalies
console.log(data.all); // every tradable row
デフォルトの条件が対象範囲に対して厳しすぎる場合は、下限値を調整してください。
MIN_OI_USD=500000 MIN_VOL_USD=1000000 MIN_CEX_VOL_USD=1000000 node your-script.mjs
MCP ツールとして使う
MCP 対応クライアントなら、どれでもセンサーを直接呼び出せます。クライアントの設定に以下を追加してください。
{
"mcpServers": {
"x402-funding": {
"command": "npx",
"args": ["-y", "x402-funding-divergence"]
}
}
}
このツールは get_funding_divergence として公開されており、任意の limit(1~50、デフォルトは5)を受け付けます。MCP に対応したエージェントなら、統合作業も支払い設定も不要で、ファンディングの乖離を取得できます。
ホストされたエンドポイントを使う(呼び出しごとに支払い)
ホストされたインスタンスは https://x402-funding.onrender.com で稼働しており、HTTP ネイティブの決済プロトコルである x402 を通じてリクエストごとに課金されます。サーバーが 402 Payment Required を返し、クライアントが署名済みの USDC 承認を添付すると、リクエストが完了します。
GET https://x402-funding.onrender.com/funding?limit=5 # $0.02
GET https://x402-funding.onrender.com/ultra?limit=5&capacity=5 # $0.25
- 料金:
/fundingは1回あたり$0.02、/ultraは1回あたり$0.25です。どちらも Base 上の USDC で支払います。 - 任意のクエリパラメーター:
limit(/fundingは1~50、/ultraは1~20)、/ultraのみcapacityとfees_bps。 - アカウントもキーも不要: 支払いに使うアドレスのみが識別情報となります。
- 無料の診断機能: 稼働状況を確認するには
GET /health、ホストが実際に接続できるベンチマーク取引所を確認するにはGET /sourcesを使います。
設定不要。 エージェントに ETH も取引所アカウントも必要ありません。
自動支払い。 x402 SDK が USDC 決済に署名し、認証をバックグラウンドで処理します。
ガス代は完全無料。 ファシリテーターとして機能する Coinbase がネットワーク手数料を負担します。お支払いいただくのは呼び出し料金のみです。
コードから見ると、これはほかの API 呼び出しと同じです。リクエストを1つ送ると、JSON ボディが1つ返ります。以下のスニペット以外に、ウォレット UI も署名プロンプトもブロックチェーンライブラリーの設定も不要です。
x402 SDK を使ったクライアントの例:
npm install @x402/fetch @x402/evm viem
import { x402Client, wrapFetchWithPayment } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.PRIVATE_KEY);
const client = new x402Client();
registerExactEvmScheme(client, { signer: account });
const pay = wrapFetchWithPayment(fetch, client);
const res = await pay("https://x402-funding.onrender.com/funding?limit=5");
console.log(await res.json());
Ultra:乖離を実際に吸収できる量
乖離が示すのは、取引所間で価格が食い違っていることです。しかし、それを利用できる人がいるかどうかまでは示しません。Hyperliquid の板に $15k しかないペアの1,800 bps の乖離と、$8M の板にある同じ乖離は、同じ機会ではありません。ファンディングのデータだけでは、どちらを見ているのかは分かりません。
GET /ultra(1回あたり$0.25)は、ペアごとに次の情報を追加します。
| フィールド | 意味 |
|---|---|
capacity.usd | 両方のレッグを同時に執行したとき、合計の市場インパクトが impact_budget_bps(デフォルトは10)を超える前に執行できる最大の想定元本 |
capacity.hl_impact_bps, capacity.cex_impact_bps | そのサイズにおける各レッグのインパクト。数値を鵜呑みにせず検証できます |
capacity.hl_book_usd, capacity.cex_book_usd | 各サイドで公開されている板の厚み |
capacity.entry_cost_bps | テイカー手数料(想定値。fees_bps で変更可能)と、そのサイズでのインパクトの合計 |
capacity.breakeven_days | エントリーコストを1日あたりのファンディング収益で割った値 |
数値の算出方法と、ソルバーを検証する閉形式のケースについては、CAPACITY.md をご覧ください。概要は次のとおりです。それぞれの板を価格レベルごとに消化し、各レッグの出来高加重平均価格を最良気配価格と比較して、2つのインパクトが予算内に収まる最大サイズを二分探索で求めます。取引所が公開する範囲を超えて板の厚みを外挿することはありません。また、内部の安全上限に達した場合は、上限値を実測値として提示するのではなく、レスポンスに usd_lower_bound: true と示します。
curl -i "https://x402-funding.onrender.com/ultra?limit=5&capacity=5"
# HTTP 402, accepts[0].amount = "250000" (6 decimals = $0.25)
クエリパラメーター:limit(1~20、デフォルトは5)、capacity(測定する行数、1~10、デフォルトは5)、fees_bps(0~200、デフォルトは9.5)。
実際の呼び出し結果からの1行をそのまま示します。行内の数値はすべてほかの数値から再計算できます。それがこの機能の要点です。
"coin": "ZEC",
"divergence_bps": 1238.3,
"trade": "short_hyperliquid_long_binance",
"capacity": {
"available": true,
"usd": 329154, // notional executable before impact exceeds the budget
"usd_lower_bound": false, // true would mean "at least this much", not "exactly this"
"impact_budget_bps": 10,
"hl_impact_bps": 6.38, // Hyperliquid leg at that size
"cex_impact_bps": 3.62, // 6.38 + 3.62 = 10.00, the budget, exactly
"hl_book_usd": 1235946, // visible depth, Hyperliquid
"cex_book_usd": 592188, // visible depth, benchmark venue
"side_hyperliquid": "bid", // sell Hyperliquid
"side_benchmark": "ask", // buy Binance
"fees_assumed_bps": 9.5, // 4.5 Hyperliquid + 5 CEX, base tier
"entry_cost_bps": 19.5, // 9.5 fees + 6.38 + 3.62 impact
"carry_bps_per_day": 3.393, // 1238.3 / 365
"breakeven_days": 5.75, // 19.5 / 3.393
"reason": "impact_budget" // or "capped_by_visible_depth", "capped_by_request"
}
Ultra は計測であり、アドバイスではありません。ポジションサイズや配分を提案することはありません。市場が吸収できる量と、エントリーにかかるコストを公開します。どのペアも板の計測ができない場合、エンドポイントは 200 ではなく 502 を返します。これによりファシリテーターは決済をキャンセルするため、空の回答に対して課金されることはありません。
応答形式
{
"updated_at": "2026-10-30T20:15:21.409Z",
"benchmark": {
"venue": "binance", // or "okx" where Binance restricts the region
"funding_interval": "read per instrument from the venue",
"fallbacks": [] // venues tried and failed before this one
},
"methodology": "Annualised funding, each leg with its own funding interval: ...",
"liquidity_floor": { "min_oi_usd": 1000000, "min_vol_usd": 2000000, "min_cex_vol_usd": 2000000 },
"anomaly_threshold_bps": 2000,
"pairs_considered": 49, // cleared the Hyperliquid floor
"pairs_not_checked_on_venue": 0, // skipped because of the per-venue call cap
"pairs_compared": 46, // of those, also listed on the benchmark venue
"pairs_rejected_illiquid": 130, // failed the Hyperliquid floor
"pairs_rejected_cex_illiquid": 0, // failed the benchmark-venue floor
"pairs_tradable": 46, // published
"pairs_flagged_anomaly": 11,
"top": [ /* first topN rows */ ],
"all": [ /* every tradable row, ordinary rows first */ ]
}
各行:
| フィールド | 型 | 意味 |
|---|---|---|
coin | string | 基軸資産(例:BTC) |
hl_apr_pct | number | Hyperliquid のファンディングレート(年率、パーセント) |
cex_apr_pct | number | ベンチマーク取引所のファンディングレート(年率、パーセント) |
divergence_bps | number | hl_apr_pct − cex_apr_pct(ベーシスポイント単位) |
hl_interval_hours | number | Hyperliquid のファンディング間隔(常に 1) |
cex_interval_hours | number | この銘柄のベンチマーク取引所におけるファンディング間隔 |
oi_usd | number | Hyperliquid の未決済建玉(米ドル) |
vol_24h_usd | number | Hyperliquid の24時間想定元本取引高(米ドル) |
cex_vol_24h_usd | number | ベンチマーク取引所の24時間建値通貨取引高(米ドル) |
anomaly | boolean | anomaly_threshold_bps を超える乖離 |
trade | string | short_hyperliquid_long_<venue> または long_hyperliquid_short_<venue>。<venue> は benchmark.venue です |
stability | object | null | 両方のレッグの直近の平均と標準偏差。行ごとに上流への呼び出しが2回必要なため、最初の STABILITY_MAX_ROWS 行についてのみ計算され、それ以外は null です |
方法
- Hyperliquid はファンディングレートを毎時公開します:
rate × 8760。 - Binance のデフォルトのファンディング間隔は8時間ですが、掲載している820のコントラクトのうち465は4時間ごと、2つは毎時決済されます。間隔はシンボルごとに読み取り、その後
rate × (8760 / interval)で計算します。 - OKX は銘柄ごとに1つのレートを公開します。間隔はレスポンスから導き出し、同じ計算式を適用します。
- 乖離は
HL − benchmarkをベーシスポイントで表したものです。 - 乖離が正の場合、Hyperliquid のファンディングレートのほうが高いため、キャリー取引では Hyperliquid をショートし、
benchmark.venueに指定された取引所をロングします。 - 行は乖離の絶対値で並べ替えられ、異常値は通常の行の後に配置されます。
どちらの取引所も公開されており、認証は不要です。Binance の経路ではセンサーが3つのリクエストを並列に発行し、約1.5秒で結果を返します。OKX のフォールバックではペアごとに1回リクエストするため、流動性の高い銘柄群では約3.5秒かかります。
これは何ではないか
乖離は瞬間的な年率換算値であり、予測ではありません。今日、年率換算で−200%と表示されるファンディングレートが、翌日には+50%になることがあります。これは、年率換算では直近の決済レートに1,095または2,190を掛けるためです。そのため、各行には stability が含まれ、このペアのレートが直近の期間に実際にどれほど変動したか、また平均でどの水準にあったかを示します。
3,000 bps の乖離は、年率30%のリターンを意味するものではありません。通常は、一方の取引所で一時的な価格の乖離が起きていることを意味します。まさにそれを知らせるために anomaly があります。
セルフホスト
パッケージにはサーバー全体が含まれています。リポジトリをクローンしてインストールし、支払いを受け取るアドレスを指定してください。
npm install
cp .env.example .env
npm start
| 変数 | 必須 | 用途 |
|---|---|---|
PAY_TO | はい | 支払いを受け取る EVM アドレスです。公開アドレスのみを指定してください。サーバーに秘密鍵を置かないでください。 |
NETWORK | いいえ | eip155:8453(Base メインネット、デフォルト)または eip155:84532(Base Sepolia) |
CDP_API_KEY_ID / CDP_API_KEY_SECRET | メインネット | Coinbase CDP の認証情報です。ホスト型ファシリテーターの認証に使用します |
PRICE | いいえ | /funding の呼び出しごとの価格。デフォルトは $0.02 です |
ULTRA_PRICE | いいえ | /ultra の呼び出しごとの価格。デフォルトは $0.25 です |
CAPACITY_IMPACT_BPS | いいえ | キャパシティの算出に使用するインパクト予算。デフォルトは 10 です |
CAPACITY_FEES_BPS | いいえ | entry_cost_bps で想定するテイカー手数料。デフォルトは 9.5 です |
ULTRA_TIMEOUT_MS | いいえ | /ultra のハードタイムアウト。デフォルトは 20000(その後は 502 を返し、課金されません) |
MIN_OI_USD / MIN_VOL_USD | いいえ | Hyperliquid の流動性下限 |
MIN_CEX_VOL_USD | いいえ | ベンチマーク取引所の流動性下限 |
ANOMALY_BPS | いいえ | 異常値のしきい値。デフォルトは 2000 です |
X402_BENCHMARK_ORDER | いいえ | 取引所の順序。デフォルトは binance,okx です |
OKX_MAX_COINS | いいえ | OKX 経由で比較する最大ペア数。デフォルトは 50(1 ペアにつき 1 リクエスト)です |
STABILITY_MAX_ROWS | いいえ | stability を付加する行数。デフォルトは 10 です |
STABILITY_WINDOW_HOURS | いいえ | stability の遡及期間。デフォルトは 72 です |
PORT | いいえ | デフォルトは 4021 です |
GET /health と GET /sources は無料です。GET /funding と GET /ultra は有料のルートです。
パブリックな x402 ファシリテーターがテストネットのみをサポートしているため、メインネットでは CDP 認証情報が必要です。最初の支払い時に失敗するのではなく、認証情報なしで eip155:8453 を指定した場合、サーバーは起動を拒否します。
毎月最初の 1,000 件の決済は無料です。それを超えると、ファシリテーターは決済ごとに $0.001 を請求します。この金額は、呼び出しごとの価格を設定する際の最低ラインになります。
ホスト型とセルフホスト型:実際に支払うもの
セルフホストに金銭的な費用はかかりません。ただし、セットアップに半日を要し、サービスを稼働し続ける責任が伴います。どちらの場合も同じ 2 つのルートが実行され、変わるのは支払いの受取人だけです。
- メンテナンス不要。 上流 API の変更を追跡したり、再起動したり、CDP 認証情報をローテーションしたりする必要はありません。
- 常時ウォーム状態。 ホスト型インスタンスは継続して稼働するため、エージェントのループでコールドスタートが発生しません。独自のキープアライブジョブを設定する必要もありません。
- コードは 1 行。 クローンも、
.envも、依存関係一式のインストールも不要です。統合に必要なのはfetch呼び出しだけです。
| ホスト型 | セルフホスト型 | |
|---|---|---|
| 最初の呼び出しまでの時間 | fetch 1 回 | クローン、インストール、認証情報の設定、デプロイ |
| 継続的な作業 | なし | Node ランタイム、ファシリテーターの設定、再起動 |
| 追加コスト | 呼び出しごとに $0.02 または $0.25 | 独自のインフラストラクチャ |
| 流動性の下限 | OI ≥ $1M、HL ボリューム ≥ $2M、CEX ボリューム ≥ $2M に固定 | 自分で選択 |
| 支払いの受取先 | 運営者 | あなた |
| 稼働時間 | 対応済み | 自分で手配 |
このデータを構築中の別のものへの入力として使う場合は、ホスト型エンドポイントを選んでください。独自の流動性下限や受取アドレスが必要な場合、または別のネットワークを使う場合は、セルフホストしてください。
ライセンス
MIT
パブリックな取引所 API を基盤としています。資金調達率は常に変化するため、このパッケージが返す数値はスナップショットであり、予測ではありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。