核心用法
Open Wallet 是一种基于 tx.steer.fun 的去中心化钱包交互方案,让 Agent 能够生成特定格式的 URL,引导用户在浏览器中完成钱包操作。用户打开链接后,页面会展示待执行的 JSON-RPC 请求详情,自动提示连接钱包、切换至指定链,然后执行交易或签名操作。
主要支持四种常见流程:
- 消息签名(personal_sign):对任意字符串进行标准签名
- 交易发送(eth_sendTransaction):发送 ETH 或调用合约,支持自动填充 from 地址
- 结构化数据签名(eth_signTypedData_v4):用于 EIP-712 类型数据签名,常见于 DApp 授权场景
- 批量调用(wallet_sendCalls):一次执行多笔交易,提升用户体验
结果获取支持两种模式:用户手动复制粘贴(无 redirect_url),或通过 redirect_url 自动回传。后者支持标准查询参数模式,以及面向 Telegram 等 IM 场景的模板替换模式。
显著优点
1. 无需集成 SDK:纯 URL 方案,Agent 端零依赖,任何平台均可生成链接
2. 跨端兼容:用户端仅需浏览器和钱包插件/App,覆盖桌面与移动端
3. 结果自动回传:redirect_url 机制实现"点击-执行-返回"闭环,大幅降低交互摩擦
4. 多链支持:通过 chainId 参数自动触发钱包网络切换
5. 安全透明:页面展示完整请求内容,用户确认后才执行,符合"知情同意"原则
潜在缺点与局限性
- 依赖外部服务可用性:tx.steer.fun 为第三方托管,存在单点故障风险
- 钓鱼攻击面:恶意 Agent 可构造伪装成合法操作的链接,需用户自行辨别
- 移动端体验参差:部分钱包 App 的 deep link 处理不完善,可能中断流程
- 无实时状态查询:需依赖 redirect 或用户主动返回,无法像嵌入式 SDK 那样监听事件
- 参数编码复杂度:URL 编码 JSON 对象容易出错,调试成本较高
适合人群
- 快速原型开发的 Agent 开发者,需要轻量级钱包交互方案
- 跨平台 Bot(Telegram、Discord 等),难以集成传统 Web3 SDK
- 注重用户自主托管场景,希望保持"用户控制私钥"的去中心化体验
常规风险
| 风险类型 | 说明 |
|---------|------|
| 钓鱼链接 | 攻击者伪造 tx.steer.fun 相似域名或构造恶意参数 |
| 参数篡改 | URL 参数被中间人修改,导致执行非预期操作 |
| 重放攻击 | 签名结果若未绑定唯一 nonce,可能被恶意复用 |
| 隐私泄露 | redirect_url 可能将钱包地址、交易行为泄露给第三方 |
建议始终通过可信渠道验证链接来源,对 redirect_url 使用一次性回调地址,并在业务层校验签名内容的时效性与唯一性。