跳转到主要内容

架构

所有 API 请求都经过网关,网关在转发到后端服务之前验证凭证。网关将认证和配额检查委托给内部的鉴权计费服务,确保每个请求在一次跳转中完成验证。 当认证失败时,网关直接返回错误(401 Unauthorized,或在启用 x402 时返回 402 Payment Required),不会触达后端。

三种认证方式

ChainStream 支持 三种 凭证类型,按以下顺序评估:
如果没有找到有效凭证且启用了 x402,网关将返回 HTTP 402 Payment Required,并指向 /x402/purchase。这使 AI Agent 能够自动购买订阅。

方式一:API Key(推荐)

最简单的认证方式。在 Dashboard 创建 API Key,通过 X-API-KEY 请求头传递。

获取 API Key

1

登录 Dashboard

访问 ChainStream Dashboard 并登录
2

进入应用管理

在侧边栏找到”Applications”
3

创建新应用

点击”Create New App”生成你的 API Key

使用 API Key

工作原理

  1. 网关提取 X-API-KEY 请求头
  2. 鉴权服务在数据库中验证该 Key
  3. 验证通过后,请求携带关联的组织和权限上下文转发到后端
  4. Key 必须为 active 状态且未过期
请妥善保管你的 API Key。切勿将其提交到代码仓库。如果泄露,请立即在 Dashboard 中撤销。

方式二:JWT Bearer Token(OAuth 2.0)

适用于使用 OAuth 2.0 Client Credentials 流程的应用。用 Client ID 和 Client Secret 换取 JWT 访问令牌。

生成 Access Token

使用 Token

工作原理

  1. 网关提取 Authorization: Bearer <jwt> 请求头
  2. 鉴权服务验证 JWT 签名、签发者和受众
  3. 从 token 中的 client_id 解析到组织,用于配额跟踪

Token 详情

  • 有效期:默认 24 小时
  • 算法:RS256
  • Issuerhttps://dex.asia.auth.chainstream.io/
  • Audiencehttps://api.dex.chainstream.io

Scope 权限

某些端点需要特定的 scope:
如果不指定 scope,token 可以访问所有通用 API 端点。仅在访问 Webhook 和 KYT 端点时需要 scope。

方式三:钱包签名 (SIWX)

适用于拥有链上钱包并通过 x402 支付 购买了订阅的 AI Agent。使用 Sign-In with X (SIWX) 标准(EVM 为 EIP-4361,Solana 为等效协议)。

工作原理

  1. Agent 构造标准的签名登录消息,包含 domain、address、nonce 和过期时间
  2. Agent 用钱包私钥签名消息
  3. 签名后的 token 以 Authorization: SIWX base64(message).signature 发送
  4. 鉴权服务验证签名并检查是否存在有效的 x402 订阅
  5. 如果存在有效且未过期的订阅,认证成功

Token 格式

消息遵循 EIP-4361 格式:

支持的链

SDK 用法

SIWX 认证需要有效的 x402 订阅。如果订阅已过期,请求将被拒绝。参见 x402 支付 了解如何购买订阅。

WebSocket 认证

WebSocket 连接使用相同的三种认证方式。网关会:
  1. 检测 WebSocket 升级请求
  2. 在允许握手之前验证凭证
  3. 跟踪会话用于用量计量
  4. 断开连接时上报使用指标(传输字节数、持续时间)
WebSocket token 也可以作为查询参数传递:

认证优先级

当单个请求中存在多种凭证时,按以下顺序评估:
  1. SIWX — 如果 Authorization 头以 SIWX 开头且配置了 x402
  2. API Key — 如果存在 X-API-KEY
  3. JWT Bearer — 如果 Authorization 头以 Bearer 开头
  4. 402 Payment Required — 如果没有凭证匹配且启用了 x402
第一个成功匹配的方式生效,后续方式不再评估。

API 端点


选择认证方式

API Key

适用于:应用、脚本、CLI、MCP Server最简单的设置。在 Dashboard 创建,作为请求头传递。无需刷新 token。

JWT Bearer

适用于:Dashboard 应用、服务端对服务端标准 OAuth 2.0 流程。支持 scope 权限控制。Token 有效期 24 小时。

SIWX 钱包

适用于:拥有链上钱包的 AI Agent基于钱包的原生认证,通过 x402 订阅。无需管理 API Key。

常见问题

API Key 适用于大多数场景。设置最简单,兼容所有 ChainStream 产品(SDK、CLI、MCP Server)。如果需要 OAuth 2.0 集成和 scope 权限控制,使用 JWT。如果你在构建拥有自己钱包的 AI Agent 并希望通过 x402 付费,使用 SIWX
JWT:使用 Client ID 和 Client Secret 重新生成 token。SIWX:用新的过期时间重新签名消息。API Key 除非你在 Dashboard 设置了过期日期,否则不会过期。
每个请求只评估一种方式。如果同时发送 X-API-KEYAuthorization: Bearer,API Key 优先(优先级:SIWX > API Key > JWT)。
当没有找到有效凭证且启用了 x402 时,网关返回 HTTP 402 并附带购买订阅的指引(/x402/purchase)。这使 AI Agent 能够自动购买访问权限。参见 x402 支付
API Key:在 Dashboard 删除应用,Key 立即失效。JWT:在 Dashboard 撤销 Client ID/Secret。SIWX:订阅自然过期,无需手动撤销。