Skip to main content
Beta — 此功能目前处于测试阶段,API 可能会有变动。
本文档介绍 ChainStream Webhook 的工作原理、配置方法和最佳实践,帮助您实现链上事件的实时推送。
Webhook 功能对所有用户开放。

工作原理

数据流程

核心特性


支持的事件类型

目前 Webhook 支持以下事件类型(channels):
更多事件类型正在开发中,敬请期待!

创建 Webhook 端点

API 端点

请求参数

请求示例

响应示例


Webhook 通知格式

Webhook 通知的数据结构与 WebSocket 推送一致。

新代币创建 (sol.token.created)

字段说明

代币毕业 (sol.token.migrated)

额外字段

Webhook URL 要求


安全验证

获取 Webhook 密钥

创建端点后,通过以下 API 获取密钥:
响应

签名验证

每个 Webhook 请求都包含签名头,用于验证请求来源:

验证流程

代码示例


管理 Webhook 端点

获取端点列表

查询参数

获取端点详情

更新端点

删除端点

轮换密钥


最佳实践

✅ 快速响应

✅ 幂等性处理

每个事件包含唯一标识,请在服务端记录已处理的事件:

✅ 安全性

始终验证签名

验证每个请求的签名

使用 HTTPS

确保传输安全

定期轮换密钥

建议每 90 天轮换

保护敏感数据

不在日志中记录敏感数据

✅ 可靠性

实现幂等性

处理重复请求

消息队列缓冲

使用队列异步处理

合理超时时间

避免长时间阻塞

完善日志

记录关键信息便于排查

常见问题

排查步骤
  1. 确认 URL 可访问 — 从公网测试 URL 是否可达
  2. 检查 HTTPS — 必须使用有效的 SSL 证书
  3. 检查端点状态 — 确认 disabled 不是 true
  4. 检查 channels — 确认订阅了正确的事件类型
这可能是重试机制导致的。请实现幂等性处理:
  1. 使用事件的唯一标识(channel + 代币地址 + 时间戳)
  2. 收到请求时先检查是否已处理
  3. 使用带 TTL 的缓存(如 Redis)存储
  1. 使用 ngrok 暴露本地服务
  2. 创建 Webhook 端点指向 ngrok URL
  3. 等待真实事件触发,或使用测试环境
  4. 查看本地服务日志

API 端点汇总


相关文档

WebSocket API

实时数据订阅

Endpoint API 参考

完整 API 文档