mcpField
X
x402-funding

x402-funding

ローカル
github.com/kristoferbc金融データ16 日前に更新

x402-funding について

x402-fundingは、HyperliquidとBinanceまたはOKXの無期限契約の年率換算ファンディングレートを比較し、流動性で銘柄を絞って取引方向を示します。取引所間の差を調べる開発者やエージェント向けで、オプションのエンドポイントでは板の厚みから約定可能な容量も測定します。

主な機能

  1. 01銘柄ごとの間隔で年率換算
  2. 02Binanceを基準にOKXへフォールバック
  3. 03流動性を満たす取引可能銘柄
  4. 04ロング・ショートの取引方向表示
  5. 05板情報による約定容量の測定

活用シーン

  1. 01銘柄ごとの取引所間レート差の確認
  2. 02統一した間隔での資金調達収益比較
  3. 03約定可能規模とエントリー影響の確認
  4. 04MCPクライアントから差異データを取得

MCP 対応

MCP対応クライアントに`get_funding_divergence`ツールを提供し、任意の`limit`パラメーターを受け付けます。ローカルのMCPツールは支払い設定なしで取引所APIを読み取ります。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"kristoferbc-x402-funding": {
"command": "npx",
"args": [
"-y",
"x402-funding-divergence"
]
}
}
}
起動コマンドnpx -y x402-funding-divergence

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmx402-funding-divergence1.5.0

ツール

1

掲載時のツール一覧 · 5 日前に更新

パラメーター型必須説明
limitintegerいいえ返すペアの数(既定値は 5)。

詳細

x402 funding MCP server – Glama での品質・メンテナンススコア

x402 Funding Divergence

npm version npm downloads license node x402-funding MCP server

X402 Funding MCP server

取引所間の無期限先物ファンディングレートを比較します。 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 */ ]
}

各行:

フィールド型意味
coinstring基軸資産(例:BTC)
hl_apr_pctnumberHyperliquid のファンディングレート(年率、パーセント)
cex_apr_pctnumberベンチマーク取引所のファンディングレート(年率、パーセント)
divergence_bpsnumberhl_apr_pct − cex_apr_pct(ベーシスポイント単位)
hl_interval_hoursnumberHyperliquid のファンディング間隔(常に 1)
cex_interval_hoursnumberこの銘柄のベンチマーク取引所におけるファンディング間隔
oi_usdnumberHyperliquid の未決済建玉(米ドル)
vol_24h_usdnumberHyperliquid の24時間想定元本取引高(米ドル)
cex_vol_24h_usdnumberベンチマーク取引所の24時間建値通貨取引高(米ドル)
anomalybooleananomaly_threshold_bps を超える乖離
tradestringshort_hyperliquid_long_<venue> または long_hyperliquid_short_<venue>。<venue> は benchmark.venue です
stabilityobject | 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 を基盤としています。資金調達率は常に変化するため、このパッケージが返す数値はスナップショットであり、予測ではありません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。