import "@thirdweb-dev/contracts/smart-wallet/utils/AccountExtension.sol";

The AccountExtension smart contract is the extension usable with the Managed Account smart contracts. It is the default extension for these base contracts. It includes the default logic for creating a smart account smart contract including the ability to:

  • Have multiple owners
  • Execute transactions (single and batched).
  • Send and receive native tokens.
  • Send and receive ERC-721 and ERC-1155 NFTs.
  • Multicall-able.
  • Store contract metadata.

View on GitHub


This is an example smart contract demonstrating how to inherit from this extension and override the functions to add (optional) custom functionality.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@thirdweb-dev/contracts/smart-wallet/utils/AccountExtension.sol";
contract MyManagedAccount is AccountExtension { ... }

Inherited Extensions

This extension inherits from the following extensions:

Base Contracts Implementing This Extension

Full API reference