Account Abstraction
Deploys a smart account for the user to interact with your app. The specified personal wallet will be the admin signer. For more information about Account Abstration, see the glossary.
Usage
Behavior
WebGL
Goes through the specified personalWallet
login flow, then generates or connects a smart account based on that EOA address.
Standalone
Goes through the specified personalWallet
login flow, then generates or connects a smart account based on that EOA address.
Mobile
Goes through the specified personalWallet
login flow, then generates or connects a smart account based on that EOA address.
Miscellaneous
The ultimate goal of a smart account is to be able to sponsor gas fees for your users, while providing a signless and gasless experience.
They also work with any wallet provider as the EOA, but it is recommended to use a signless wallet, like In-App Wallets, for the best experience.
You would then be able to login to the exact same persistent EOA and smart account address across your apps, and even across different platforms.
You can also create session keys (revokable), allowing new signers to interact with the smart account without being the admin. You may also add/remove admins.
ZkSync Support
ZkSync chains make use of native account abstraction, whereby the user's EOA is the smart account. We support this as well.
The only difference is that no account factory or additional parameters are needed, simply set gasless to true, connect to ZkSync with a SmartWallet provider, and you're good to go.
Additional Options
Smart accounts, through paymasters, can be seen as a "plugin" to your user wallets, whereby all gas fees can be sponsored onchain.
To enable this, simply set the gasless
option to true in your ThirdwebManager prefab.
All smart accounts are deployed through an Account Factory, which is a contract that deploys smart accounts on behalf of your users. You would need to set this address in your ThirdwebManager prefab's settings as well.