# 中文:ERC4337 详解之:Account Creation **Published by:** [B+](https://paragraph.com/@b-2/) **Published on:** 2023-03-22 **URL:** https://paragraph.com/@b-2/erc4337-account-creation ## Content 与传统意义上的钱包账户不同, AA账户本身实现了账户和签名器的分离,所以钱包地址不再是我们理解的签名器的地址,而是一个专门的账户地址,而且值得注意的是,这个账户地址因为是一个智能合约,所以他需要被部署到区块链上才能使用。但幸运的是,ERC4337定义了标准,让账户地址在账户只能合约部署之前就能得到。 这篇文章讲详细解释ERC 4337账户的创建以及部署:账户创建账户的创的目的是得到一个账户地址。整个过程需要一下模块的交互: 账户工厂:账户工厂的作用是用来创建账户的,但往往创建过程不是直接的账户工厂的调用。账户工厂未来保证创建账户地址的可预测性,会使用CREATE2方法来创建 Example:他需要一下步骤来完成:getAccountInitCode:通过链接账户得到账户工厂的address,以及账户工厂账户创建的callData,把这两个数据组合到一起得到账户initCode调用EntryPoint → getSenderAddress,传入initCode,getSenderAddress内部会解析这个initCode,并且解析工厂合约的地址和callData,用call方法来执行账户创建并得到相应的地址账户部署部署账户调用EntryPoint的handleOps 来完成,这是所有transaction的入口。账户部署和其他的transaction的区别在于:账户部署时,提交的UserOperation里边包含账户的initcode: 下边是账户部署提交的UserOperation的示例: ## Publication Information - [B+](https://paragraph.com/@b-2/): Publication homepage - [All Posts](https://paragraph.com/@b-2/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@b-2): Subscribe to updates - [Twitter](https://twitter.com/carmen0208): Follow on Twitter