Contracts overview

The Avocado platfrom consists of the smart contract wallet and several contracts around it.

Most notably, the AvocadoMultisig contract implements the smart wallet (Multisig) logic itself. This logic contract is targeted by the Avocado contract, which is the actually deployed proxy for the user (making the smart wallet logic contract upgradeable).

The most important core contracts around the smart wallet contract are:

  • AvoFactory: deploys (and initializes) new wallets (Avocado)
  • AvoForwarder: targeted by allow-listed broadcasters to execute signed actions (and deploy if necessary)
  • AvoRegistry: maintains allowed versions that can be used as wallet logic contracts and configures the Avocado up-charge for castAuthorized() calls

The AvoDepositManager handles USDC gas deposits and the referral system.

Note: all these contracts are proxy contracts.

Furthermore there are administrative contracts such as the AvoAdmin which is a simple ProxyAdmin, AvoMultisigAdmin (static multisig used as owner during deployment), and several helper contracts:

  • AvoSignersList: track signers to wallet mappings on-chain
  • AvoGasEstimationsHelper helps in estimating gas fees for arbitrary executed actions through the smart wallet

For further details, see the specific contract docs in Core Contracts and Helper Contracts or look directly at the source code.

The diagram below shows the core functions for each Avocado contract and how it interacts with other contracts.

Avocado Contracts