cipher-omnidata — x402-gated multi-source asset feed

One call, 7 data sources, $0.05 per fetch.

CoinGecko price + Helius Pyth oracle + Finnhub + Alpha Vantage fallback + FRED macro overlay + Etherscan EVM balance + Bitquery on-chain history, aggregated in parallel into a single JSON response. Pass a ticker (SOL, BTC, ETH), a Solana mint, or an EVM address.

Endpoint

GET https://cipher-omnidata.vercel.app/api/omnidata/:asset_symbol

# Examples
#   /api/omnidata/SOL
#   /api/omnidata/BTC
#   /api/omnidata/So11111111111111111111111111111111111111112   (Solana mint)
#   /api/omnidata/0xdAC17F958D2ee523a2206206994597C13D831ec7     (EVM address)
#
# Unpaid : HTTP 402 + accept-list JSON ($0.05 USDC on Base)
# Paid   : HTTP 200 + aggregated JSON (failed sources null'd, documented in warnings[])

Response shape

{
  "asset": "SOL",
  "ts": 1745000000,
  "price_usd": 245.12,
  "price_sources": {
    "coingecko": 245.10,
    "helius_pyth": 245.15,
    "finnhub": 245.08,
    "alpha_vantage": null
  },
  "volume_24h_usd": 1234567890,
  "market_cap_usd": 115000000000,
  "change_24h_pct": 3.4,
  "solana":      { "top_holders_count": 12, "program_accounts_touched": 847, "jupiter_liquidity_bps": 2.1 },
  "macro_context": { "fed_funds_rate": 3.25, "cpi_yoy_pct": 2.8, "dxy": 106.3 },
  "onchain":     { "etherscan_balance_eth": null, "bitquery_last_tx_ts": null },
  "warnings": []
}

Why this exists

An AI agent that wants a complete market + macro + on-chain snapshot for a token today has to juggle 5-7 separate free-tier API keys, handle their independent rate limits, and merge their responses. cipher-omnidata does that in one paid call. Per-asset responses are cached 60s server-side to protect upstream free-tier quotas.

Payout

x402 payout wallet (Base / USDC): 0xa0630fAD18C732e94D56d2D5F630963eb8fB9640

Part of the cipher-x402 ecosystem alongside cipher-x402, cipher-fred, and others.