Contract Deployment
Sequence contract wallets are fully deterministic; a wallet will map to the same address on any network that is EVM compatible.
This means that when a wallet is created, its address can be derived in advance, and it will be the same on networks like Ethereum, Arbitrum, Polygon, and others.
To achieve this, Sequence uses variations of Nick's method, which allows for the deployment of the same contract on multiple chains in a fully trustless way.
Nick's method is used to deploy a "deployer" contract, which is then used to deploy the core Sequence contracts.
These contracts are:
Factory Contract
Creates new Sequence wallets, with an initial configuration.
MainModule (v1 and v2)
The main module implements the core logic of the wallet, with a fixed configuration.
MainModuleUpgradable (v1 and v2)
Similar to the MainModule, but with the ability to upgrade the configuration of the wallet.
Auxiliary Contracts
Both v1 and v2 have auxiliary contracts that are used by the SDK to interact with the wallet; these contracts are not critical for the wallet to function, but they are required for the SDK to work.
See the v1 and v2 documentation for more information on the contracts.