Sequence Wallets are created using the Factory contract, when called it creates child MinimalUpgradeableProxies contracts, which are in essence the “boot” code of all Sequence wallets.Documentation Index
Fetch the complete documentation index at: https://sequence-0fb8d9e6-unreal-quickstart-with-marketplace.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Factory API
deploy
_mainModule.
No initialize code is executed.
Parameters:
| Name | Type | Description |
|---|---|---|
| _mainModule | address | Initial implementation for the new proxy contract, expected to point to a valid Sequence wallet implementation with support for counter-factual initialization. |
| _salt | bytes32 | Arbitrary value to be used as create2 salt. Sequence’s mainModule uses the salt to obtain a hash with the initial configuration for the wallet (See ImageHash). |
Return Values:
| Name | Type | Description |
|---|---|---|
| _contract | address | Address of the created proxy contract. |
Counter factual addresses
Sequence wallets are counter-factual by design, this means that the wallet’s address can be known before the wallet is deployed; any two combinations of themainModule and salt values will result in the same wallet address.
This property alongside the use of NanoUniversalDeployer or UniversalDeployer is the reason why Sequence wallets can obtain the same address on multiple chains.