合约地址计算
合约地址计算在本地预测 EVM 智能合约部署地址:CREATE 按部署者地址与 nonce;CREATE2(EIP-1014)按工厂地址、salt 与 init code 哈希。适用于部署前地址确认、多链同址规划与开发调试,适用于以太坊、BSC、Base 等链。
合约地址
0xcd234A471b72ba2F1Ccf0A70FCABA648a5eeCD8d
本页计算与校验均在浏览器本地完成,私钥与助记词不会上传至服务器。
工具说明
合约地址计算按 CREATE 或 CREATE2 规则离线推导部署结果,可在广播部署交易前确认预期合约地址。
CREATE:address = last20(keccak256(RLP([sender, nonce]))),nonce 为部署者已发出交易计数。
CREATE2:address = last20(keccak256(0xff ‖ factory ‖ salt ‖ keccak256(init_code))),与 nonce 解耦,常用于跨链恒定地址部署。
使用说明
- 选择 CREATE 或 CREATE2。
- CREATE:输入部署者地址与部署交易将使用的 nonce(区块浏览器 Account Nonce)。
- CREATE2:输入 factory 地址、32 字节 salt、init code 或其 keccak256。
- 复制计算得到的预测合约地址。
常见问题
CREATE 合约地址计算 nonce 填多少?
取部署者当前 pending nonce:若下一笔交易即为部署,则填浏览器显示的 transaction count;新 EOA 首次部署为 0。
为什么同一部署者在不同链合约地址不同?
各链 nonce 状态独立。需同址时可同步 nonce 序列,或改用 CREATE2 工厂与相同 init code/salt。
CREATE2 的 init code 和 runtime 字节码区别?
init code 为部署期执行字节(含 constructor 与参数编码);链上持久化的是 runtime code。CREATE2 预映使用的是 init code 哈希。
能用 CREATE2 抢占别人的合约地址吗?
CREATE 地址需控制部署者私钥;CREATE2 地址绑定特定 factory 与 init code,无法在不变更字节码前提下任意占用他人逻辑。