Managed Account

import "@thirdweb-dev/contracts/smart-wallet/managed/ManagedAccount.sol";

This contract inherits from the BaseAccount contract.

The ManagedAccount is an upgradeable smart account contract written in the dynamic contract pattern.

App developers can issue ManagedAccount smart accounts programmatically by deploying a ManagedAccountFactory smart contract.

The admin of the ManagedAccountFactory contract can push upgrades to all ManagedAccount contracts that it creates. This admin does not require any permissions on the ManagedAccount smart account to do so.

An upgrade to the features of ManagedAccount applies to all ManagedAccount smart accounts created by the factory. This is the right wallet for developers who anticipate pushing upgrades to their users’ wallets.

GitHub
View on GitHub

Detected Extensions

Once deployed, you can use the features made available by these extensions on the SDK and dashboard:

Usage

Import the contract and inherit from it. This is an example contract demonstrating one way that you could override the functionality to create a token bound account.

import "@thirdweb-dev/contracts/smart-wallet/managed/ManagedAccount.sol";
contract ManagedTokenBoundAccount is ManagedAccount {
constructor(
IEntryPoint _entrypoint
)
ManagedAccount(
_entrypoint
)
{}
}

Functions to Override

The following functions have been implemented on this contract & are available to be overridden to add custom logic: