Tollbridge Docs
API

Funding

Raw funding snapshots and the paid S06/S07 decisions with explicit economics assumptions.

Three surfaces, two pricing keys: the raw snapshot bills perp.funding; the engine-decision surfaces bill signals.evaluate. The assumptions block always states economics_modeled: "none" — raw context, never a profit claim.

GET /v1/funding (paid)

Raw funding snapshot for BTC/ETH/SOL.

curl -H "PAYMENT-SIGNATURE: <base64 payment payload>" \
  https://api.tollbridge.app/v1/funding

Response data: { funding: [{ asset, venue, rate, next_funding_at, provenance }] } for every canonical asset.

GET /v1/funding/{asset} (paid)

S06 + S07 funding decisions, basis, execution-risk context, assumptions.

curl -H "PAYMENT-SIGNATURE: <base64 payment payload>" \
  https://api.tollbridge.app/v1/funding/BTC

Response data: { asset, venue, funding, decisions: { S06_funding_anomaly, S07_funding_persistence }, basis: { basis_bps, perp_mark, index }, execution_risk: { top_of_book_depth_usd, spread_bps }, assumptions }. The assumptions block states economics_modeled: "none" — always (§J hard rule).

GET /v1/funding/opportunities (paid)

The S06 anomaly scan with explicit assumptions.

curl -H "PAYMENT-SIGNATURE: <base64 payment payload>" \
  https://api.tollbridge.app/v1/funding/opportunities

Response data: { opportunities: [{ asset, funding_bps, basis_bps, decision }], assumptions }.

TypeScript

import { Tollbridge } from '@tollbridge/sdk-typescript';
import { account } from './wallet';

const paying = new Tollbridge({ baseUrl: 'https://api.tollbridge.app', x402: { signer: account } });

const raw = await paying.fundingSnapshot();           // GET /v1/funding
const decisions = await paying.funding('BTC');        // S06 + S07 + basis + execution risk
decisions.data.assumptions.economics_modeled;         // 'none' — always, §J hard rule
const opps = await paying.fundingOpportunities();     // S06 anomaly scan

Python

import httpx

# Reference snippets — official Python SDK in progress.
base = "https://api.tollbridge.app"
H = {"PAYMENT-SIGNATURE": payment_payload_b64}  # signed x402 payload

raw = httpx.get(f"{base}/v1/funding", headers=H).json()["data"]
funding = httpx.get(f"{base}/v1/funding/BTC", headers=H).json()["data"]
opps = httpx.get(f"{base}/v1/funding/opportunities", headers=H).json()["data"]
assert funding["assumptions"]["economics_modeled"] == "none"

MCP

GET /v1/funding/opportunities is proxied 1:1 as tollbridge_funding_opportunities; the per-asset decisions are runnable through the deep-decision tool:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tollbridge_funding_opportunities",
    "arguments": {}
  }
}

The tool result carries the same assumptions block verbatim and is scanned for banned profit-language — a policy verdict, not a trade.

  • The S06/S07 signal semantics: Decisions.
  • Payment mechanics: x402.

On this page