Omnichain Account Abstraction consists of a series of independent components, each with its own responsibilities and interfaces. This modular design allows for individual iteration and upgrades, ensuring Omnichain AA’s scalability.
By decoupling the management permissions and account logic of Smart Accounts, which can be simplified as the separation of Storage and Code (Logic), we require a secure chain to store the user's account management permissions (Storage/KeyStore). The Particle Chain, therefore, serves as the most critical component of Omnichain. It stores the data (Storage) of the user's Smart Account, coordinates Deployer Contracts across different chains, and handles cross-chain message-passing components to ensure the storage and updates of the user's multi-chain Smart Account.
For a Smart Account to be multi-chain, a unified address is needed. This address is determined by the Deployer Contract. The Deployer Contract then works together with cross-chain message-passing components to achieve unified Storage across multiple chains. For the initial deployment of a Smart Account, the Deployer Contract refuses deployment from chains other than the Particle Chain, ensuring that the initial deployment also has the same Storage.
Updating the Storage of an account on the Particle Chain requires support from cross-chain messaging components for coordination. We directly adopt implementations like LayerZero for this purpose. Users can call the xManage method of their Smart Account from the Particle Chain to synchronize their state with any other chain, whether they’re dealing with the initial deployment or subsequent updates.