Skip to content

加密数据 API(Surf)

通过 Surf 提供 83 个端点,覆盖 12 个数据域。交易所数据(16 家 CEX)、市场概览(排名/恐贪指数/ETF 资金流/清算/技术信号)、链上 SQL(7 个网络上 80+ ClickHouse 表)、钱包情报(13 个网络上 1 亿+ 标记钱包)、社交情绪(Twitter/X 追踪)、预测市场(Polymarket/Kalshi)等。

基础 URL: https://api.jarvisclaw.ai/v1/marketplace/surf

认证

两种方式均支持 — 所有请求通过 x402 链上结算:

方式Header描述
API KeyAuthorization: Bearer sk-...平台自动从你的 HD 钱包签名 x402
私钥(x402)通过 SDK 自动Agent 直接从自身钱包签名 x402

详见 Agent 支付(x402) 了解完整详情。

定价

全部 83 个端点统一单价,不区分方法,也没有高级档位。

范围价格
所有 Surf 端点,任意方法$0.0095/次

该数字为参考价,单次调用的精确扣费金额请读响应中的 price.amount

链上 SQL 端点不单独计价

onchain/queryonchain/sqlonchain/schema 与其他端点同价 $0.0095。早前文档提到的 $0.02 "Premium SQL" 档位在上游并不存在。

数据域

端点数描述
Exchange(交易所)16聚合 16 家 CEX 的订单簿、成交量、K 线数据
Market Overview(市场概览)12代币排名、恐贪指数、ETF 资金流、清算、技术指标
On-Chain SQL(链上 SQL)47 个网络上 80+ 表的自定义 ClickHouse 查询
Wallet Intelligence(钱包情报)81 亿+ 标记钱包、资金流追踪
Social Sentiment(社交情绪)10Twitter/X KOL 追踪和热度分析
Prediction Markets(预测市场)6Polymarket 和 Kalshi 事件数据
DEX Analytics(DEX 分析)8链上 DEX 交易量和流动性分析
Derivatives(衍生品)5永续合约持仓和资金费率
NFT(NFT)4集合地板价和成交量
News(新闻)4实时加密新闻聚合
Technical(技术)3价格技术分析信号
Macro(宏观)3与加密相关的宏观经济指标

端点

市场概览

方法端点描述
GET/market/rankings代币按市值排名
GET/market/fear-greed加密恐贪指数
GET/market/etf-flowsBTC/ETH ETF 资金流数据
GET/market/liquidations近期清算事件
GET/market/technical-signals顶级代币的技术信号

交易所数据

方法端点描述
GET/exchange/orderbook指定交易对的聚合订单簿
GET/exchange/klines历史 K 线/蜡烛图数据
GET/exchange/volume24 小时跨交易所成交量
GET/exchange/ticker实时行情(价格/变化/成交量)

链上 SQL

方法端点描述
POST/onchain/sql执行自定义 ClickHouse SQL 查询
GET/onchain/tables列出可用的表和列
GET/onchain/networks支持的网络列表

钱包情报

方法端点描述
GET/wallet/label查询地址标签
POST/wallet/labels/batch批量标签查询(最多 100 个地址)
GET/wallet/flow地址的代币流入/流出
GET/wallet/top-holders代币前 N 持有者

社交情绪

方法端点描述
GET/social/trendingTwitter/X 热门加密话题
GET/social/kol-trackingKOL 推文追踪
GET/social/sentiment代币/项目的情绪评分

预测市场

方法端点描述
GET/search/polymarket搜索 Polymarket 事件
GET/search/kalshi搜索 Kalshi 事件

请求示例

获取市场排名

GET /v1/marketplace/surf/market/rankings?limit=10

响应:

json
{
  "rankings": [
    {
      "rank": 1,
      "symbol": "BTC",
      "name": "Bitcoin",
      "price": 67234.50,
      "market_cap": 1320000000000,
      "change_24h": 2.4
    }
  ]
}

链上 SQL 查询

POST /v1/marketplace/surf/onchain/sql

请求体:

json
{
  "sql": "SELECT from_address, SUM(value/1e18) as total_eth FROM ethereum.transactions WHERE block_time > now() - interval '1 hour' GROUP BY from_address ORDER BY total_eth DESC LIMIT 10"
}

响应:

json
{
  "columns": ["from_address", "total_eth"],
  "rows": [
    ["0x28c6c06298d514db089934071355e5743bf21d60", 1523.45],
    ["0x21a31ee1afc51d94c2efccaa2092ad1028285549", 892.31]
  ],
  "row_count": 10,
  "execution_time_ms": 142
}

钱包标签查询

GET /v1/marketplace/surf/wallet/label?address=0x28c6c06298d514db089934071355e5743bf21d60&network=ethereum

响应:

json
{
  "address": "0x28c6c06298d514db089934071355e5743bf21d60",
  "labels": [
    {"label": "Binance Hot Wallet", "confidence": 0.99, "source": "community"},
    {"label": "CEX", "confidence": 0.99, "source": "heuristic"}
  ],
  "network": "ethereum",
  "first_seen": "2019-07-15T00:00:00Z"
}

代码示例

bash
# 获取恐贪指数
curl "https://api.jarvisclaw.ai/v1/marketplace/surf/market/fear-greed" \
  -H "Authorization: Bearer sk-your-api-key"

# 链上 SQL 查询
curl -X POST "https://api.jarvisclaw.ai/v1/marketplace/surf/onchain/sql" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"sql": "SELECT from_address, SUM(value/1e18) as total_eth FROM ethereum.transactions WHERE block_time > now() - interval '\''1 hour'\'' GROUP BY from_address ORDER BY total_eth DESC LIMIT 10"}'

# 钱包标签查询
curl "https://api.jarvisclaw.ai/v1/marketplace/surf/wallet/label?address=0x28c6c06298d514db089934071355e5743bf21d60&network=ethereum" \
  -H "Authorization: Bearer sk-your-api-key"

# 搜索预测市场
curl "https://api.jarvisclaw.ai/v1/marketplace/surf/search/polymarket?q=bitcoin&limit=5" \
  -H "Authorization: Bearer sk-your-api-key"
python
import requests

BASE = "https://api.jarvisclaw.ai/v1/marketplace/surf"
HEADERS = {"Authorization": "Bearer sk-your-api-key"}

# 恐贪指数
resp = requests.get(f"{BASE}/market/fear-greed", headers=HEADERS)
fg = resp.json()
print(f"恐贪指数: {fg['value']} ({fg['classification']})")

# 代币排名前 10
resp = requests.get(f"{BASE}/market/rankings", headers=HEADERS, params={"limit": 10})
for coin in resp.json()["rankings"]:
    print(f"  #{coin['rank']} {coin['symbol']}: ${coin['price']:,.2f} ({coin['change_24h']:+.1f}%)")

# ETF 资金流
resp = requests.get(f"{BASE}/market/etf-flows", headers=HEADERS)
for flow in resp.json()["flows"]:
    print(f"  {flow['fund']}: ${flow['net_flow']:+,.0f}")

# 钱包标签
resp = requests.get(f"{BASE}/wallet/label", headers=HEADERS,
    params={"address": "0x28c6c06298d514db089934071355e5743bf21d60", "network": "ethereum"})
for tag in resp.json()["labels"]:
    print(f"  {tag['label']} (置信度: {tag['confidence']})")

# 链上 SQL 查询 (POST)
result = requests.post(f"{BASE}/onchain/sql", headers=HEADERS,
    json={"sql": "SELECT from_address, SUM(value/1e18) as total_eth FROM ethereum.transactions WHERE block_time > now() - interval '1 hour' GROUP BY from_address ORDER BY total_eth DESC LIMIT 10"}).json()
for row in result["rows"]:
    print(f"  {row[0]}: {row[1]:.4f} ETH")

# 搜索预测市场
resp = requests.get(f"{BASE}/search/polymarket", headers=HEADERS, params={"q": "bitcoin", "limit": 5})
for m in resp.json()["results"]:
    print(f"  {m['title']} — 成交量: ${m['volume']:,.0f}")
python
from jarvisclaw import MarketplaceClient

# x402 Agent — 通过 Base 上的 USDC 按调用付费
client = MarketplaceClient(private_key="0x<agent-wallet-private-key>")

# 恐贪指数
fg = client.call("surf", "/market/fear-greed")
print(f"恐贪指数: {fg['value']} ({fg['classification']})")

# 代币排名前 10
rankings = client.call("surf", "/market/rankings", params={"limit": 10})
for coin in rankings["rankings"]:
    print(f"  #{coin['rank']} {coin['symbol']}: ${coin['price']:,.2f}")

# ETF 资金流
flows = client.call("surf", "/market/etf-flows")
for flow in flows["flows"]:
    print(f"  {flow['fund']}: ${flow['net_flow']:+,.0f}")

# 钱包标签
label = client.call("surf", "/wallet/label",
    params={"address": "0x28c6c06298d514db089934071355e5743bf21d60", "network": "ethereum"})
for tag in label["labels"]:
    print(f"  {tag['label']} (置信度: {tag['confidence']})")

# 链上 SQL (POST)
result = client.call("surf", "/onchain/sql", method="POST",
    json={"sql": "SELECT from_address, SUM(value/1e18) as total_eth FROM ethereum.transactions WHERE block_time > now() - interval '1 hour' GROUP BY from_address ORDER BY total_eth DESC LIMIT 10"})
for row in result["rows"]:
    print(f"  {row[0]}: {row[1]:.4f} ETH")

# 搜索预测市场
markets = client.call("surf", "/search/polymarket", params={"q": "bitcoin", "limit": 5})
for m in markets["results"]:
    print(f"  {m['title']} — 成交量: ${m['volume']:,.0f}")
go
package main

import (
    "context"
    "fmt"

    jarvisclaw "github.com/api-jarvisclaw/go-sdk/v2"
)

func main() {
    mc, _ := jarvisclaw.NewMarketplaceClient(jarvisclaw.WithAPIKey("sk-your-api-key"))
    ctx := context.Background()

    // 恐贪指数
    fg, _ := mc.Call(ctx, "surf", "/market/fear-greed", nil)
    fmt.Printf("恐贪指数: %v (%s)\n", fg["value"], fg["classification"])

    // 代币排名
    rankings, _ := mc.Call(ctx, "surf", "/market/rankings",
        jarvisclaw.WithParams(map[string]string{"limit": "10"}))
    fmt.Printf("排名: %v\n", rankings)

    // 链上 SQL
    result, _ := mc.Post(ctx, "surf", "/onchain/sql", map[string]interface{}{
        "sql": "SELECT from_address, SUM(value/1e18) as total_eth FROM ethereum.transactions WHERE block_time > now() - interval '1 hour' GROUP BY from_address ORDER BY total_eth DESC LIMIT 10",
    })
    fmt.Printf("查询结果: %d\n", result["row_count"])
}

支持的网络(链上 SQL)

网络描述
Ethereum15+交易、事件、代币转账、内部交易
BSC12+Binance Smart Chain 完整数据
Polygon10+Polygon PoS 链数据
Arbitrum10+L2 交易和事件
Optimism10+L2 交易和事件
Base8+Coinbase L2 数据
Solana10+交易、代币和程序数据

支持的交易所

Binance, OKX, Bybit, Coinbase, Kraken, Bitfinex, Gate.io, KuCoin, Huobi, MEXC, Bitget, Deribit, BingX, Phemex, CoinEx, Backpack


限制

  • 每次调用 $0.01 — 所有端点统一价格,不论数据量
  • 链上 SQL 查询超时 30 秒 — 复杂查询需优化 SQL
  • 社交数据仅覆盖 Twitter/X — 不含 Reddit、Discord 或 Telegram
  • 钱包情报覆盖 13 个网络 — 其他链可能有不完整标签
  • 无 WebSocket 流 — 所有端点都是请求/响应模式(需轮询)
  • 链上 SQL 表有约 5 分钟延迟 — 从链顶端计算
  • 批量标签查询限制 100 个地址 — 每次请求
  • 预测市场数据仅覆盖 Polymarket 和 Kalshi