关于 metengine-data-agent
metengine-data-agent 是用于查询 Polymarket、Hyperliquid 和 Meteora 实时聪明资金分析的 Agent 技能,文档涵盖 63 个 API 端点。它通过 Solana 上的 x402 按请求以 USDC 付款,无需 API 密钥或账户。
主要功能
- 01覆盖三个指定平台的分析
- 02提供 63 个钱包与市场数据端点
- 03通过 Solana 上的 x402 支付 USDC
- 04仅在成功响应后结算
- 05支持会话记忆与更新指引
适用场景
- 01追踪支持平台上的资金流
- 02分析钱包、持仓和市场活动
- 03无 API 账户调用付费端点
- 04跨会话复用配置与端点记录
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sendaifun/ skills --skill metengine-data-agent安装后在 Claude Code 中输入/metengine-data-agent确认已加载。
详细介绍
MetEngine Data Agent API
覆盖 Polymarket、Hyperliquid 和 Meteora 的实时聪明资金分析。63 个端点涵盖钱包评分、内幕交易检测、资金流追踪和仓位分析。通过 Solana 使用 USDC 按请求付费——无需 API 密钥、无需账户、无需繁琐的入门流程。
显示规则
- 绝不要截断或裁剪钱包/合约地址。 始终显示完整地址(例如
0x61276aba49117fd9299707d5d573652949d5c977,而不是0x6127...c977)。 - 此规则适用于所有 Polymarket(0x 十六进制)、Hyperliquid(0x 十六进制)、Meteora(base58)地址、condition_ids、token_ids、池地址、仓位地址和交易哈希。
技能自动更新
添加新端点或更新定价时,技能文件可能会发生变化。请每周下载最新版本,以保持文件为最新状态。
下载最新技能文件:
curl -sL https://www.metengine.xyz/skill.md -o ~/.claude/agents/metengine-data-agent.md
自动执行每周更新(cron):
# Add to crontab: crontab -e
0 0 * * 0 curl -sL https://www.metengine.xyz/skill.md -o ~/.claude/agents/metengine-data-agent.md 2>/dev/null
查询前检查技能版本(可选):
# Compare local vs remote version
LOCAL_VER=$(grep '^version:' ~/.claude/agents/metengine-data-agent.md | head -1 | tr -d '"' | awk '{print $2}')
REMOTE_VER=$(curl -sL https://www.metengine.xyz/skill.md | grep '^version:' | head -1 | tr -d '"' | awk '{print $2}')
[ "$LOCAL_VER" != "$REMOTE_VER" ] && curl -sL https://www.metengine.xyz/skill.md -o ~/.claude/agents/metengine-data-agent.md
如果距离上次更新已超过 7 天,Agent 应在新会话开始时检查更新。
会话记忆(重要——请先阅读)
进行任何 API 调用前,请检查以下路径中是否存在记忆文件:
~/.claude/agents/metengine-memory.md
此文件会在会话之间保留,并存储跳过设置步骤、加快查询所需的所有信息。如果记忆文件存在,请先阅读。 文件中包含:
- 钱包配置——Solana 密钥对的路径、公开地址,以及是否已验证 SOL/USDC 余额
- 软件包状态——是否已安装
@x402/core、@x402/svm、@solana/kit,以及安装位置 - 客户端引导代码——上次成功查询时使用的可运行代码片段(可直接复制粘贴)
- 端点经验——哪些端点可用、哪些发生超时,以及使用了哪些备用方案
- 定价缓存——上次获取的定价表(避免重新阅读整个定价部分)
记忆文件格式
使用以下模板创建或更新 ~/.claude/agents/metengine-memory.md:
# MetEngine Session Memory
## Last Updated
YYYY-MM-DD HH:MM UTC
## Skill Version
<version from frontmatter>
## Wallet
- keypair_path: ~/.config/solana/id.json
- public_address: <base58 pubkey -- NEVER store the private key>
- sol_balance_ok: true/false
- usdc_balance_ok: true/false
- last_balance_check: YYYY-MM-DD
## Packages
- installed: true/false
- install_dir: <path where bun add was run>
- packages: @x402/core, @x402/svm, @solana/kit
- bun_version: <version>
## Client Bootstrap
```typescript
// <paste the one-time setup + paidFetch function that worked>
端点历史
| 日期 | 端点 | 状态 | 延迟 | USDC 费用 | 备注 |
|---|
已知备用方案
| 端点 | 问题 | 使用的备用方案 |
|---|
遇到的问题
### Memory Update Rules
Agents MUST update the memory file:
1. **After first successful setup** -- Record wallet path, public address, installed packages, working bootstrap code
2. **After every API call** -- Append to Endpoint History (keep last 10 rows, prune older)
3. **When a fallback is used** -- Record in Fallbacks Learned
4. **When a new quirk is discovered** -- Record in Quirks Encountered
5. **At session end** -- Update `Last Updated` timestamp
### How Memory Saves Tokens
| Without Memory | With Memory | Token Savings |
|---------------|-------------|---------------|
| Read full skill file (2400 lines) to find setup instructions | Skip to Client Bootstrap section | ~80% fewer setup tokens |
| Trial-and-error wallet detection | Read wallet path from memory | ~500 tokens saved |
| Install packages every session | Check `installed: true`, skip | ~200 tokens saved |
| Hit known-broken endpoint, get 504, try fallback | Check Fallbacks Learned, use fallback directly | ~1000 tokens saved per avoided failure |
| Re-discover quirks through errors | Check Quirks Encountered | ~300 tokens saved per quirk |
### Quick Start for Returning Agents
If `~/.claude/agents/metengine-memory.md` exists:
- 阅读记忆文件
- 如果钱包和软件包已配置: a. 复制客户端引导代码 b. 检查所需端点的“已知备用方案” c. 直接调用 API d. 更新端点历史
- 如果钱包或软件包尚未配置: a. 按照下方的入门流程操作 b. 设置完成后更新记忆文件
**First-time agents:** Follow the Onboarding Path below, then create the memory file.
### Wallet Security Rules
- **NEVER** read, log, print, or display the contents of any keypair file
- **NEVER** store private keys in the memory file
- **ONLY** store the file path and the public address
- Load the keypair at runtime using `Bun.file(path).text()` or `fs.readFileSync(path)` -- pipe directly into the signer, never into a variable that gets logged
---
## Onboarding Path
Two steps from zero to data:
**Step 1: Verify service is live (free)**
GET https://agent.metengine.xyz/health
**Step 2: Make a paid request**
GET https://agent.metengine.xyz/api/v1/markets/trending?timeframe=24h&limit=5
First call returns `402` with price. Sign payment. Re-send with `PAYMENT-SIGNATURE` header. Receive `200` with data + settlement proof.
Prerequisites: A Solana wallet with SOL (for tx fees) and USDC (for payments). Install `@x402/core`, `@x402/svm`, `@solana/kit`.
---
## Payment Protocol: x402 on Solana Mainnet
Every paid endpoint uses a two-step handshake. No API keys. No accounts. Payment IS authentication.
### Flow
Agent MetEngine Solana | | | |-- GET /api/v1/endpoint ------>| | |<-- 402 + PaymentRequired -----| | | | | | [本地签署付款] | | | | | |-- GET + PAYMENT-SIGNATURE --->| | | |-- 验证 ------------------->| | |<-- 有效 -------------------| | | | | | [执行查询] | | | | | |-- 结算 ------------------->| | |<-- 交易哈希 ---------------| |<-- 200 + 数据 + PAYMENT- -----| | | RESPONSE(结算信息) | |
### Important: Settle-After-Execute
If the query fails (timeout, server error), no payment is settled. The agent keeps their funds. This is enforced server-side. Only successful `2xx` responses trigger settlement.
### Headers
| Header | Direction | Description |
|--------|-----------|-------------|
| `PAYMENT-REQUIRED` | Response (402) | Encoded payment requirements |
| `X-PAYMENT-REQUIRED` | Response (402) | Duplicate of above for compatibility |
| `PAYMENT-SIGNATURE` | Request | Signed payment payload |
| `X-PAYMENT` | Request | Alternate payment header name |
| `PAYMENT-RESPONSE` | Response (200) | Settlement proof with tx hash |
| `X-PAYMENT-RESPONSE` | Response (200) | Duplicate of above for compatibility |
### Client Implementation (TypeScript/Bun)
```typescript
import { x402Client, x402HTTPClient } from "@x402/core/client";
import { registerExactSvmScheme } from "@x402/svm/exact/client";
import { toClientSvmSigner } from "@x402/svm";
import { getBase58Encoder, createKeyPairSignerFromBytes } from "@solana/kit";
import type { PaymentRequired, SettleResponse } from "@x402/core/types";
// --- One-time setup ---
const bytes = getBase58Encoder().encode(process.env.SOLANA_PRIVATE_KEY!);
const signer = await createKeyPairSignerFromBytes(bytes);
const client = new x402Client();
registerExactSvmScheme(client, { signer: toClientSvmSigner(signer) });
const httpClient = new x402HTTPClient(client);
// --- Reusable paid fetch ---
const BASE_URL = "https://agent.metengine.xyz";
async function paidFetch(
path: string,
options?: { method?: string; body?: Record<string, unknown> },
): Promise<{ data: unknown; settlement: SettleResponse; price: number }> {
const method = options?.method ?? "GET";
const url = `${BASE_URL}${path}`;
const fetchOpts: RequestInit = { method };
if (options?.body) {
fetchOpts.headers = { "Content-Type": "application/json" };
fetchOpts.body = JSON.stringify(options.body);
}
// Step 1: Get 402 with price
const initial = await fetch(url, fetchOpts);
if (initial.status !== 402) throw new Error(`Expected 402, got ${initial.status}`);
const body = await initial.json();
// Step 2: Parse payment requirements
const paymentRequired: PaymentRequired = httpClient.getPaymentRequiredResponse(
(name) => initial.headers.get(name), body,
);
const price = Number(paymentRequired.accepts[0]!.amount);
// Step 3: Sign payment
const paymentPayload = await httpClient.createPaymentPayload(paymentRequired);
const paymentHeaders = httpClient.encodePaymentSignatureHeader(paymentPayload);
// Step 4: Re-send with payment
const paid = await fetch(url, {
...fetchOpts,
headers: { ...fetchOpts.headers as Record<string, string>, ...paymentHeaders },
});
if (paid.status !== 200) {
const err = await paid.json();
throw new Error(`Payment failed (${paid.status}): ${JSON.stringify(err)}`);
}
const paidBody = (await paid.json()) as { data: unknown };
// Step 5: Extract settlement proof
const settlement = httpClient.getPaymentSettleResponse(
(name) => paid.headers.get(name),
);
return { data: paidBody.data, settlement, price };
}
使用示例
// GET endpoint
const { data, price } = await paidFetch("/api/v1/markets/trending?timeframe=24h&limit=5");
console.log(`Paid $${price} USDC. Got ${(data as any[]).length} markets.`);
// POST endpoint
const { data: intel } = await paidFetch("/api/v1/markets/intelligence", {
method: "POST",
body: { condition_id: "0xabc123...", top_n_wallets: 10 },
});
NPM 依赖
bun add @x402/core @x402/svm @solana/kit
定价
所有价格均以 Solana Mainnet 上的 USDC 计价。定价会根据端点等级、时间范围、数量限制和筛选器的使用情况动态调整。
等级基础费用
| 等级 | 基础费用(USDC) | 描述 |
|---|---|---|
| light | $0.01 | 简单查询、搜索、信息流 |
| medium | $0.02 | 聚合分析、趋势数据 |
| heavy | $0.05 | 计算得出的情报、排行榜、评分 |
| whale | $0.08 | 多实体比较、复杂扫描 |
价格调整系数
时间范围乘数(应用于基础费用):
| 时间范围 | 乘数 |
|---|---|
| 1h | 0.5x |
| 4h | 0.7x |
| 12h | 0.9x |
| 24h / today | 1.0x |
| 7d | 2.0x |
| 30d | 3.0x |
| 90d | 4.0x |
| 365d / all | 5.0x |
数量限制乘数:price *= max(1, requested_limit / default_limit)
筛选器折扣(降低扫描费用):
| 筛选器 | 折扣 | 适用端点 |
|---|---|---|
| category | 0.7x | trending、top-performers、whales、capital-flow、high-conviction、opportunities |
| condition_id | 0.5x | whales、sentiment、participants、wallet activity |
| smart_money_only=true | 0.7x | whales、capital-flow、volume-heatmap(Polymarket + HL) |
| coin/coins | 0.7x | HL whales、long-short-ratio、pressure/pairs |
| pool_type (not "all") | 0.7x | 所有带有 pool_type 参数的 Meteora 端点 |
| pool_address | 0.5x | pool detail、volume-history、events、fee-analysis、positions/active |
特殊规则:
wallets/compare:price *= wallets.length / 2hl/traders/compare:price *= traders.length / 2meteora/lps/compare:price *= owners.length / 2wallets/profile:两个 includes 均为 1.0x,一个 include 为 0.7x,均不包含为 0.4x- 不带 category 的
wallets/top-performers:加收 2.0x 费用
硬性上限:
/api/v1/markets/opportunities:最高 $0.15/api/v1/wallets/copy-traders:最高 $0.12
全局范围:每个请求最低 $0.01,最高 $0.20。
机器可读定价
GET https://agent.metengine.xyz/api/v1/pricing
以 JSON 格式返回完整定价表,包括所有等级、路由、乘数、折扣和特殊规则。免费端点。无需付款。
能力清单
Polymarket(27 个端点)
| # | Method | Path | Tier | Description |
|---|---|---|---|---|
| 1 | GET | /api/v1/markets/trending | medium | 成交量激增的热门市场 |
| 2 | GET | /api/v1/markets/search | light | 按关键词、类别、状态或 Polymarket URL 搜索市场 |
| 3 | GET | /api/v1/markets/categories | light | 所有类别及其活跃度统计 |
| 4 | GET | /api/v1/platform/stats | light | 平台整体汇总统计 |
| 5 | POST | /api/v1/markets/intelligence | heavy | 市场的完整聪明资金情报报告 |
| 6 | GET | /api/v1/markets/price-history | light | OHLCV 价格/概率时间序列 |
| 7 | POST | /api/v1/markets/sentiment | medium | 叠加聪明资金数据的情绪时间序列 |
| 8 | POST | /api/v1/markets/participants | medium | 按评分层级汇总参与者 |
| 9 | POST | /api/v1/markets/insiders | heavy | 内部人士行为模式检测(7 项信号行为评分) |
| 10 | GET | /api/v1/markets/trades | light | 市场的按时间顺序排列的交易动态 |
| 11 | GET | /api/v1/markets/similar | whale | 根据钱包重合度查找相关市场 |
| 12 | GET | /api/v1/markets/opportunities | whale | 聪明资金与价格走势意见不一致的市场 |
| 13 | GET | /api/v1/markets/high-conviction | heavy | 聪明资金的高确信度押注 |
| 14 | GET | /api/v1/markets/capital-flow | medium | 按类别划分的资金流向(板块轮动) |
| 15 | GET | /api/v1/trades/whales | medium | 巨鲸大额交易 |
| 16 | GET | /api/v1/markets/volume-heatmap | medium | 各类别/时段/日期的成交量分布 |
| 17 | POST | /api/v1/wallets/profile | heavy | 钱包完整档案,包含评分、持仓和交易 |
| 18 | POST | /api/v1/wallets/activity | medium | 钱包近期交易活动 |
| 19 | POST | /api/v1/wallets/pnl-breakdown | medium | 按市场划分的盈亏明细 |
| 20 | POST | /api/v1/wallets/compare | whale | 并排比较 2-5 个钱包 |
| 21 | POST | /api/v1/wallets/copy-traders | whale | 检测复制目标钱包交易的钱包 |
| 22 | GET | /api/v1/wallets/top-performers | heavy | 按盈亏、ROI、夏普比率、胜率和成交量排列的排行榜 |
| 23 | GET | /api/v1/wallets/niche-experts | heavy | 特定类别中的顶级钱包 |
| 24 | GET | /api/v1/markets/resolutions | light | 已结算市场及聪明资金准确度 |
| 25 | GET | /api/v1/wallets/alpha-callers | heavy | 在市场后来走热前提前交易的钱包 |
| 26 | GET | /api/v1/markets/dumb-money | medium | 低评分交易者的持仓(反向指标) |
| 27 | GET | /api/v1/wallets/insiders | heavy | 按行为评分筛选的全局内部人士候选者 |
Hyperliquid(18 个端点)
| # | Method | Path | Tier | Description |
|---|---|---|---|---|
| 28 | GET | /api/v1/hl/platform/stats | light | 平台汇总统计 |
| 29 | GET | /api/v1/hl/coins/trending | medium | 按活跃度排列的热门代币 |
| 30 | GET | /api/v1/hl/coins/list | light | 所有交易代币及 7d 统计 |
| 31 | GET | /api/v1/hl/coins/volume-heatmap | medium | 按代币和小时统计的交易量 |
| 32 | GET | /api/v1/hl/traders/leaderboard | heavy | 排名交易者排行榜 |
| 33 | POST | /api/v1/hl/traders/profile | heavy | 交易者完整档案 |
| 34 | POST | /api/v1/hl/traders/compare | whale | 比较 2-5 名交易者 |
| 35 | GET | /api/v1/hl/traders/daily-pnl | medium | 含连胜连败情况的每日 PnL 时间序列 |
| 36 | POST | /api/v1/hl/traders/pnl-by-coin | medium | 按代币拆分的 PnL(仅已平仓 PnL) |
| 37 | GET | /api/v1/hl/traders/fresh-whales | heavy | 新出现的大额交易钱包 |
| 38 | GET | /api/v1/hl/trades/whales | medium | 大额交易 |
| 39 | GET | /api/v1/hl/trades/feed | light | 某个代币的按时间顺序排列的交易动态 |
| 40 | GET | /api/v1/hl/trades/long-short-ratio | medium | 多空交易量比率时间序列 |
| 41 | GET | /api/v1/hl/smart-wallets/list | light | 含评分的智能钱包列表 |
| 42 | GET | /api/v1/hl/smart-wallets/activity | medium | 智能钱包近期交易 |
| 43 | GET | /api/v1/hl/smart-wallets/signals | heavy | 按代币汇总的方向性信号 |
| 44 | GET | /api/v1/hl/pressure/pairs | heavy | 含智能持仓的多空压力 |
| 45 | GET | /api/v1/hl/pressure/summary | medium | 所有代币的压力摘要 |
Meteora(18 个端点)
| # | Method | Path | Tier | Description |
|---|---|---|---|---|
| 46 | GET | /api/v1/meteora/pools/trending | medium | 按交易量激增情况排列的热门池 |
| 47 | GET | /api/v1/meteora/pools/top | medium | 按交易量、手续费或 LP 数量排列的顶级池 |
| 48 | GET | /api/v1/meteora/pools/search | light | 按地址或代币名称搜索池 |
| 49 | GET | /api/v1/meteora/pools/detail | medium | 池的完整详情 |
| 50 | GET | /api/v1/meteora/pools/volume-history | light | 交易量时间序列 |
| 51 | GET | /api/v1/meteora/pools/events | light | 按时间顺序排列的事件动态 |
| 52 | GET | /api/v1/meteora/pools/fee-analysis | medium | 手续费领取分析 |
| 53 | GET | /api/v1/meteora/lps/top | heavy | 顶级 LP 排行榜 |
| 54 | POST | /api/v1/meteora/lps/profile | heavy | LP 完整档案 |
| 55 | GET | /api/v1/meteora/lps/whales | medium | 大额 LP 事件 |
| 56 | POST | /api/v1/meteora/lps/compare | whale | 比较 2-5 个 LP |
| 57 | GET | /api/v1/meteora/positions/active | medium | 活跃 LP 持仓 |
| 58 | GET | /api/v1/meteora/positions/history | light | 持仓事件历史记录(仅限 DLMM) |
| 59 | GET | /api/v1/meteora/platform/stats | light | 平台整体统计 |
| 60 | GET | /api/v1/meteora/platform/volume-heatmap | medium | 按操作和小时统计的交易量 |
| 61 | GET | /api/v1/meteora/platform/metengine-share | light | MetEngine 路由份额 |
| 62 | GET | /api/v1/meteora/dca/pressure | medium | 按代币统计的 DCA 累积压力 |
| 63 | GET | /api/v1/meteora/pools/smart-wallet | heavy | 智能钱包 LP 活动量最高的池 |
完整端点参考
响应封装
所有 200 响应均使用以下格式:{ "data": <payload> }
所有错误响应均使用:{ "error": "<message>" },可选包含 "reason" 字段。
POLYMARKET
1. GET /api/v1/markets/trending
交易量激增的热门市场。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| timeframe | string | 24h | 1h, 4h, 12h, 24h, 7d | 否 |
| category | string | - | 任意有效类别 | 否 |
| sort_by | string | volume_spike | volume_spike, trade_count, smart_money_inflow | 否 |
| limit | integer | 20 | 1-100 | 否 |
响应架构:
{
"data": [
{
"condition_id": "string",
"question": "string",
"category": "string",
"period_volume_usdc": "number",
"period_trade_count": "number",
"volume_spike_multiplier": "number",
"smart_money_wallets_active": "number",
"smart_money_net_direction": "string",
"buy_sell_ratio": "number",
"leader_price": "number"
}
]
}
2. GET /api/v1/markets/search
按关键词、类别和状态搜索市场。支持将 Polymarket URL 作为 query 参数。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| query | string | - | 关键词或 Polymarket URL | 否 |
| category | string | - | 任意有效类别 | 否 |
| status | string | active | active, closing_soon, resolved | 否 |
| has_smart_money_signal | boolean | - | true, false | 否 |
| sort_by | string | relevance | end_date, volume, relevance | 否 |
| limit | integer | 20 | 1-100 | 否 |
响应架构:
{
"data": [
{
"condition_id": "string",
"question": "string",
"category": "string",
"end_date": "string (ISO 8601)",
"status": "string",
"total_volume_usdc": "number",
"smart_money_outcome": "string | null",
"smart_money_wallets": "number",
"has_contrarian_signal": "boolean",
"leader_price": "number"
}
]
}
3. GET /api/v1/markets/categories
列出所有类别及其活跃度统计。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| include_stats | boolean | true | true, false | 否 |
| timeframe | string | 24h | 24h, 7d | 否 |
响应架构:
{
"data": [
{
"name": "string",
"active_markets": "number",
"period_volume": "number",
"period_trades": "number",
"unique_traders": "number"
}
]
}
4. GET /api/v1/platform/stats
平台范围的汇总统计数据。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| timeframe | string | 24h | 24h, 7d, 30d | 否 |
响应架构:
{
"data": {
"timeframe": "string",
"total_volume_usdc": "number",
"total_trades": "number",
"active_traders": "number",
"active_markets": "number",
"resolved_markets": "number",
"smart_wallet_count": "number",
"avg_trade_size_usdc": "number"
}
}
5. POST /api/v1/markets/intelligence
针对特定市场的完整聪明资金情报报告。
请求正文(JSON):
| 字段 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| condition_id | string | - | - | 是 |
| top_n_wallets | integer | 10 | 1-50 | 否 |
响应架构:
{
"data": {
"condition_id": "string",
"question": "string",
"category": "string",
"end_date": "string",
"outcomes": "object",
"smart_money": {
"consensus_outcome": "string",
"consensus_strength": "number",
"by_outcome": {
"<outcome_name>": {
"wallet_count": "number",
"total_usdc": "number",
"percentage": "number",
"top_wallets": [
{
"wallet": "string",
"score": "number",
"tags": ["string"],
"usdc_invested": "number",
"net_position": "number",
"avg_buy_price": "number"
}
]
}
}
},
"dumb_money": {
"consensus_outcome": "string",
"contrarian_to_smart": "boolean",
"by_outcome": "object"
},
"signal_analysis": {
"smart_vs_price_aligned": "boolean",
"contrarian_signal": "boolean",
"signal_summary": "string"
},
"recent_activity": {
"volume_24h": "number",
"trade_count_24h": "number",
"buy_sell_ratio": "number",
"volume_trend": "string"
}
}
}
6. GET /api/v1/markets/price-history
OHLCV 价格/概率时间序列。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| condition_id | string | - | - | 是 |
| timeframe | string | 7d | 1h, 4h, 12h, 24h, 7d, 30d | 否 |
| bucket_size | string | 1h | 5m, 15m, 1h, 4h, 12h, 1d | 否 |
响应架构:
{
"data": {
"condition_id": "string",
"question": "string",
"category": "string",
"candles_by_outcome": {
"<outcome_name>": [
{
"bucket": "string (ISO 8601)",
"token_id": "string",
"outcome": "string",
"open": "number",
"high": "number",
"low": "number",
"close": "number",
"volume": "number",
"trade_count": "number",
"vwap": "number"
}
]
}
}
}
7. POST /api/v1/markets/sentiment
带有聪明资金叠加信息的情绪时间序列。
请求正文(JSON):
| 字段 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| condition_id | string | - | - | 是 |
| timeframe | string | 7d | 24h, 7d, 30d | 否 |
| bucket_size | string | 4h | 1h, 4h, 12h, 1d | 否 |
响应架构:
{
"data": {
"condition_id": "string",
"question": "string",
"overall_sentiment": "object",
"by_outcome": "object",
"time_series": "array",
"momentum": "object"
}
}
8. POST /api/v1/markets/participants
按评分层级汇总参与者信息。
请求正文(JSON):
| 字段 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| condition_id | string | - | - | 是 |
响应架构:
{
"data": {
"condition_id": "string",
"question": "string",
"total_wallets": "number",
"total_usdc": "number",
"by_outcome": "object",
"tier_distribution": "object"
}
}
9. POST /api/v1/markets/insiders
使用 7 项信号行为评分检测内幕模式。
请求正文(JSON):
| 字段 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| condition_id | string | - | - | 是 |
| limit | integer | 25 | 1-100 | 否 |
| min_score | integer | 20 | 0-100 | 否 |
响应架构:
{
"data": {
"condition_id": "string",
"question": "string",
"category": "string",
"insiders": [
{
"wallet": "string",
"insider_score": "number",
"signals": "object",
"outcome": "string",
"net_shares": "number",
"buy_usdc": "number",
"wallet_age_days": "number",
"first_trade_timestamp": "string"
}
],
"summary": "object"
}
}
10. GET /api/v1/markets/trades
市场的按时间排序的交易动态。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| condition_id | string | - | - | 是 |
| timeframe | string | 24h | 1h, 4h, 12h, 24h, 7d, 30d | 否 |
| side | string | - | BUY, SELL | 否 |
| min_usdc | number | 0 | >= 0 | 否 |
| smart_money_only | boolean | false | true, false | 否 |
| limit | integer | 100 | 1-500 | 否 |
响应架构:
{
"data": {
"condition_id": "string",
"question": "string",
"category": "string",
"trade_count": "number",
"total_volume": "number",
"trades": [
{
"tx_hash": "string",
"wallet": "string",
"token_id": "string",
"outcome": "string",
"side": "string",
"price": "number",
"size": "number",
"usdc_size": "number",
"timestamp": "string",
"wallet_score": "number",
"wallet_tags": ["string"]
}
]
}
}
11. GET /api/v1/markets/similar
根据钱包重叠情况查找相关市场。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| condition_id | string | - | - | 是 |
| limit | integer | 10 | 1-50 | 否 |
响应架构:
{
"data": [
{
"condition_id": "string",
"question": "string",
"category": "string",
"shared_wallet_count": "number",
"wallet_overlap_pct": "number",
"total_volume_usdc": "number"
}
]
}
12. GET /api/v1/markets/opportunities
聪明资金与价格走势相左的市场。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| min_signal_strength | string | moderate | weak, moderate, strong | 否 |
| category | string | - | any valid category | 否 |
| closing_within_hours | integer | - | max 720 | 否 |
| min_smart_wallets | integer | 3 | >= 1 | 否 |
| limit | integer | 20 | 1-100 | 否 |
响应架构:
{
"data": [
{
"condition_id": "string",
"question": "string",
"category": "string",
"smart_money_favors": "string",
"smart_money_percentage": "number",
"smart_wallet_count": "number",
"avg_smart_score": "number",
"price_signal_gap": "number",
"signal_direction": "string",
"signal_strength": "string",
"leader_price": "number",
"time_until_close": "string"
}
]
}
13. GET /api/v1/markets/high-conviction
高信念的聪明资金押注。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| category | string | - | any valid category | 否 |
| min_smart_wallets | integer | 5 | >= 1 | 否 |
| min_avg_score | integer | 65 | 0-100 | 否 |
| limit | integer | 20 | 1-100 | 否 |
响应架构:
{
"data": [
{
"condition_id": "string",
"question": "string",
"category": "string",
"smart_wallet_count": "number",
"avg_smart_score": "number",
"total_smart_usdc": "number",
"conviction_score": "number",
"favored_outcome": "string",
"favored_outcome_percentage": "number",
"entry_vs_current_gap": "number"
}
]
}
14. GET /api/v1/markets/capital-flow
按类别划分的资金流(板块轮动)。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| timeframe | string | 7d | 24h, 7d, 30d | 否 |
| smart_money_only | boolean | false | true, false | 否 |
| top_n_categories | integer | 20 | 1-50 | 否 |
响应架构:
{
"data": {
"timeframe": "string",
"total_net_flow": "number",
"categories": [
{
"category": "string",
"current_buy_volume": "number",
"current_sell_volume": "number",
"current_net_flow": "number",
"previous_buy_volume": "number",
"previous_sell_volume": "number",
"previous_net_flow": "number",
"net_flow_change": "number",
"flow_trend": "string"
}
],
"biggest_inflow": "string",
"biggest_outflow": "string"
}
}
15. GET /api/v1/trades/whales
巨鲸的大额交易。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| min_usdc | number | 10000 | >= 1 | 否 |
| timeframe | string | 24h | 1h, 4h, 12h, 24h, 7d, 30d | 否 |
| condition_id | string | - | - | 否 |
| category | string | - | any valid category | 否 |
| side | string | - | BUY, SELL | 否 |
| smart_money_only | boolean | false | true, false | 否 |
| limit | integer | 50 | 1-200 | 否 |
响应架构:
{
"data": [
{
"tx_hash": "string",
"wallet": "string",
"condition_id": "string",
"token_id": "string",
"question": "string",
"outcome": "string",
"category": "string",
"side": "string",
"price": "number",
"size": "number",
"usdc_size": "number",
"timestamp": "string",
"wallet_score": "number",
"win_rate": "number",
"wallet_tags": ["string"]
}
]
}
注意: 此端点除了真实交易,还会返回 REDEEM 交易(已结算市场的派彩)。按 side=BUY 或 side=SELL 筛选即可排除这些交易。REDEEM 的 price=1.00,且 side=REDEEM。
16. GET /api/v1/markets/volume-heatmap
按类别、小时或日期显示成交量分布。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| timeframe | string | 24h | 24h, 7d, 30d | 否 |
| group_by | string | category | category, hour_of_day, day_of_week | 否 |
| smart_money_only | boolean | false | true, false | 否 |
响应架构:
{
"data": {
"total_volume": "number",
"total_trades": "number",
"breakdown": [
{
"label": "string",
"volume": "number",
"trade_count": "number",
"pct_of_total": "number",
"volume_change_pct": "number",
"trend": "string"
}
],
"biggest_gainer": "string",
"biggest_loser": "string"
}
}
17. POST /api/v1/wallets/profile
完整的钱包档案。
请求正文(JSON):
| 字段 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| wallet | string | - | lowercase address | 是 |
| include_positions | boolean | true | true, false | 否 |
| include_trades | boolean | true | true, false | 否 |
| trades_limit | integer | 50 | 1-500 | 否 |
响应架构:
{
"data": {
"wallet": "string",
"profile": {
"score": "number",
"sharpe": "number",
"win_rate": "number",
"total_pnl": "number",
"total_volume": "number",
"resolved_positions": "number",
"tags": ["string"],
"tier": "string",
"primary_category": "string",
"is_specialist": "boolean"
},
"category_breakdown": "array",
"active_positions": "array",
"recent_trades": "array"
}
}
注意: 钱包地址必须为小写。
18. POST /api/v1/wallets/activity
钱包的近期交易活动。
请求正文(JSON):
| 字段 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| wallet | string | - | lowercase address | 是 |
| timeframe | string | 24h | 1h, 4h, 24h, 7d, 30d | 否 |
| category | string | - | any valid category | 否 |
| min_usdc | number | 0 | >= 0 | 否 |
| limit | integer | 100 | 1-500 | 否 |
响应架构:
{
"data": {
"wallet": "string",
"wallet_score": "number",
"wallet_tags": ["string"],
"period_summary": "object",
"trades": "array"
}
}
19. POST /api/v1/wallets/pnl-breakdown
按市场细分的盈亏情况。
请求正文(JSON):
| 字段 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| wallet | string | - | lowercase address | 是 |
| timeframe | string | 90d | 7d, 30d, 90d, all | 否 |
| limit | integer | 50 | 1-200 | 否 |
响应架构:
{
"data": {
"wallet": "string",
"total_realized_pnl": "number",
"total_positions": "number",
"winning_positions": "number",
"losing_positions": "number",
"best_trade": "object",
"worst_trade": "object",
"positions": "array"
}
}
20. POST /api/v1/wallets/compare
并排比较 2-5 个钱包。
请求正文(JSON):
| 字段 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| wallets | string[] | - | 2-5 个小写地址 | 是 |
| include_shared_positions | boolean | true | true, false | 否 |
响应架构:
{
"data": {
"wallets": "array of wallet profiles",
"comparison_winners": "object",
"category_overlap": "object",
"shared_positions": "array"
}
}
定价说明: 费用随钱包数量变化:base * wallets.length / 2。
21. POST /api/v1/wallets/copy-traders
检测复制目标钱包交易的钱包。
请求正文(JSON):
| 字段 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| wallet | string | - | 小写地址 | 是 |
| max_lag_minutes | integer | 60 | 1-1440 | 否 |
| timeframe | string | 7d | 24h, 7d, 30d | 否 |
| min_overlap_trades | integer | 3 | >= 1 | 否 |
| limit | integer | 20 | 1-100 | 否 |
响应架构:
{
"data": [
{
"wallet": "string",
"overlap_trades": "number",
"avg_lag_seconds": "number",
"copied_tokens": "array",
"wallet_score": "number"
}
]
}
22. GET /api/v1/wallets/top-performers
排行榜。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| timeframe | string | 7d | today, 24h, 7d, 30d, 90d, 365d | 否 |
| category | string | - | 任意有效类别 | 否 |
| metric | string | pnl | pnl, roi, sharpe, win_rate, volume | 否 |
| min_trades | integer | 5 | >= 1 | 否 |
| limit | integer | 25 | 1-100 | 否 |
响应架构:
{
"data": [
{
"rank": "number",
"wallet": "string",
"period_pnl_usdc": "number",
"period_roi_percent": "number",
"period_trades": "number",
"period_win_rate": "number",
"overall_score": "number",
"sharpe_ratio": "number",
"primary_category": "string",
"tags": ["string"],
"active_positions_count": "number"
}
]
}
定价说明: 未设置 category 筛选条件的查询费用为 2 倍,因为需要全表扫描。
23. GET /api/v1/wallets/niche-experts
特定类别中的顶级钱包。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| category | string | - | 任意有效类别 | 是 |
| min_category_trades | integer | 10 | >= 1 | 否 |
| sort_by | string | category_sharpe | category_sharpe, category_pnl, category_volume | 否 |
| limit | integer | 25 | 1-100 | 否 |
响应架构:
{
"data": [
{
"wallet": "string",
"category_sharpe": "number",
"category_win_rate": "number",
"category_volume": "number",
"category_pnl": "number",
"category_positions": "number",
"is_specialist": "boolean",
"volume_concentration": "number",
"overall_score": "number",
"tags": ["string"]
}
]
}
24. GET /api/v1/markets/resolutions
包含聪明资金准确率的已结算市场。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| category | string | - | 任意有效类别 | 否 |
| query | string | - | 关键词 | 否 |
| sort_by | string | resolved_recently | resolved_recently, volume, smart_money_accuracy | 否 |
| limit | integer | 25 | 1-100 | 否 |
响应架构:
{
"data": [
{
"condition_id": "string",
"question": "string",
"category": "string",
"winning_outcome": "string",
"end_date": "string",
"total_volume_usdc": "number",
"smart_money_correct": "number",
"smart_money_wrong": "number",
"smart_money_accuracy": "number"
}
]
}
25. GET /api/v1/wallets/alpha-callers
在市场后来呈现趋势之前提前交易的钱包。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| days_back | integer | 30 | 1-90 | 否 |
| min_days_early | integer | 7 | 1-60 | 否 |
| min_bet_usdc | number | 100 | >= 0 | 否 |
| limit | integer | 25 | 1-100 | 否 |
响应架构:
{
"data": [
{
"wallet": "string",
"market_question": "string",
"condition_id": "string",
"entry_date": "string",
"days_before_resolution": "number",
"bet_size_usdc": "number",
"winning_outcome": "string",
"wallet_score": "number",
"win_rate": "number"
}
]
}
26. GET /api/v1/markets/dumb-money
市场中低分交易者的持仓(反向指标)。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| condition_id | string | - | - | 是 |
| max_score | integer | 30 | 0-100 | 否 |
| min_trades | integer | 5 | >= 1 | 否 |
| limit | integer | 50 | 1-200 | 否 |
响应架构:
{
"data": {
"condition_id": "string",
"question": "string",
"category": "string",
"summary": {
"total_wallets": "number",
"total_usdc": "number",
"avg_score": "number",
"consensus_outcome": "string"
},
"positions": "array"
}
}
27. GET /api/v1/wallets/insiders
按行为评分列出全局内幕交易候选钱包。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 取值 | 必填 |
|---|---|---|---|---|
| limit | integer | 50 | 1-200 | 否 |
| min_score | integer | 50 | 0-100 | 否 |
| max_wallet_age_days | integer | 60 | 1-90 | 否 |
响应架构:
{
"data": {
"candidates": [
{
"wallet": "string",
"insider_score": "number",
"wallet_age_days": "number",
"first_trade": "string",
"markets_traded": "number",
"total_buy_usdc": "number",
"category_count": "number",
"categories": ["string"],
"win_count": "number",
"total_resolved": "number",
"win_rate": "number",
"signals": "object"
}
],
"total_candidates": "number"
}
}
HYPERLIQUID
28. GET /api/v1/hl/platform/stats
平台汇总统计。无参数。
响应架构:
{
"data": {
"total_volume_usd": "number",
"total_trades": "number",
"active_traders": "number",
"smart_wallet_count": "number",
"unique_coins": "number"
}
}
29. GET /api/v1/hl/coins/trending
按活跃度排列的热门币种。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| timeframe | string | 24h | 1h, 4h, 12h, 24h, 7d | 否 |
| limit | integer | 20 | 1-100 | 否 |
响应架构:
{
"data": [
{
"coin": "string",
"volume_usd": "number",
"trade_count": "number",
"unique_traders": "number",
"long_short_ratio": "number",
"smart_wallet_count": "number",
"volume_change_pct": "number"
}
]
}
已知问题: timeframe=24h 经常返回空结果。请使用 timeframe=7d 作为备用。
30. GET /api/v1/hl/coins/list
所有交易币种及其 7d 统计数据。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| limit | integer | 100 | 1-500 | 否 |
响应架构:
{
"data": [
{
"coin": "string",
"volume_usd": "number",
"trade_count": "number",
"unique_traders": "number"
}
]
}
31. GET /api/v1/hl/coins/volume-heatmap
按币种和小时统计的交易量。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| timeframe | string | 24h | 24h, 7d | 否 |
| limit | integer | 20 | 1-50 | 否 |
响应架构:
{
"data": [
{
"coin": "string",
"bucket": "string",
"volume_usd": "number",
"trade_count": "number",
"smart_volume_usd": "number"
}
]
}
32. GET /api/v1/hl/traders/leaderboard
按排名排列的交易者排行榜。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| timeframe | string | all | 1d, 7d, 30d, all | 否 |
| sort_by | string | pnl | pnl, roi, win_rate, volume | 否 |
| sort_order | string | desc | desc, asc | 否 |
| min_trades | integer | 10 | >= 1 | 否 |
| limit | integer | 25 | 1-100 | 否 |
响应架构:
{
"data": [
{
"trader": "string",
"total_pnl": "number",
"total_volume": "number",
"total_trades": "number",
"winning_trades": "number",
"win_rate": "number",
"roi_pct": "number",
"smart_score": "number"
}
]
}
33. POST /api/v1/hl/traders/profile
交易者完整档案。
请求正文(JSON):
| 字段 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| trader | string | - | 0x address | 是 |
| days | integer | 30 | 1-365 | 否 |
| trades_limit | integer | 50 | 1-500 | 否 |
响应架构:
{
"data": {
"trader": "string",
"stats": "object",
"coin_breakdown": "array",
"daily_pnl": "array",
"recent_trades": "array"
}
}
已知问题: 偶尔会出现 500 错误。备用方案:使用 leaderboard + pnl-by-coin。
34. POST /api/v1/hl/traders/compare
比较 2-5 名交易者。
请求正文(JSON):
| 字段 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| traders | string[] | - | 2-5 个 0x address | 是 |
响应架构:
{
"data": {
"traders": "array of trader profiles",
"shared_coins": "array",
"comparison_winners": "object"
}
}
定价说明: 费用随交易者数量变化:base * traders.length / 2。
35. GET /api/v1/hl/traders/daily-pnl
包含连胜和连败信息的每日 PnL 时间序列。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| trader | string | - | 0x address | 是 |
| days | integer | 30 | 1-365 | 否 |
响应架构:
{
"data": [
{
"date": "string",
"pnl": "number",
"volume": "number",
"trades": "number",
"cumulative_pnl": "number",
"streak": "number"
}
]
}
36. POST /api/v1/hl/traders/pnl-by-coin
按币种拆分的 PnL 明细。仅显示已实现(已平仓)PnL。
请求正文(JSON):
| 字段 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| trader | string | - | 0x address | 是 |
| days | integer | 90 | 1-365 | 否 |
响应架构:
{
"data": [
{
"coin": "string",
"pnl": "number",
"volume": "number",
"trades": "number",
"winning_trades": "number",
"win_rate": "number"
}
]
}
注意: 仅包含已实现(已平仓)PnL。无法获取未平仓头寸的未实现 PnL。
37. GET /api/v1/hl/traders/fresh-whales
新出现的大额交易钱包(由经验丰富的交易者创建的新账户、机构交易台或内部人士)。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| max_wallet_age_days | integer | 14 | 1-90 | 否 |
| min_volume | number | 100000 | >= 0 | 否 |
| min_pnl | number | 0 | 任意 | 否 |
| limit | integer | 25 | 1-100 | 否 |
响应架构:
{
"data": [
{
"trader": "string",
"first_trade": "string",
"wallet_age_days": "number",
"total_pnl": "number",
"total_volume": "number",
"total_trades": "number",
"winning_trades": "number"
}
]
}
38. GET /api/v1/hl/trades/whales
大额交易。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| min_usd | number | 50000 | >= 1 | 否 |
| timeframe | string | 24h | 1h, 4h, 12h, 24h, 7d | 否 |
| coin | string | - | 大写交易代码(例如 BTC) | 否 |
| side | string | - | Open Long, Open Short, Close Long, Close Short | 否 |
| direction | string | - | Long, Short | 否 |
| smart_money_only | boolean | false | true, false | 否 |
| limit | integer | 50 | 1-200 | 否 |
响应架构:
{
"data": [
{
"trader": "string",
"coin": "string",
"side": "string",
"direction": "string",
"price": "number",
"size": "number",
"usd_value": "number",
"closed_pnl": "number",
"timestamp": "string",
"smart_score": "number"
}
]
}
39. GET /api/v1/hl/trades/feed
某个币种的时间顺序交易动态。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| coin | string | - | 大写交易代码 | 是 |
| limit | integer | 100 | 1-500 | 否 |
响应架构:
{
"data": [
{
"trader": "string",
"coin": "string",
"side": "string",
"direction": "string",
"price": "number",
"size": "number",
"usd_value": "number",
"closed_pnl": "number",
"timestamp": "string"
}
]
}
40. GET /api/v1/hl/trades/long-short-ratio
多空交易量比率时间序列。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| coin | string | - | 大写交易代码 | 是 |
| timeframe | string | 7d | 24h, 7d, 30d | 否 |
| bucket_size | string | 4h | 1h, 4h, 12h, 1d | 否 |
响应架构:
{
"data": [
{
"bucket": "string",
"long_volume": "number",
"short_volume": "number",
"long_short_ratio": "number",
"smart_long_volume": "number",
"smart_short_volume": "number",
"smart_long_short_ratio": "number"
}
]
}
已知问题: 可能返回全为 0 的结果。备用方案:通过统计 /hl/trades/whales 中的多头与空头交易量来重建。
41. GET /api/v1/hl/smart-wallets/list
智能钱包列表。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| sort_by | string | score | score, pnl, volume | 否 |
| limit | integer | 50 | 1-200 | 否 |
响应架构:
{
"data": [
{
"trader": "string",
"score": "number",
"total_pnl": "number",
"total_volume": "number",
"total_trades": "number",
"win_rate": "number"
}
]
}
42. GET /api/v1/hl/smart-wallets/activity
智能钱包近期交易。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| timeframe | string | 24h | 1h, 4h, 12h, 24h, 7d | 否 |
| min_score | integer | 60 | 0-100 | 否 |
| limit | integer | 100 | 1-500 | 否 |
响应架构:
{
"data": {
"period_summary": "object",
"trades": "array"
}
}
43. GET /api/v1/hl/smart-wallets/signals
按币种汇总的方向性信号。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| timeframe | string | 24h | 6h, 12h, 24h, 7d | 否 |
| min_score | integer | 60 | 0-100 | 否 |
| limit | integer | 20 | 1-50 | 否 |
响应架构:
{
"data": [
{
"coin": "string",
"direction": "string",
"smart_wallet_count": "number",
"total_volume": "number",
"avg_score": "number",
"top_traders": "array"
}
]
}
已知问题: timeframe=24h 经常返回空结果。备用方案:使用 timeframe=7d。
44. GET /api/v1/hl/pressure/pairs
包含智能仓位的多空压力。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| coins | string | - | 逗号分隔(默认使用排名前 10 的币种) | 否 |
| trades_limit | integer | 20 | 1-100 | 否 |
响应架构:
{
"data": {
"coins": [
{
"coin": "string",
"long_pressure": "number",
"short_pressure": "number",
"long_avg_entry": "number",
"short_avg_entry": "number",
"long_smart_count": "number",
"short_smart_count": "number",
"smart_positions": "array"
}
]
}
}
45. GET /api/v1/hl/pressure/summary
所有币种的压力摘要。无参数。
响应架构:
{
"data": {
"coins": [
{
"coin": "string",
"long_pressure": "number",
"short_pressure": "number",
"long_percent": "number",
"short_percent": "number",
"long_avg_entry": "number",
"short_avg_entry": "number"
}
]
}
}
METEORA
46. GET /api/v1/meteora/pools/trending
按交易量激增情况排列的热门池。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| pool_type | string | all | dlmm, damm_v2, all | 否 |
| timeframe | string | 24h | 24h, 7d | 否 |
| limit | integer | 20 | 1-100 | 否 |
响应架构:
{
"data": [
{
"pool_address": "string",
"pool_type": "string",
"token_x": "string",
"token_y": "string",
"volume_usd": "number",
"event_count": "number",
"unique_lps": "number",
"volume_change_pct": "number"
}
]
}
已知问题: 可能包含重复条目。请按 pool_address 去重。
47. GET /api/v1/meteora/pools/top
按交易量、费用或 LP 数量排列的顶级池。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| pool_type | string | all | dlmm, damm_v2, all | 否 |
| sort_by | string | volume | volume, lp_count, events, fees | 否 |
| timeframe | string | 7d | 24h, 7d, 30d | 否 |
| limit | integer | 20 | 1-100 | 否 |
响应架构:
{
"data": [
{
"pool_address": "string",
"pool_type": "string",
"token_x": "string",
"token_y": "string",
"volume_usd": "number",
"event_count": "number",
"unique_lps": "number",
"total_fees_usd": "number"
}
]
}
48. GET /api/v1/meteora/pools/search
按地址或代币名称搜索池。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| query | string | - | 池地址或代币名称 | 是 |
| pool_type | string | all | dlmm, damm_v2, all | 否 |
| limit | integer | 10 | 1-50 | 否 |
响应架构:
{
"data": [
{
"pool_address": "string",
"pool_type": "string",
"token_x": "string",
"token_y": "string",
"volume_usd": "number",
"event_count": "number",
"unique_lps": "number"
}
]
}
49. GET /api/v1/meteora/pools/detail
完整的池详情。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| pool_address | string | - | Solana 公钥 | 是 |
| pool_type | string | - | dlmm, damm_v2(省略时自动检测) | 否 |
响应架构:
{
"data": {
"pool_address": "string",
"pool_type": "string",
"token_x": "string",
"token_y": "string",
"total_volume_usd": "number",
"total_events": "number",
"unique_lps": "number",
"volume_by_action": "object",
"net_liquidity_usd": "number"
}
}
50. GET /api/v1/meteora/pools/volume-history
成交量时间序列。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| pool_address | string | - | Solana 公钥 | 是 |
| pool_type | string | - | dlmm, damm_v2(省略时自动检测) | 否 |
| timeframe | string | 7d | 24h, 7d, 30d | 否 |
| bucket_size | string | 4h | 1h, 4h, 1d | 否 |
响应架构:
{
"data": [
{
"bucket": "string",
"volume_usd": "number",
"event_count": "number",
"action_breakdown": "object"
}
]
}
51. GET /api/v1/meteora/pools/events
按时间顺序排列的事件流。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| pool_address | string | - | Solana 公钥 | 是 |
| pool_type | string | - | dlmm, damm_v2(省略时自动检测) | 否 |
| limit | integer | 100 | 1-500 | 否 |
响应架构:
{
"data": [
{
"owner": "string",
"pool_address": "string",
"event_type": "string",
"usd_total": "number",
"timestamp": "string",
"tx_id": "string"
}
]
}
52. GET /api/v1/meteora/pools/fee-analysis
费用领取分析。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| pool_address | string | - | Solana 公钥 | 是 |
| pool_type | string | - | dlmm, damm_v2(省略时自动检测) | 否 |
| timeframe | string | 7d | 24h, 7d, 30d | 否 |
响应架构:
{
"data": {
"pool_address": "string",
"total_fees_claimed": "number",
"unique_claimers": "number",
"time_series": "array",
"top_claimers": "array"
}
}
53. GET /api/v1/meteora/lps/top
顶级 LP 排行榜。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| pool_type | string | all | dlmm, damm_v2, all | 否 |
| sort_by | string | volume | volume, pool_count, events | 否 |
| timeframe | string | 30d | 7d, 30d | 否 |
| limit | integer | 25 | 1-100 | 否 |
响应架构:
{
"data": [
{
"owner": "string",
"total_volume_usd": "number",
"pool_count": "number",
"event_count": "number",
"pool_types": ["string"]
}
]
}
已知问题: sort_by=fees 可能返回 500。请使用 sort_by=volume 作为备用选项。
54. POST /api/v1/meteora/lps/profile
LP 完整档案。
请求正文(JSON):
| 字段 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| owner | string | - | Solana 公钥 | 是 |
| pool_type | string | all | dlmm, damm_v2, all | 否 |
| events_limit | integer | 50 | 1-500 | 否 |
响应架构:
{
"data": {
"owner": "string",
"summary": "object",
"pool_breakdown": "array",
"recent_events": "array"
}
}
55. GET /api/v1/meteora/lps/whales
大额 LP 事件。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| pool_type | string | all | dlmm, damm_v2, all | 否 |
| min_usd | number | 10000 | >= 1 | 否 |
| timeframe | string | 24h | 24h, 7d, 30d | 否 |
| limit | integer | 50 | 1-200 | 否 |
响应架构:
{
"data": [
{
"owner": "string",
"pool_address": "string",
"pool_type": "string",
"event_type": "string",
"usd_total": "number",
"timestamp": "string"
}
]
}
56. POST /api/v1/meteora/lps/compare
比较 2-5 个 LP。
请求正文(JSON):
| 字段 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| owners | string[] | - | 2-5 个 Solana 公钥 | 是 |
| pool_type | string | all | dlmm, damm_v2, all | 否 |
响应架构:
{
"data": {
"lps": "array of LP profiles",
"shared_pools": "array",
"comparison_winners": "object"
}
}
定价说明: 费用随 LP 数量增加:base * owners.length / 2。
57. GET /api/v1/meteora/positions/active
活跃的 LP 仓位。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| pool_address | string | - | Solana 公钥 | 否 |
| owner | string | - | Solana 公钥 | 否 |
| pool_type | string | all | dlmm, damm_v2, all | 否 |
| limit | integer | 50 | 1-200 | 否 |
响应结构:
{
"data": [
{
"owner": "string",
"pool_address": "string",
"pool_type": "string",
"position_address": "string",
"deposited_usd": "number",
"withdrawn_usd": "number",
"net_value_usd": "number",
"event_count": "number"
}
]
}
58. GET /api/v1/meteora/positions/history
仓位事件历史记录(仅限 DLMM)。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| position_address | string | - | - | 是 |
响应结构:
{
"data": {
"position_address": "string",
"events": [
{
"event_type": "string",
"usd_total": "number",
"timestamp": "string",
"tx_id": "string"
}
]
}
}
59. GET /api/v1/meteora/platform/stats
平台整体统计数据。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| pool_type | string | all | dlmm, damm_v2, all | 否 |
响应结构:
{
"data": {
"total_volume_usd": "number",
"total_events": "number",
"active_lps": "number",
"active_pools": "number",
"by_pool_type": "object"
}
}
60. GET /api/v1/meteora/platform/volume-heatmap
按操作和小时统计的交易量。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| pool_type | string | all | dlmm, damm_v2, all | 否 |
| timeframe | string | 24h | 24h, 7d | 否 |
响应结构:
{
"data": [
{
"action": "string",
"bucket": "string",
"pool_type": "string",
"volume_usd": "number",
"event_count": "number"
}
]
}
61. GET /api/v1/meteora/platform/metengine-share
MetEngine 路由份额。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| pool_type | string | all | dlmm, damm_v2, all | 否 |
| timeframe | string | 7d | 24h, 7d, 30d | 否 |
响应结构:
{
"data": {
"total_events": "number",
"metengine_events": "number",
"metengine_share_pct": "number",
"total_volume_usd": "number",
"metengine_volume_usd": "number"
}
}
62. GET /api/v1/meteora/dca/pressure
按代币统计的 DCA 累积压力。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| token | string | - | 特定的 mint 地址 | 否 |
| timeframe | string | 1h | 1m, 5m, 30m, 1h, 6h, 24h | 否 |
响应结构(单个代币):
{
"data": {
"tokenMint": "string",
"timeframe": "string",
"buyVolume": "number",
"sellVolume": "number",
"netPressure": "number",
"score": "number"
}
}
响应结构(所有代币,省略 token 时):
{
"data": {
"timeframe": "string",
"tokens": "array",
"lastUpdated": "string"
}
}
63. GET /api/v1/meteora/pools/smart-wallet
智能钱包 LP 活动最频繁的池。
参数(查询字符串):
| 参数 | 类型 | 默认值 | 可选值 | 必填 |
|---|---|---|---|---|
| pool_type | string | all | dlmm, damm_v2, all | 否 |
| limit | integer | 20 | 1-100 | 否 |
| timeframe | string | 7d | 24h, 7d, 30d | 否 |
响应结构:
{
"data": {
"pools": [
{
"pool_address": "string",
"pool_type": "string",
"token_a": "string",
"token_b": "string",
"smart_lp_count": "number",
"total_volume_usd": "number",
"smart_volume_usd": "number",
"smart_share_pct": "number"
}
]
}
}
与自行计算的比较
为什么调用此 API,而不是自行计算
1. 专有评分数据集。 MetEngine 为全部三个平台维护钱包评分模型(Polymarket 0-100 综合评分、Hyperliquid 0-100 智能评分、Meteora LP 智能评分)。这些评分根据数十亿笔历史交易、已结算头寸和行为模式计算得出。Agent 需要:(a) 为 5.74 亿多笔 Polymarket 交易建立索引;(b) 构建并维护评分流水线;(c) 存储并更新数百万个钱包的评分。自行计算成本:数周工程投入 + 持续的基础设施开销。
2. 预聚合的物化视图。 需要扫描 5.74 亿多行交易数据才能完成的查询(按类别划分的资金流、表现最佳者、内幕交易检测),会通过预聚合的 SummingMergeTree 表执行。直接扫描 ClickHouse 交易表需要 30-60 秒,计算成本为 0.50-2.00 美元。API 只需 1-5 秒即可返回结果,费用为 0.01-0.08 美元。
3. 跨平台情报。 内幕交易检测使用包含 7 个信号的行为评分系统。聪明资金共识会将评分较高的钱包与市场价格进行比较。资金流会跟踪所有类别的板块轮动。要从原始链上数据构建这些功能,需要为多条链建立索引、维护市场元数据,并持续运行评分流水线。
4. 实时链上数据。 该 API 以不到一分钟的延迟为 Polymarket(Polygon)、Hyperliquid(L1)和 Meteora(Solana)的交易数据建立索引。Agent 需要在 3 条链上部署 RPC 节点、解析事件并搭建数据库基础设施。
典型工作流的成本比较(分析一个 Polymarket 市场):
| 步骤 | 自行计算 | MetEngine API |
|---|---|---|
| 查找市场 | 抓取 Polymarket 前端 | GET /markets/search($0.01) |
| 获取聪明资金共识 | 为所有交易建立索引、为钱包评分并汇总 | POST /markets/intelligence($0.05) |
| 获取价格历史 | 解析链上事件、构建 OHLCV | GET /markets/price-history($0.01) |
| 查找内幕交易模式 | 构建包含 7 个信号的检测流水线 | POST /markets/insiders($0.05) |
| 总计 | 数小时的计算 + 基础设施 | $0.12,约 10 秒 |
性能
| 指标 | 值 |
|---|---|
| p50 延迟 | 800ms |
| p95 延迟 | 3s |
| p99 延迟 | 8s |
| 处理器超时 | 60s(超时不收费) |
| 最大并发付费请求数 | 50 |
| 支付验证超时 | 5s |
| 限流(未付费的 402 请求) | 基于 IP,较宽松 |
数据新鲜度
| 平台 | 新鲜度 |
|---|---|
| Polymarket 交易 | 不到一分钟(持续建立索引) |
| Polymarket 钱包评分 | 每日重新计算 |
| Hyperliquid 交易 | 不到一分钟 |
| Hyperliquid 智能评分 | 持续更新(基于公式) |
| Meteora 事件 | 不到一分钟 |
| Meteora LP 评分 | 每日重新计算 |
错误处理
HTTP 状态码
| 代码 | 含义 | Agent 操作 |
|---|---|---|
| 200 | 成功。数据位于 { "data": ... } 中。结算证明位于 PAYMENT-RESPONSE 标头中。 | 处理数据 |
| 400 | 请求错误(参数无效、支付标头格式错误) | 修正请求参数 |
| 402 | 需要付款(首次请求)或支付验证失败 | 签名并重新发送请求(附带付款),或检查付款有效性 |
| 404 | 找不到端点 | 根据本文档确认端点路径 |
| 429 | 超出限流限制 | 暂停后重试 |
| 500 | 内部服务器错误 | 重试一次,然后尝试备用端点 |
| 502 | 支付验证失败(facilitator 错误) | 重试 |
| 503 | 服务器已满负荷或支付服务不可用 | 查看 Retry-After 标头,等待一段时间后重试 |
| 504 | 查询执行超时。不收费。 | 缩小参数范围后重试,或使用备用端点 |
错误响应格式
{
"error": "Human-readable error message",
"reason": "Optional machine-readable reason (on 402 verification failures)"
}
结算边缘情况
| Header | 含义 |
|---|---|
X-Payment-Settlement: failed | 查询成功,但结算失败。已返回数据,不收费。罕见的边缘情况。 |
200 响应中没有 PAYMENT-RESPONSE header | 未尝试结算(正常流程中不应发生)。 |
备用策略
当端点失败时,使用以下替代方案:
| 失败的端点 | 备用方案 |
|---|---|
| /markets/opportunities (504) | /markets/high-conviction |
| /wallets/top-performers (503 on 7d) | 尝试 timeframe=24h |
| /markets/insiders (timeout) | 使用带有 market 筛选条件的 /markets/trades |
| /hl/coins/trending (empty on 24h) | 使用 timeframe=7d |
| /hl/smart-wallets/signals (empty on 24h) | 使用 timeframe=7d |
| /hl/trades/long-short-ratio (all zeros) | 按 side 从 /hl/trades/whales 重建 |
| /hl/traders/profile (500) | /hl/traders/leaderboard + /hl/traders/pnl-by-coin |
| /meteora/lps/top?sort_by=fees (500) | 使用 sort_by=volume |
| /meteora/lps/profile (500) | 使用 /meteora/pools/fee-analysis 获取 claimer 数据 |
健康检查
GET https://agent.metengine.xyz/health
免费。无需付款。返回:
{
"status": "ok | degraded",
"service": "data-agent",
"auth_mode": "x402",
"clickhouse": { "status": "ok | down" },
"postgres": { "status": "ok | down" },
"redis": { "status": "ok | down" },
"semaphore": {
"active": "number",
"waiting": "number",
"max": 250,
"timeouts_1m": "number"
},
"queries_1m": "object",
"cache_1m": "object",
"top_errors": "object",
"facilitator": "boolean",
"network": "mainnet"
}
status: "ok"表示所有后端均正常。status: "degraded"表示至少有一个后端不可用。请检查各组件的状态。facilitator: true表示 x402 付款处理正常运行。semaphore.active接近semaphore.max表示服务负载较高(预计会出现 503)。
限制
此 API 不提供以下功能:
- 不执行交易。 仅提供只读分析。无法在任何平台下单。
- 不提供实时流。 仅支持请求/响应。不提供 WebSocket 数据流。
- 不支持按需回填历史数据。 数据始于 MetEngine 开始为各平台建立索引的时间。
- 不提供 Hyperliquid 未实现盈亏。 仅提供已平仓(已实现)盈亏。
- 不提供 Meteora 持仓的按市值计价数据。 净值按存款减去取款计算,而非当前市值。
- 不提供 Polymarket 订单簿数据。 仅提供交易数据,不包括未成交订单或流动性深度。
- 不提供自定义评分模型。 钱包评分使用 MetEngine 的专有模型,无法按 Agent 自定义。
- 不支持跨平台钱包关联。 即使由同一实体控制,Polymarket 上的 Polygon 地址也不会与 Meteora 上的 Solana 地址关联。
- 不提供代币价格数据流。 这不是价格预言机。Polymarket 上的市场价格是隐含概率(0-1)。
- 仅有 63 个端点。 如果本文档未列出某条路径,则该路径不存在。
已知特性
Polymarket
/markets/opportunities在高负载下经常超时(504)。请使用/markets/high-conviction作为备用方案。/wallets/top-performers?timeframe=7d可能返回 503。可尝试timeframe=24h,但请注意时间范围较窄。/trades/whales除真实交易外,还会返回 REDEEM 交易(已结算市场的赔付)。可通过side=BUY或side=SELL筛选排除这些交易。REDEEM 的字段为price=1.00, side=REDEEM。/markets/insiders有时会超时。可使用按市场筛选的/markets/trades作为备用方案。- 钱包地址必须为小写。
condition_id用于标识市场。一个 condition_id 对应多个token_id值(每种结果对应一个)。- 价格 = 隐含概率(0 到 1)。价格为 0.73 表示概率为 73%。
Hyperliquid
/hl/coins/trending?timeframe=24h和/hl/smart-wallets/signals?timeframe=24h经常返回空数组。默认使用timeframe=7d。/hl/trades/long-short-ratio可能返回全零。可从/hl/trades/whales重建方向性偏向。/hl/traders/profile有时会返回 500。可使用排行榜 + pnl-by-coin 作为备用方案。/hl/traders/pnl-by-coin仅显示已实现(已平仓)盈亏。不提供未实现盈亏。- 币种符号仅使用大写基础币种:
BTC,而非BTC-USDC。 - 交易者地址为带 0x 前缀的十六进制字符串(不区分大小写)。
closed_pnl仅在平仓交易中非零。开仓交易的closed_pnl = 0。- 智能钱包阈值:score >= 85(比 Polymarket 的 60 更严格)。
Meteora
- DAMM v2 池的手续费率经常高得不合理(占交易量的 30-50%)。这是新代币发行时反狙击手续费调度器造成的假象。请将 DAMM v2 与 DLMM 结果分开,并标记异常情况。
/meteora/pools/trending可能会有重复条目。请按pool_address去重。/meteora/lps/top?sort_by=fees可能返回 500 错误。请使用sort_by=volume作为备用方案。- 部分代币铸造地址显示为「???」(未解析)。请检查交易对上下文以确认其身份。
- 地址为 Solana 公钥(base58,区分大小写)。
- DLMM 使用
token_x/token_y和 PascalCase 事件类型(AddLiquidity、RemoveLiquidity、Swap、ClaimFee)。 - DAMM v2 使用
token_a/token_b和 snake_case 事件类型(add_liquidity、remove_liquidity、swap、claim_fee)。 - 仓位地址仅适用于 DLMM,不适用于 DAMM v2。
地址格式约定
| 平台 | 格式 | 是否区分大小写 |
|---|---|---|
| Polymarket | 0x 十六进制(Polygon) | 必须为小写 |
| Hyperliquid | 0x 十六进制 | 不区分大小写 |
| Meteora | Base58(Solana 公钥) | 区分大小写 |
评分系统
Polymarket 钱包评分(0-100)
| 等级 | 分数 | 含义 |
|---|---|---|
| 精英 | >= 80 | 历史盈利能力顶尖 |
| 聪明 | 60-79 | 持续盈利,具有信号价值 |
| 一般 | 40-59 | 业绩喜忧参半 |
| 新手 | < 40 | 新手或亏损交易者 |
聪明资金阈值:分数 >= 60。愚蠢资金阈值:分数 < 30。
Hyperliquid 聪明评分(0-100)
score = min(log2(trade_count + 1) * 4, 40) // Activity (max 40)
+ (winning_trades / max(closing_trades, 1)) * 40 // Win rate (max 40)
+ min(if(pnl > 0, log10(pnl + 1) * 4, 0), 20) // Profitability (max 20)
聪明阈值:分数 >= 85。
Meteora LP 聪明评分(0-100)
win_ratio (0-35 pts) + volume (0-25 pts, log10-scaled) + avg_pnl% (0-30 pts) + experience (0-10 pts)
至少需要 3 个已平仓仓位。