Skip to content

Smart Account 策略交易

概述

通过 TEE(Trusted Execution Environment)解决方案,使用智能账户(Smart Account)实现自动化策略交易,涵盖限价单、止盈止损(TP/SL)、清仓等场景,同时支持 Solana 和 EVM 链。


一、Smart Account(SA)核心概念

1.1 SA 定义

已将账户下的多链私钥安全传送给 TEE 服务器的用户被标记为 SA 用户:

  • 通过升级现有 EOA 助记词 wallet 的 account 激活
  • 或创建新的 account
  • 只有 SA 用户可以进行策略交易,其他用户为普通 EOA 用户
  • 一旦标记为 SA,永久保持该标记(即便关闭 TEE 功能)
  • SA 只能在助记词类 wallet 下使用

1.2 使用有效期

  • 默认 7 天有效期(从激活/延长 SA 起算)
  • 过期后 TEE 删除用户私钥,SA 被 disable
  • 关闭期间:SA 订单暂停,不可触发执行,但可正常过期
  • 重启后:用户可选择主动唤醒所有暂停订单,或取消所有订单

二、订单鉴权

2.1 鉴权机制

钱包鉴权接口参数:

方向字段
入参accountId、address、chainId、teeId、command、signMsg、signature
出参accountId、address、chainId、teeId、teeIsActive、command

2.2 意图签名(Intent Signing)

下策略单签名示例:

Chain Index: 501
Strategy Type: Swap
Recipient: jqJw52AgRtdHNmKuxaXSg1ATtTK6JXwTxe4RAuG97jg
Created At: 2025-09-02T10:30:00+09:00
Expired At: 2025-10-24T15:30:00+09:00
From Token: 11111111111111111111111111111111
To Token: So11111111111111111111111111111111111111112
From Amount: 1000000000
Min Return Amount: 1000000000

查询订单签名:

Strategy Type: ReadOrders
Created At: 2023-09-24T18:00:00+09:00
Expired At: 2025-09-24T18:30:00+09:00

取消订单签名:

Strategy Type: CancelSingleOrder / CancelAllOrders
Order Id: 123456

2.3 JWT 认证

通过钱包静默签名完成 JWT 生成,保护敏感数据(用户订单数据),授权一次全站通用。

后端 APIAuthStorePassport SDK钱包用户后端 APIAuthStorePassport SDK钱包用户API 请求携带 JWTToken 过期场景触发登录检查链支持 & 静默签名支持passport.login(needSign, isSilent)authToken → AUTHENTICATED请求 + Header: X-Web3-Auth正常响应请求 + 过期 Token返回错误码 10026removeToken → UNAUTHENTICATED

三、订单存储与查询

3.1 多数据源查询

订单列表查询需融合多个数据源:

入口说明
PC OpenOrders当前活跃订单
PC OrderHistory历史订单
App Ordersorder + orderHistory 按时间倒序
Transactionsorder + orderHistory 按时间倒序(cursor: createTime, orderId)

3.2 多数据源分页方案

游标分页 + 内存排序:

两个源都有

只有源A
源B有数据

只有源A
源B无数据

都无数据

查询请求
携带两个数据源的游标

并行查询两个数据源
各查 pageSize 条

内存合并排序
取前 pageSize 条

结果集包含
哪些数据源?

返回结果 + 两个游标
各取最后一条的点位

源A游标=最后一条
源B游标=第一条+1

源A游标=最后一条
源B游标=null

无下一页


四、订单流程

4.1 市价 Swap + TP/SL + 清仓

后续处理

Swap执行

用户下单

成功

失败

用户创建市价 Swap
+ 附加 TP/SL

意图签名

后端创建策略单

触发市价交易

TEE 验证 + 签名

广播交易

链上结果

创建 TP/SL 子订单

策略单标记失败

监听价格信号

触发止盈/止损

TEE 签名 + 广播

4.2 TEE 状态变更对订单影响

创建策略单

信号触发

链上确认

链上失败

TEE/SA 状态变更

TEE 重新激活 + 用户唤醒

用户取消 / 过期

超过有效期

挂单中

交易中

成功

失败

系统暂停

已取消

已过期


五、EVM 支持

5.1 授权流程

  • 授权时机:触发消息发送后,策略交易验证是否需要授权
  • 确定 from token 的策略(市价+TP/SL、限价):下单时授权
  • 不确定 from token 的策略(Copy Trade):触发时再授权
  • 授权金额:默认无限授权

5.2 Nonce 管理

EVM 链上的 nonce 管理面临两大挑战:

问题描述
低 gas 卡单需要获取卡单交易 nonce 进行加速
Nonce 冲突同一用户多策略被同一信号并发触发

方案对比:

维度方案一(不管理 nonce)方案二(本地 nonce 管理)
实现每次从链上查最新 nonce,批内内存自增本地派发 nonce,管理生命周期
优点方案简单,支持批量广播保证 nonce 连续,支持 nonce 重用和卡单解锁
缺点卡单影响后续订单,并发场景成功率低方案复杂
结论✅ 采用

5.3 回滚处理

三种方案

方案一
等待基本不可逆终态
ETH ~13min / BSC ~7.5s

方案二
等待 N 个区块确认
ETH ~36s / BSC ~4.5s

方案三
监听回滚事件
实时修正订单

交易结果回调

Auto Sell 场景

回滚场景分析:

回滚类型影响处理方式
失败 → 成功正常创建 TP/SLTrigger 正常处理
成功 → 失败资损风险回滚删除 TP/SL
成功 → 成功(数量变化)可能资损用最新状态覆盖 TP/SL

结论:Auto Sell 场景实时处理,如果回滚到达时 TP/SL 已触发则跳过,未触发则覆盖。


六、Trigger 业务

6.1 订单状态流转

异常处理

信号超时

中断

风险代币

终止订单 + 推送

余额不足 / Gas 不足

关闭订单

不满足 minReceive / 预执行失败

重置触发器

TEE 验证/签名失败(未知)

重试 N 次后关闭

TEE 签名失败(未授权)

关闭订单 + 推送

广播/链上失败

触发场景

止盈/止损

抄底/追涨

6.2 Trigger → Trade 交互

json
{
  "eventType": 7,
  "chain": 501,
  "userWalletAddress": "XXX",
  "orderInfo": {
    "strategyOrderId": "123456",
    "strategyMode": 3,
    "fromTokenAddress": "XXX",
    "fromTokenAmount": "100.0",
    "toTokenAddress": "XXX",
    "teeVerifyData": { }
  },
  "executeUntilMillis": 1750390482000
}

七、Trade 交易流程

7.1 Solana 流程

主要复用 TG TEE 交易流程,改动:验证服务与签名服务合并到签名服务中,通过 SDK 接入。

7.2 EVM 交易流程

成功

失败

收到触发消息

询价(批量)

需要授权?

发送 Approve 交易

等待授权确认

TEE 验证 + 签名

广播 Swap 交易

等待链上结果

交易状态

回调 Trigger
更新订单状态

标记失败
等待下次信号

7.3 TEE 验证 & 签名 SDK

签名接口合并验证和签名:/external/api/v2/sign

新增 intent 字段:

  • intent.signature:用户意图签名(Base64),端上透传
  • intent.data:签名原文(UTF-8 编码)
  • intent.extra:附加验证数据(pool token0/token1、fee 等)

八、SA 校验流程

前端 SA 状态校验链(15+ 检查状态):

开始检查

系统就绪?

等待加载

钱包已连接?

未连接钱包

支持的钱包?

不支持的钱包

已安装插件?

未安装插件

版本支持 SA?

版本过低

SA 服务正常?

服务异常

SA 账户已创建?

SA 未创建

SA 账户活跃?

SA 已关闭

链支持?

不支持该链

即将过期?

⚠️ 即将过期(警告)

✅ 正常


知识图谱

EVM扩展

执行引擎

订单系统

SA基础

Smart Account
TEE 托管私钥

7天有效期
过期自动删除私钥

意图签名
Intent Signing

策略单
限价/TP/SL/清仓

订单鉴权
JWT + 静默签名

多源分页查询
游标 + 内存排序

Trigger
信号触发

Trade
TEE验证+签名+广播

回滚处理
方案二/三混合

授权管理
无限授权

Nonce 管理
链上查询+批内自增

广播回调
状态流转