Use User Controlled Wallets

🔐 Circle官方MPC非托管钱包,社交一键登录

Circle官方提供的用户自控钱包SDK,支持社交登录、邮箱OTP和PIN码认证,采用MPC密钥管理,适合构建真正的非托管Web3钱包。

收藏
1.5k
安装
624
版本
0.1.0
CLS 安全性认证2026-08-03
点击查看完整报告 >

使用说明

核心用法

use-user-controlled-wallets 是 Circle 官方提供的用户自控钱包(User-Controlled Wallets)开发工具,专为构建真正的非托管钱包场景设计。与开发者自控钱包不同,该方案通过 MPC(多方计算)技术让用户完全掌控私钥,应用方无法访问用户资金。

技术架构

采用前后端分离设计:

  • 后端:使用 @circle-fin/user-controlled-wallets 处理 API 调用,保管 Circle API Key
  • 前端:使用 @circle-fin/w3s-pw-web-sdk 处理用户交互、认证流程和挑战执行

账户类型选择

  • EOA(外部拥有账户):无创建费用,TPS 更高,支持 EVM、Solana、Aptos 多链,但需用户支付 gas
  • SCA(智能合约账户):支持 ERC-4337 账户抽象,可批量操作、gas 代付,但仅限 EVM L2(避免 Ethereum 主网高昂部署费)

认证方式

| 方式 | 配置复杂度 | 适用场景 |
|------|----------|---------|
| PIN 码 | 最低,无需控制台配置 | 快速原型、内部工具 |
| 社交登录(Google/Apple/Facebook) | 中等,需配置 OAuth | 消费级应用 |
| 邮箱 OTP | 较高,需配置 SMTP | 传统用户群体 |

安全挑战模型

所有敏感操作(创建钱包、转账、签名)均通过「挑战-响应」模式执行:后端创建操作获取 challengeId → 前端调用 sdk.execute() → 用户在 Circle 托管 UI 中确认 → 回调返回结果。

显著优点

1. 真正的非托管:私钥由用户通过 MPC 分片控制,应用方零知识,符合「Not your keys, not your coins」原则
2. 企业级安全:Circle 作为美国持牌金融机构,提供 SOC 2、ISO 27001 等合规保障

3. 多链原生支持:EVM、Solana、Aptos 一站式覆盖,无需切换 SDK

4. 用户体验友好:社交登录降低 Web3 入门门槛,PIN/OTP 提供备选方案

5. 灵活的 gas 策略:SCA 支持 Gas Station 代付,适合补贴用户场景

潜在缺点与局限性

1. 必须双端开发:无法纯前端实现,需维护 Node.js 后端,增加架构复杂度
2. 依赖 Circle 托管 UI:挑战执行环节必须跳转到 Circle 的确认界面,自定义程度受限

3. SDK 浏览器兼容性:依赖 Node.js 内置模块(buffercrypto),必须配置 vite-plugin-node-polyfills

4. SCA 主网成本:Ethereum 主网部署 SCA 费用极高,官方明确建议仅用于 L2

5. 学习曲线陡峭:需理解 MPC、挑战-响应、userToken/deviceToken 等概念

适合人群

  • 金融科技公司:需要合规非托管方案,满足监管对资产控制权的严格要求
  • 消费级 Web3 应用:希望通过社交登录降低用户门槛,同时保持去中心化特性
  • 多链钱包产品:需要统一接口支持 EVM、Solana、Aptos,避免多 SDK 维护成本
  • 企业级 DApp:对安全审计、SLA、技术支持有较高要求,愿意牺牲部分去中心化换取可靠性

常规风险

  • 供应商锁定:深度依赖 Circle 基础设施,若服务中断或政策变化将影响业务连续性
  • 前端安全风险:示例代码使用 localStorage 存储 token,生产环境必须使用 httpOnly Cookie 防 XSS
  • 误操作风险getWalletTokenBalance 返回人类可读金额,直接用于转账可能导致精度错误
  • 主网资金风险:必须显式确认网络类型,避免测试网代码意外调用主网造成损失
  • MPC 单点疑虑:虽然用户控制密钥,但 Circle 参与 MPC 计算,极端情况下存在理论协作风险(尽管密码学上不可行)

---

决策建议:若你的产品需要「用户真正拥有资产」+「企业级可靠性」+「社交登录体验」,且能接受必须维护后端的架构成本,这是当前最成熟的方案之一。若追求完全去中心化或纯前端实现,应考虑其他替代方案。

安全解读

核心用法

本 Skill 指导开发者基于 Circle 官方 SDK 构建用户自主控制的非托管钱包(User-Controlled Wallets)。核心架构采用前后端分离设计:后端使用 @circle-fin/user-controlled-wallets 调用 Circle API 管理密钥和交易,前端使用 @circle-fin/w3s-pw-web-sdk 处理用户交互与挑战执行。所有敏感操作(创建钱包、转账、签名)均通过挑战-响应模型实现:后端创建操作获取 challengeId,前端调用 sdk.execute() 触发 Circle 托管 UI 获得用户授权后执行。

SDK 支持三种认证方式:PIN 码(零配置,最简单)、邮箱 OTP(需 SMTP 配置)、社交登录(Google/Apple/Facebook OAuth)。账户类型可选 EOA(无创建费、多链支持)或 SCA(ERC-4337 账户抽象、支持 Gas 代付、仅限 EVM L2)。

显著优点

1. 金融级安全架构:采用 MPC(多方计算)密钥管理,私钥分片存储,用户始终掌控资产;挑战-响应模型确保每笔敏感操作须经用户显式确认。

2. 极致开发体验:封装复杂的区块链交互,开发者无需深入理解密码学即可实现企业级钱包功能;Vite 插件自动处理 Node.js 内置模块 polyfill。

3. 灵活认证矩阵:从极简 PIN 到社交登录全覆盖,满足不同场景的用户体验需求;支持测试网/主网无缝切换。

4. 合规基础扎实:内置 GDPR/CCPA 合规设计,提供完整的安全规则文档,降低金融合规门槛。

潜在缺点与局限性

  • 架构复杂度:必须同时维护后端和前端,纯前端实现会导致 API Key 暴露,小型团队初期成本较高。
  • Gas 成本陷阱:SCA 在 Ethereum 主网部署费用高昂(文档明确警告避免使用),EOA 在 EVM 链需用户自备 Gas 代币,仅 Solana 支持 feePayer 代付。
  • 存储迁移成本:示例代码使用 localStorage(仅演示),生产环境必须重构为 httpOnly cookies,增加实施复杂度。
  • 版本锁定风险:文档建议 @latest 安装,但生产环境需手动锁定版本以避免未预期变更。

适合的目标群体

  • 金融科技公司:需快速集成合规钱包功能,又不想承担托管责任的 Web2 金融应用。
  • 消费级 DApp:追求 Web2 级登录体验(社交/邮箱)的 DeFi、GameFi、SocialFi 项目。
  • 企业级区块链应用:需要多链支持(EVM/Solana/Aptos)和账户抽象能力的 B2B 基础设施。
  • 受监管实体:必须满足"用户自控资产"合规要求的支付、汇款、资管平台。

使用风险

1. 密钥泄露风险:若开发者忽视文档警告,将 API Key 硬编码或置于前端,将导致资金被盗;userToken 若未使用 httpOnly cookies 存储,易受 XSS 攻击窃取。

2. 交易误操作风险:余额查询返回人类可读格式(如 "20" USDC),但链上交易需最小单位,极易因单位换算错误导致转账失败或金额错误。

3. 主网资金风险:Skill 虽强制要求主网操作前用户确认,但缺乏内置的交易限额风控,大额转账需额外实现风控层。

4. 依赖供应链风险:虽 Circle 为可信来源,但 @latest 策略可能引入破坏性更新;vite-plugin-node-polyfills 为第三方 polyfill,需审计其安全性。

5. 智能合约交互风险:文档警告需验证合约安全性,但 Skill 本身不提供合约审计能力,与未知合约交互可能导致资金损失。

Use User Controlled Wallets 内容

references文件夹
手动下载zip · 16.5 kB
create-wallet-email-otp.mdtext/markdown
请选择文件