Apps
1Do 应用
资产留在钱包,应用逻辑进入 Runtime;每个应用独立表达业务规则与状态。
4 个章节official-apps
01
当前应用
02
共同运行模型
应用合约保存可复用的业务逻辑,但执行时通过 delegatecall 进入用户钱包。此时 address(this)、资产余额、ERC-7201 命名空间状态和应用事件都属于钱包地址,而不是共享 logic 地址。
应用不会要求用户先把资产存入平台账户。交易前的资产仍在 maker 或付款钱包中,只有满足签名、触发条件和 Runtime 门控的交易才会移动资产。
- Dex 与 NFT Market 使用 maker 钱包的 EIP-712 / ERC-1271 签名,并把成交或取消状态记录在 maker 钱包中。
- Flash Loan 由任意发起者触发,但借款、回调、足额归还和费用分配必须在同一交易完成。
- Will 与 Session Pay 允许第三方执行者或中继者提交,但不能修改钱包已签署的计划或授权边界。
- 管理动作如取消订单、配置心跳、重置 Will 或撤销 Session,只能通过钱包 self-call 完成。
03
四类执行模式
签名订单
Dex 和 NFT Market 把价格、资产、数量、expiry 与 nonce 放在链下订单中,只在成交或取消时写入链上状态。
一次性资产 Pull
付款钱包只在当前调用中允许指定 target 拉取指定 Token 金额或具体 NFT,执行结束后不留下 allowance 或 operator。
条件执行
Will 在首次执行时验证签名和触发条件,随后锁定计划哈希,并允许同一计划分批处理不同资产。
有限会话
Session Pay 不保存完整 grant;每次结算重传钱包授权,并用链上累计 totalPaid 阻止重复或倒退付款。
04
共同安全边界
- 启用应用只开放对应 Runtime 入口,不等于给 logic 地址设置 ERC-20 allowance 或 NFT operator。
- 所有应用调用仍受钱包本地启用、Registry 全局状态与 Runtime 执行锁约束。
- 外部地址能够提交执行,不代表获得钱包 owner 权限;owner-sensitive 操作仍要求 self-call 或钱包签名。
- 应用状态按钱包隔离。读取某个钱包的应用状态或索引事件时,应以钱包地址为上下文,而不是直接把共享 logic 地址当作用户实例。
应用 logic 不是托管账户
共享 logic 地址不持有每个用户的应用状态或业务资产。集成方必须始终区分 logic 地址、执行钱包地址和交易中的对手方钱包。