Quick Start

Get your first signed oracle attestation in under 5 minutes. 197 endpoints. Ed25519 signed. No API keys. No accounts.

Prerequisites

A way to pay — either USDC on Base (x402) or a Lightning wallet (L402). That's it. No API keys. No accounts. No signup.

Free Previews — Try Before You Pay

Append /preview to any paid endpoint for real Ed25519-signed data, no payment required:

bash
curl https://api.myceliasignal.com/oracle/price/btc/usd/preview
curl https://api.myceliasignal.com/oracle/prediction/fed/preview
curl https://api.myceliasignal.com/oracle/stress/market/preview

Previews may be up to 1 hour old (prices) or 24 hours old (prediction markets). Paid requests return real-time data.

x402 Quick Start — Python

bash
pip install x402-python eth-account
python
from eth_account import Account
from x402 import x402Client
from x402.mechanisms.evm.exact import ExactEvmScheme
from x402.mechanisms.evm.signers import EthAccountSigner
from x402.http.clients.httpx import x402HttpxClient

account = Account.from_key("YOUR_PRIVATE_KEY")
signer = EthAccountSigner(account)
client = x402Client()
client.register("eip155:8453", ExactEvmScheme(signer=signer))

async with x402HttpxClient(client) as http:
    r = await http.get("https://api.myceliasignal.com/oracle/price/btc/usd")
    data = r.json()
    print(f"BTC: ${data['price']} — signed={data['signed']}")

The x402 client handles everything: discovers payment terms, signs a USDC payment on Base, attaches it, and returns signed oracle data. $0.01 per price request. Instant settlement.

x402 Quick Start — Node.js

bash
npm install @x402/client viem
javascript
import { createWalletClient, http } from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { base } from "viem/chains";
import { wrapFetch } from "@x402/client";

const account = privateKeyToAccount("0xYOUR_PRIVATE_KEY");
const wallet = createWalletClient({ account, chain: base, transport: http() });
const fetchWithPayment = wrapFetch(fetch, wallet);

const r = await fetchWithPayment("https://api.myceliasignal.com/oracle/price/btc/usd");
const data = await r.json();
console.log(`BTC: $${data.price} — signed=${data.signed}`);

L402 Quick Start — Lightning

bash
# 1. Request — returns 402 with Lightning invoice
curl -i https://api.myceliasignal.com/oracle/price/btc/usd

# 2. Pay the invoice (10 sats) with any Lightning wallet, save the preimage

# 3. Retry with L402 credentials
curl https://api.myceliasignal.com/oracle/price/btc/usd \
  -H "Authorization: L402 <macaroon>:<preimage>"

How x402 Payment Works

1

Agent sends GET to any endpoint

2

Server returns HTTP 402 with payment requirements (amount, asset, network)

3

x402 client reads the 402, signs a USDC payment on Base, attaches it to a retry

4

Server verifies payment via Coinbase CDP facilitator, returns Ed25519-signed data

Total time: ~200ms including payment. No API keys. No accounts. No rate limits.

What You Get Back

json — example response
{
  "pair": "BTC/USD",
  "price": "64465.55",
  "sources": ["binance","coinbase","kraken","bitstamp","gemini","okx","bitfinex","bullish","gateio"],
  "method": "median",
  "timestamp": "2026-08-06T16:00:00Z",
  "signed": true,
  "canonical": "v1|PRICE|BTCUSD|64465.55|USD|2|binance,coinbase,kraken|median|1722960000|123456",
  "signature": "3a7f...(128 hex chars)",
  "signingScheme": "ed25519",
  "pubkey": "f4f0e52b5f7b54831f965632bf1ebf72769beda4c4e3d36a593f7729ec812615"
}

Common Use Cases

Check price before executing a trade

python
r = await http.get("https://api.myceliasignal.com/oracle/price/btc/usd")
price = float(r.json()["price"])
if price < 65000:
    execute_buy_order()

Cost: $0.01

Check funding rates before opening a perp position

python
r = await http.get("https://api.myceliasignal.com/oracle/funding/btc/usd")
data = r.json()
if data["regime"] == "NEGATIVE" and data["composite_rate_pct"] < -0.01:
    open_long()  # negative funding = longs get paid

Cost: $0.01

Check market stress before deploying capital

python
r = await http.get("https://api.myceliasignal.com/oracle/stress/market")
data = r.json()
if data["regime"] == "CALM" and data["value"] < 30:
    deploy_capital()
elif data["regime"] in ("HIGH", "EXTREME"):
    reduce_exposure()

Cost: $0.05

Get Fed rate cut probability for macro-aware trading

python
r = await http.get("https://api.myceliasignal.com/oracle/prediction/fed")
data = r.json()
sep = data["meetings"]["26SEP"]
if sep["prob_cut"] > 0.9 and sep["entropy"] < 1.5:
    position_for_rate_cut()  # market is certain about a cut

Cost: $0.50

Get options-implied price distribution for risk management

python
r = await http.get("https://api.myceliasignal.com/oracle/prediction/options/btc")
data = r.json()
for expiry, surface in data["surfaces"].items():
    p_down = surface["probabilities"]["P_down_10pct"]
    median = surface["median_price"]
    print(f"{expiry}: median ${median:,.0f}, P(down 10%)={p_down:.1%}")

Cost: $0.50

Check prediction market divergence

python
r = await http.get("https://api.myceliasignal.com/oracle/intel/prediction/divergence")
data = r.json()
if data["regime"] == "DIVERGENT":
    spread = data["divergences"]["btc_price"]["spread"]
    print(f"Kalshi vs Polymarket disagree by ${abs(spread):,.0f}")

Cost: $1.00

Full market snapshot in one call

python
r = await http.get("https://api.myceliasignal.com/oracle/synopsis/market")
data = r.json()
# 15 signals: perp regimes, stress, sentiment, volatility,
# contagion, TradFi regime, macro risk, consensus, divergence
print(f"Market: {data['consensus']} — {data['dominant_theme']}")

Cost: $0.25

Endpoint Catalog (197 endpoints)

Prices — $0.01 each

40+ pairs across crypto, FX, metals, stablecoins. 9-exchange median aggregation.

endpoints
/oracle/price/btc/usd     /oracle/price/eth/usd     /oracle/price/sol/usd
/oracle/price/btc/eur     /oracle/price/eth/eur      /oracle/price/sol/eur
/oracle/price/btc/jpy     /oracle/price/eth/jpy      /oracle/price/sol/jpy
/oracle/price/eur/usd     /oracle/price/gbp/usd      /oracle/price/usd/jpy
/oracle/price/xau/usd     /oracle/price/xau/eur      /oracle/price/xau/jpy
/oracle/price/usdc/usd    /oracle/price/usdt/usd     /oracle/price/usdt/eur
+ CHF, CAD, CNY cross-rates, ADA, DOGE, XRP, VWAP variants

Derivatives — $0.01-$0.05 each

Funding rates, open interest, basis, orderbooks, liquidations, options greeks, IV surfaces, SVI fits, term structure. BTC, ETH, SOL.

endpoints
/oracle/funding/{coin}/usd       Composite funding rate + regime
/oracle/oi/{coin}/usd            Open interest across 5 exchanges
/oracle/basis/{coin}/usd         Spot-futures basis
/oracle/orderbook/{coin}/usd     Cross-exchange depth + spread
/oracle/liquidations/{coin}/usd  Liquidation flow
/oracle/greeks/{coin}/usd        Options greeks
/oracle/iv-surface/{coin}/usd    Full IV surface
/oracle/svi/{coin}/usd           SVI parameterization (Gatheral 2004)
/oracle/term-structure/{coin}/usd  IV term structure

Indices — $0.05 each

Proprietary composite indices. 0-100 scale with regime classifications.

endpoints
/oracle/volatility/btc/usd   MSVI — Volatility Index
/oracle/sentiment/btc/usd    MSXI — Sentiment Index
/oracle/stress/market         MSSI — Stress Index (CALM/ELEVATED/HIGH/EXTREME)
/oracle/contagion/market      MSTI — Transmission Index
/oracle/stress/equity         MESI — Equity Stress Index
/oracle/volatility/nq/usd    MNVI — NQ Volatility Index
/oracle/leadership/equity     MSLI — Leadership Index
/oracle/breadth/equity        MSBI — Breadth Index

Regimes — $0.10-$0.25 each

Machine-actionable market state classifications with confidence and stability.

endpoints
/oracle/perp/btc              Perp regime with confidence, stability, bias
/oracle/regime/equity          TradFi: RISK_ON / NEUTRAL / STRESS / PANIC
/oracle/regime/liquidity       Liquidity: DEEP / NORMAL / THIN / FRAGILE
/oracle/regime/equity/composite  MSERC — 2D equity regime
/oracle/rotation/equity        MSRI — Sector rotation
/oracle/synopsis/market        15-signal market snapshot ($0.25)

Intelligence — $0.50-$1.00 each

Cross-domain analysis and trade intelligence. Layer 3 Oracle.

endpoints
/oracle/intel/divergence           Crypto vs TradFi divergence
/oracle/intel/consensus            Regime consensus across all signals
/oracle/intel/macro/risk           Macro risk score 0-100
/oracle/intel/perp/setup           Highest-confidence perp trade setup
/oracle/intel/regime/change        Regime transition detector
/oracle/intel/regime/persistence   Historical regime duration context
/oracle/intel/defi/opportunity     Risk-adjusted DeFi yield ranking

Prediction Markets — $0.25-$1.00 each

Market-implied probability distributions from Kalshi, Polymarket, and options surfaces.

endpoints
/oracle/prediction/fed              Fed rate path — 6 FOMC meetings ($0.50)
/oracle/prediction/btc/price        BTC same-day price distribution ($0.25)
/oracle/prediction/eth/price        ETH same-day price distribution ($0.25)
/oracle/prediction/options/btc      BTC risk-neutral distributions, 12 horizons ($0.50)
/oracle/prediction/options/eth      ETH risk-neutral distributions, 12 horizons ($0.50)
/oracle/prediction/cpi              CPI probability distribution ($0.25)
/oracle/prediction/gdp              GDP growth probability ($0.25)
/oracle/intel/prediction/divergence Kalshi vs Polymarket divergence ($1.00)

Economic, Compute, Weather & Other

endpoints
/oracle/econ/calendar         Economic calendar (30 days)
/oracle/econ/us/cpi           US CPI          /oracle/econ/us/gdp     US GDP
/oracle/econ/commodities/wti  WTI oil         /oracle/econ/commodities/dxy  Dollar index
/oracle/gas/ethereum          Gas prices, 7 chains
/oracle/compute/all           GPU compute pricing
/oracle/inference/all         LLM inference pricing
/oracle/defi/yield/all        DeFi yield rates
/oracle/weather/LAT/LON/wrsi/30d  Weather risk index
/oracle/marine/LAT/LON/seastate   Sea state conditions
/oracle/history/spot/btc/usd      Historical OHLCV
/dlc/oracle/numeric               DLC attestation for Bitcoin contracts

Verifying Ed25519 Signatures

python
from nacl.signing import VerifyKey
import binascii

PUBKEY = "f4f0e52b5f7b54831f965632bf1ebf72769beda4c4e3d36a593f7729ec812615"

def verify(response_json):
    canonical = response_json["canonical"].encode()
    signature = binascii.unhexlify(response_json["signature"])
    vk = VerifyKey(binascii.unhexlify(PUBKEY))
    vk.verify(canonical, signature)  # raises if invalid
    return True
javascript
import { verify } from "@noble/ed25519";
const PUBKEY = "f4f0e52b5f7b54831f965632bf1ebf72769beda4c4e3d36a593f7729ec812615";
const isValid = await verify(signature, canonical, PUBKEY);

Wallet Funding

You need USDC on Base (chain ID 8453). Most endpoints cost $0.01-$0.50. $5 funds thousands of requests.

Bridge USDC to Base via bridge.base.org or buy directly on Base via Coinbase.

Discovery Endpoints (free)

endpoints
https://api.myceliasignal.com/.well-known/x402        Payment catalog
https://myceliasignal.com/openapi.json                 OpenAPI 3.1 (346 endpoints)
https://myceliasignal.com/llms.txt                     LLM-optimized docs
https://myceliasignal.com/.well-known/agent.json       AI agent discovery
https://myceliasignal.com/.well-known/agent-card.json  Agent capabilities

FAQ

How much does it cost? $0.01-$1.00 per request. No subscriptions, no API keys.

What blockchain? USDC on Base (x402) or Lightning (L402). Instant settlement.

Rate limits? None. Pay per request.

Can I verify the data? Yes. Every response includes an Ed25519 signature.

Do I need an API key? No. x402 is permissionless. Fund a wallet and call any endpoint.

Latency? 50-200ms including payment verification.

How do I test? Append /preview to any endpoint. Free, signed, real data.

Verify the signature → Learn how to cryptographically verify attestations in Python, JavaScript, and Rust.

x402 deep dive → Full integration guide for USDC on Base, including programmatic payment flows for AI agents.

L402 deep dive → Lightning integration with macaroon handling, invoice payment, and preimage extraction.