ChainStream 目前支持 Solana(sol)、Ethereum(eth)和 BSC(bsc)。支持的 DEX 包括 Jupiter、Raydium、PumpFun、Moonshot、Candy(Solana)以及 KyberSwap(Ethereum/BSC)。以下部分示例引用了其他协议用于概念说明,请查看支持的链了解当前覆盖范围。
Coming Soon - 此功能正在开发中,敬请期待!
本文档介绍如何使用 ChainStream 监控 DeFi 协议活动,包括流动性变化、大额交易、收益追踪和风险告警。
支持的 DeFi 协议
DEX(去中心化交易所)
| 协议 | 链 | 支持功能 |
|---|
| Jupiter | Solana | 聚合交易 |
| Raydium | Solana | 交易、LP、池子数据 |
| PumpFun | Solana | 发射/bonding、交易 |
| Moonshot | Solana | 交易 |
| Candy | Solana | 交易 |
| KyberSwap | Ethereum、BSC | 交易、报价 |
其他 DeFi 方向
借贷、收益聚合器与流动性质押是 DeFi 中常见的监控对象。ChainStream 当前已索引的互换与 DEX 分析能力主要覆盖上表中的协议,链为 Solana、Ethereum、BSC。在实现借贷或金库类告警前,请结合 API 参考与支持的链确认实际可用能力。
监控维度
1. 流动性监控
监控事件
| 事件 | 描述 | 重要性 |
|---|
pool_created | 新池子创建 | 发现新机会 |
liquidity_add | 添加流动性 | 信心指标 |
liquidity_remove | 移除流动性 | ⚠️ 撤池预警 |
pool_update | 池子参数变更 | 协议治理 |
关键指标
| 指标 | 描述 | 健康标准 |
|---|
| TVL | 总锁仓价值 | 稳定或增长 |
| TVL 变化率 | 24h/7d TVL 变化 | > -10%/天 |
| LP 持有者数 | LP Token 持有者分布 | 分散为佳 |
| 流动性深度 | ±2% 价格范围内的流动性 | 深度越大越好 |
撤池风险信号
- 单笔撤池 > 池子 30%
- 24h 累计撤池 > 50%
- LP 集中在少数地址(< 5 个)
- 单笔撤池 > 池子 10%
- LP 锁定即将到期
- 项目方地址开始撤池
- LP 广泛分布
- LP 锁定期 > 6 个月
- TVL 稳定增长
2. 交易监控
实时交易流
通过 WebSocket 订阅实时交易:
| 事件类型 | 描述 | 数据字段 |
|---|
swap | DEX 交易 | token_in, token_out, amount, price |
large_trade | 大额交易 | threshold, trade_details |
arbitrage | 套利交易 | profit, path |
mev | MEV 相关交易 | type, extracted_value |
// 订阅 DEX 交易流
ws.subscribe('defi_trades', {
protocol: 'kyberswap',
chain: 'eth',
min_amount_usd: 10000
}, (trade) => {
console.log(`${trade.type}: ${trade.token_in} → ${trade.token_out}`);
});
交易分析维度
| 分析维度 | 指标 | 意义 |
|---|
| 买卖压力 | 买入量/卖出量比率 | > 1 看涨 |
| 交易量趋势 | 交易量移动平均 | 活跃度 |
| 大户行为 | 大额交易占比 | 市场影响 |
| 交易对热度 | 交易频率排名 | 市场关注度 |
3. 收益追踪
追踪内容
| 收益类型 | 描述 | 计算方式 |
|---|
| LP 挖矿 | 提供流动性获得的交易费 | 交易费 × 份额占比 |
| 借贷利息 | 存款/借款利息 | 本金 × APY |
| 质押奖励 | 协议代币奖励 | 质押量 × 奖励率 |
| 空投收益 | 协议空投 | 快照持仓 |
收益指标
| 指标 | 描述 | 注意事项 |
|---|
| APY | 年化收益率(含复利) | 实际收益参考 |
| APR | 年化收益率(不含复利) | 基础收益 |
| 无常损失 | LP 相对于持有的损失 | 重要风险因素 |
| 净收益 | 收益 - Gas - 无常损失 | 最终收益 |
无常损失估算
无常损失公式无常损失 = 2 × √(价格比率) / (1 + 价格比率) - 1
| 价格变化 | 无常损失 |
|---|
| ±10% | -0.11% |
| ±25% | -0.64% |
| ±50% | -2.02% |
| ±100% | -5.72% |
| ±200% | -13.4% |
4. 风险告警
协议级风险
| 风险类型 | 描述 | 告警触发 |
|---|
| 大额撤池 | 流动性大幅减少 | 单笔 > 池子 5% |
| TVL 骤降 | 协议 TVL 快速下降 | 1h 内下降 > 20% |
| 闪电贷攻击 | 检测到闪电贷模式 | 自动检测 |
| 治理攻击 | 异常提案或投票 | 自动检测 |
| 预言机异常 | 价格数据异常 | 偏离 > 5% |
头寸级风险
| 风险类型 | 描述 | 告警触发 |
|---|
| 清算风险 | 借贷头寸接近清算 | 健康因子 < 1.2 |
| 无常损失 | LP 无常损失扩大 | 损失 > 5% |
| 收益下降 | APY 大幅下降 | 下降 > 50% |
告警配置示例
{
"alert_type": "liquidity_remove",
"protocol": "kyberswap",
"pool": "0x...",
"threshold": {
"type": "percentage",
"value": 10
},
"notification": {
"webhook": "https://your-server.com/webhook",
"email": "alert@example.com"
}
}
监控场景
场景 1:新池子发现
目标:第一时间发现新建的交易池
ws.subscribe('pool_created', {
chain: 'sol',
min_liquidity_usd: 10000
}, async (pool) => {
// 检查 Token 安全性
const risk = await checkTokenRisk(pool.token_address);
if (risk.score > 60) {
notify(`新池子发现: ${pool.pair_name}, 流动性: $${pool.liquidity_usd}`);
}
});
场景 2:撤池预警
目标:监控持仓池子的撤池风险
ws.subscribe('liquidity_remove', {
pool: '0x...',
threshold_percentage: 10
}, (event) => {
alert(`⚠️ 撤池预警: ${event.percentage}% 流动性被移除`);
});
场景 3:套利机会发现
目标:发现跨 DEX 价格差异
// 监听多个 DEX 的价格
const prices = {};
ws.subscribe('token_price', {
token: 'SOL',
dex: ['jupiter', 'raydium', 'pumpfun']
}, (data) => {
prices[data.dex] = data.price;
checkArbitrage(prices);
});
function checkArbitrage(prices) {
const maxPrice = Math.max(...Object.values(prices));
const minPrice = Math.min(...Object.values(prices));
const spread = (maxPrice - minPrice) / minPrice;
if (spread > 0.005) { // 0.5% 价差
notify(`套利机会: ${spread * 100}% 价差`);
}
}
场景 4:清算监控
目标:监控借贷头寸健康度
async function monitorLiquidationRisk(address: string) {
// 接入你方环境已开放的借贷 API(与 DEX 无关)
const position = await getLendingPosition(address);
if (position.health_factor < 1.2) {
urgentAlert(`🚨 清算风险!健康因子: ${position.health_factor}`);
} else if (position.health_factor < 1.5) {
warnAlert(`⚠️ 健康因子较低: ${position.health_factor}`);
}
}
数据延迟说明
| 数据类型 | 延迟 | 说明 |
|---|
| 实时交易 | < 3s | 区块确认后推送 |
| TVL 数据 | < 1min | 分钟级更新 |
| APY 数据 | < 5min | 基于最近交易计算 |
| 持有者数据 | < 1h | 小时级快照 |
API 端点
| 功能 | 端点 |
|---|
| 获取协议 TVL | GET /v1/defi/{protocol}/tvl |
| 获取池子信息 | GET /v1/defi/{protocol}/pools/{pool_id} |
| 获取用户头寸 | GET /v1/defi/{protocol}/positions/{address} |
| 获取收益数据 | GET /v1/defi/{protocol}/yields |
相关文档