Mimic's architecture has been designed to be highly modular and customizable, enabling users to have fine-grained control over their automated DeFi operations.
This architecture allows Mimic users to have full control over their assets, permissions, pricing data, and interactions with various DeFi protocols. It promotes flexibility, customization, and trustless execution of automated DeFi operations.
The Smart Vault serves as the central component where users can store their assets, ensuring they are readily available for execution by their tasks. It also maintains critical configuration information shared among authorized tasks and handles the whitelisting of connectors that can be utilized by those tasks.
The Authorizer is a vital component within the Mimic architecture, governing the permissions and access control for the rest of the Mimic components. It acts as a comprehensive permissions layer, granting specific accounts the necessary authorization to perform designated actions.
For seamless execution of DeFi operations, access to accurate price information is essential. Mimic provides a standard Price Oracle implementation that simplifies price computation. The Price Oracle can interact with on-chain price feeds through whitelisted sources, such as Chainlink, or rely on off-chain prices where external signatures from trusted parties are required to extract desired prices.
Connectors are stateless components within the architecture that serve as code libraries, guiding the Smart Vault on how to interact with different DeFi protocols. Mimic offers a selection of connectors covering common protocols like Uniswap, Curve, Convex, Balancer, 1inch, Paraswap, Connext, Hop, Axelar, Wormhole, and more. However, users have the freedom to integrate their own connectors. The Smart Vault provides the mechanism for opting-in and enabling specific connectors.
Tasks are the components that expose configurations related to DeFi operations or workflows. They enable the automatic execution of these operations by relayers in a trustless manner. For example, a swap task utilizing the Uniswap connector would expose parameters such as gas price limits, threshold amounts, frequency, allowed tokens, desired maximum slippage, desired token output, and more. These configurations ensure that relayers can only execute swaps under predefined conditions, with all necessary validations performed on-chain.