Perp premium and predicted funding
POST /api/perp-basisBasis view for one perpetual: mark, oracle and mid price, mark-vs-oracle premium in percent and bps, the impact premium the venue uses for funding, the current hourly funding, and the predicted next funding rate per venue (rate, interval, next funding time, 8h-normalized and annualized) as published by Hyperliquid's predictedFundings feed. Send POST /api/perp-basis with the required field coin and pay $0.002 per call over x402 or MPP (there is no free tier). It returns a JSON object with source, coin, markPx, oraclePx, midPx and 6 more.
No key.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
coin | string | yes | Perp ticker, e.g. BTC, ETH, SOL. Also accepted as symbol, id, ticker, asset, currency. |
Example request
curl -i -X POST https://agent402.tools/api/perp-basis \
-H "Content-Type: application/json" \
-d '{"coin":"BTC"}'
Without payment this returns HTTP 402 Payment Required with the exact price for perp-basis; any x402 v2 or MPP client pays it and retries.
Example response
{
"source": "hyperliquid",
"coin": "BTC",
"markPx": 77267,
"oraclePx": 77236,
"midPx": 77266.5,
"markOraclePremiumPct": 0.0401,
"markOraclePremiumBps": 4.01,
"impactPremiumPct": 0.0388,
"funding": {
"hourly": 0.0000125,
"per8h": 0.0001,
"aprPct": 10.95
},
"predictedFunding": [
{
"venue": "HlPerp",
"fundingRate": 0.0000125,
"fundingIntervalHours": 1,
"nextFundingTime": "2026-08-22T13:00:00.000Z",
"per8h": 0.0001,
"aprPct": 10.95
}
],
"fetchedAt": "2026-08-22T12:00:00.000Z"
}
| Field | Type | Always present | In the example |
|---|---|---|---|
source | string | yes | hyperliquid |
coin | string | yes | BTC |
markPx | number | yes | 77267 |
oraclePx | number | yes | 77236 |
midPx | number | yes | 77266.5 |
markOraclePremiumPct | number | yes | 0.0401 |
markOraclePremiumBps | number | yes | 4.01 |
impactPremiumPct | number | yes | 0.0388 |
funding | object | yes | 3 fields: hourly, per8h, aprPct |
predictedFunding | array of objects | yes | 1 item in the example |
fetchedAt | string | yes | 2026-08-22T12:00:00.000Z |
From an MCP client
catalog.call {
"slug": "perp-basis",
"params": {
"coin": "BTC"
}
}
The hosted connector at https://agent402.tools/mcp needs a payment for perp-basis; the stdio package pays it from a wallet or from AGENT402_CREDITS_KEY. Local install: npx -y agent402-mcp.
Errors and behavior
coinis required. An input the tool rejects returns an HTTP 4xx whose body carrieserror,tool,expected,requiredandexample, so the caller can correct it.- A paid call that ends in any status of 400 or above is not charged over x402, MPP or a prepaid credits key: settlement is cancelled when the tool fails. The exception is a Tempo push credential, a transfer the buyer sent before the call: it settles before the tool runs, so if the tool then fails the payment is recorded as a refund owed to the paying wallet.
- Wallet-only: this tool reaches the network or stored state, so it has no proof-of-work tier. A prepaid card-credits key issued earlier (
Authorization: Bearer a402_...) also pays it. - A
GETorHEADto /api/perp-basis returns the same 402 quote, so the price can be read without a body. - An
Idempotency-Keyheader makes a retried paid call replay the first 200 instead of charging again (an answer larger than 1 MB is not replayed).
Paid call (JavaScript agent)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
client.setSpendControls?.(false); // keep your own spending ceiling in code
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/perp-basis", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"coin": "BTC"
}),
});
Related tools
Perp dex limits and status (HIP-3)
POST /api/perp-dex-limitsRisk limits and status of ONE builder-deployed perp dex (HIP-3): total open-interest cap, per-perp OI size cap, max tran…
Perp dex markets snapshot (HIP-3)
POST /api/perp-dex-marketsSnapshot of every market on ONE builder-deployed perp dex (HIP-3): mark and oracle price, 24h change, hourly funding (pl…
Perp dexs (HIP-3 builder-deployed)
POST /api/perp-dexsEvery builder-deployed perpetuals dex on Hyperliquid (HIP-3): dex name, full name, deployer, oracle updater and fee reci…
Perp funding rate and history
POST /api/perp-fundingCurrent funding rate for one perpetual (hourly, per 8h and annualized) plus the last N hourly funding prints with premiu…
Perp candles (OHLCV)
POST /api/perp-klinesOHLCV candles for one perpetual at intervals from 1m to 1M (1m 3m 5m 15m 30m 1h 2h 4h 8h 12h 1d 3d 1w 1M), newest last, …
Perp markets snapshot
POST /api/perp-marketsSnapshot of every listed perpetual on Hyperliquid in one call: mark and oracle price, 24h change, hourly funding (plus 8…