ModuleSDK 是一个 TypeScript 库,旨在简化智能账户模块在应用层的集成,特别是对于在 Rhinestone 支持的智能账户上构建 dapp 或钱包的开发者。它与现有的 AA SDK 结合使用,提供安装、卸载和使用模块的便捷功能,支持 Rhinestone 的核心模块以及 Smart Session Manager,为开发者提供即插即用的特性、产品和服务。
模块化智能账户的主要优点之一是它们具有高度的可定制性,允许开发者复用预先构建的组件,从而扩展账户的功能集。例如,安装一个将账户变成多重签名的模块,或者安装一个带有 Passkey 的单签名者,或者安装一组模块,通过计划订单模块创建 DeFi 自动化。
ModuleSDK 对于任何希望使用模块化智能账户构建产品的应用开发者来说,都是一个游戏规则改变者:
ModuleSDK 是为正在构建由模块驱动的产品的开发者提供的重要分发机制,这些模块可以直接插入任何钱包。ZK Email 和 Klaster 是我们计划纳入 ModuleSDK 的团队的早期案例。另一个例子是 Smart Session Manager,这是一个高度可组合和可互操作的会话密钥框架,我们与 Biconomy 共同开发。智能会话现在已与 ModuleSDK 集成,只需几行简单的代码即可在应用层轻松使用。
ModuleSDK 是一个 TypeScript 库,可以简化智能账户模块到应用层的集成。它专门针对在 Rhinestone 支持的智能账户上构建 dapp 或钱包的开发者。今天,我们支持任何 ERC-7579 账户(包括 ZeroDev 的 Kernel,Biconomy 的 Nexus,OKX AA 钱包,Etherspot 的 Prime 以及许多其他未公布的账户)和通过 Safe7579 Adapter 的 Safe。
如果你正在寻找一个可与你的智能账户集成的功能库,ModuleSDK 是你的答案。目前,ModuleSDK 支持 Rhinestone 所有核心模块,包括常见的账户抽象功能,如 passkey、社交恢复、多重签名,以及更高级的功能,如闪电贷和计划订单(完整的核心模块集如下)。
ModuleSDK 也是首个支持智能会话管理器的开发者工具,智能会话管理器是一个强大的会话密钥模块,允许开发者请求用户范围的权限。这种新型会话密钥产品具有高度可组合性,可在任何 ERC-7579 账户(包括 Safe)上互操作,并且可以在一次原子操作中支持跨多个链的任何签名机制(例如,passkey 或嵌入式签名器)。此权限框架可在智能账户和 dapp 之间移植,从而允许开发者构建一次并为任何 ERC-7579 智能钱包提供服务。
有许多用于账户抽象的 SDK。但是,ModuleSDK 在其功能上是独一无二的,并且旨在与现有的 AA SDK 耦合。
当今存在的大多数账户抽象 SDK 主要侧重于基本的账户操作(部署、发送 userOp、签名消息等)、捆绑器操作(发送 userOp、gas 估计、检索交易收据等)和支付方操作(设置赞助策略、赞助 userOp 等)。例如,Permissionless.js 是一个基于 Viem 构建的 TypeScript 库,用于构建 ERC-4337 智能账户、捆绑器、支付方和用户操作。它是与智能账户和捆绑器无关的。Biconomy Account Abstraction SDK 和 ZeroDev SDK 提供类似的功能,但模块有限,例如 ECDSA 验证器(用于嵌入式签名器集成)和 Passkey。
模块是独立的智能合约,可以扩展现有智能账户的功能集。通过增加组件的重用,模块(以及扩展的模块化智能账户)简化了新产品功能的开发和实施。
ModuleSDK 允许你轻松地为任何 ERC-7579 账户安装和卸载模块,并使用专用的辅助实用程序与模块进行交互和使用模块。每个智能账户模块都有一个定义的接口和定制的功能。ModuleSDK 提供了相应的 TypeScript 函数和接口,以简化到应用层的集成。
ModuleSDK 被构建成常规 AA 和钱包开发者工具包的配套 SDK。例如,permissionless.js 的用户可以安装 ModuleSDK,以便将我们的核心模块和智能会话与 Safe 智能账户和 Pimlico 的 ERC-4337 基础设施一起使用。
我们的意图是让流行的智能账户和钱包开发者工具包封装 ModuleSDK 以实现核心功能。例如,Biconomy 的 AA SDK 和 WalletConnect 的 AppKit 都使用底层的 ModuleSDK 来集成智能会话。这促进了组件的重用,减少了跨团队维护开发者框架的重复工作,并为希望构建和分发与智能账户模块相链接的服务的开发者提供了一个规范的集成点(如下所述)。
ERC-4337 账户抽象技术堆栈的概述以及 ModuleSDK 在其中的位置。
模块允许开发者将服务或产品直接交付到用户账户。例如,ZK Email 开发了一个模块,允许用户为智能账户设置私有电子邮件恢复流程。该模块为智能账户提供了一个直接的接口,可以连接到 ZK Email 的 ZK 电路和中继服务,从而将产品直接分发给用户。
对于许多希望将高级产品和服务直接分发给用户的新兴服务来说,这将成为一种普遍趋势。但是,这带来了一些挑战:1)什么是发现和分发的最佳机制,以及 2)集成基于模块构建的服务的开发者体验是什么?
ModuleSDK 就是答案。诸如 ZK Email 之类的在模块之上构建服务的开发者只需集成到一个工具集中即可最大限度地将其分发给可以利用其服务的应用程序。使用模块化账户构建应用程序的开发者只需安装一组工具。
我们构建了一组核心的高度可配置的模块,涵盖许多应用程序用例。这些公共产品旨在推动模块化智能账户作为开发者的下一个开放平台的采用。
智能会话管理器: 一种可互操作和可组合的模块系统,用于创建用户提供的权限和策略,这些权限和策略可以在账户供应商和应用程序之间移植。
可拥有验证器: 此模块使 EOA 能够作为智能账户的签名者。对于期望用户是加密原生的并拥有 EOA 钱包的产品用例而言,它是理想的选择。或者,它可以与 MPC 提供商(嵌入式签名器)结合使用。
Passkey: 此功能使 passkey 能够作为智能账户上的签名者,从而允许用户通过其设备的保护区使用其生物识别技术或使用首选的密码管理器来签名加密消息。
社交恢复: 这允许用户指定一个或多个具有 m 或 n 阈值的监护人以进行账户恢复。用户通过表达监护人的公共地址来设置监护人。
多因素身份验证(MFA): 该模块是一个多路复用器,允许开发者将任何一组签名者模块组合在一起。例如,可以将 passkey 设置为主要签名者,但是在进行高价值转账时,需要 passkey 和 ECDSA 验证方案。
模块注册表适配器: 当在智能账户上安装模块时,模块注册表会强制执行安全保证和标准。模块注册表存储由独立审计师进行的链上安全证明。当在账户上安装新模块时,模块注册表适配器会查询模块注册表并检查是否已满足预设的安全阈值。
计划转账: 允许在智能账户上触发自动转账。用户可以创建一个时间表,在该时间表上,中继器根据频率或重复次数等参数执行转账。
计划订单: 允许在智能账户上触发自动代币交换。用户可以创建一个时间表,在该时间表上,中继器将根据频率或重复次数等参数执行交换。
自动保存: 这是计划转账模块的更主观的版本。它允许用户自动将任何收到的代币的固定百分比转移到目标 ERC-4626 生息金库。
Deadman Switch: 在指定的非活动期后恢复账户。用户设置目标恢复地址(这可以是另一个智能账户或典型的 EOA 钱包)以及所需的非活动期。
可拥有执行器: 在智能账户之间创建层次结构所有权结构。此模块允许一个智能账户对另一个智能账户具有执行权。执行权可以使用所有者账户支付 gas 来触发任何交易。这可以启用 DAO 和子 DAO 或主账户到子账户之间的自动关系。
冷存储 Hook: 创建时间锁和转移限制。它通过两种方式限制账户上的执行:1)时间锁周期,以及 2)转移仅限于一个地址。
闪电贷: ModuleKit 中找到的模块库允许开发者轻松创建利用闪电贷功能的执行器模块,如 ERC-3156 中所述。这可用于创建点对点租赁系统,而无需托管合同或过度抵押。
Hook 多路复用器: 用于组合多个 Hook 模块的主观路由器。Hook 是在执行之前或之后触发的模块,可用于强制执行某些智能账户行为。Hook 的一些示例包括支出限制、白名单/黑名单等。对于只有一个全局 Hook 插槽的账户,这是一个重要的模块。
如果你正在模块化智能账户之上构建应用程序(钱包或 dapp),则 ModuleSDK 是你的新型开箱即用功能、产品和服务库。与任何现有的账户抽象 SDK 配对,并立即开始使用 Rhinestone 的核心模块以及许多即将推出的第三方模块进行构建。
- 原文链接: blog.rhinestone.wtf/modu...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!