Skip to main content

Atlas Modules

1. Introduction to Atlas Modules

Definition and Purpose of Atlas Modules

Atlas Modules are customizable smart contracts that define the specific rules, behaviors, and operational mechanics for DeFi applications built on the Atlas protocol. By leveraging a modular architecture, developers can tailor the execution context to meet the unique requirements and governance structures of their applications.

Key Purposes:

  • Customization: Allow developers to define how transactions are processed, how revenue is allocated, how various roles interact within the protocol, and how hooks are implemented to validate, process, and execute transactions.
  • Hook Implementation and Configuration: Developers can implement hook functions such as pre-operation, user operation, solver operation, and post-operation hooks, defining custom behaviors for each phase of a transaction.
  • Flexibility: Enable the creation of diverse DeFi applications by providing a foundation that can be extended or modified without altering the core protocol.
  • Interoperability: Facilitate seamless integration with different dApps, ensuring that each application can operate under its own set of rules while maintaining compatibility with the Atlas ecosystem.

How Modules Interact with the Atlas Protocol

Atlas Modules serve as the bridge between individual DeFi applications and the overarching Atlas protocol. They define the execution context, manage interactions between originators and solvers, and handle the allocation of value generated through Miner Extractable Value (MEV).

Interaction Flow:

  1. Module Deployment: Dapp Developers deploy their modules and reference Atlas Smart Contracts.
  2. Transaction Routing: DeFi applications route their transactions through the Atlas protocol, which references the appropriate module.
  3. Execution Context: The module dictates via hooks how transactions are validated, processed, and executed within the protocol.
  4. Value Distribution: MEV revenue is distributed according to the rules defined in the module (see Value Allocation).

Flexibility and Customization Options

Atlas Modules offer a high degree of flexibility, allowing developers to:

  • Define Bid Valuation: Customize how solver bids are evaluated and ranked.
  • Assign Roles: Specify who can act as Auctioneer and Bundler through various assignment mechanisms.
  • Implement Hook Functions: Customize pre-operation, user operation, solver operation, and post-operation behaviors.
  • Configure Execution Context: Tailor the environment in which operations are executed, including defining specific conditions and constraints.
  • Integrate with dApps: Seamlessly wrap around different types of dApps, enabling a wide range of DeFi functionalities.

For a comprehensive guide on how to configure and customize Atlas Modules for your specific DeFi application, refer to our DApp Configuration Guide.


2. Core Components of Atlas Modules

Atlas Modules are composed of several core components that collectively define the behavior and rules of a DeFi application within the Atlas protocol. These components include Value Allocation and Auctioneer & Bundler Assignment, which provide essential functionalities that shape how the module interacts with the Atlas ecosystem.

2.1 Value Allocation

Explanation of MEV Revenue Distribution

Miner Extractable Value (MEV) represents the potential profit that can be extracted by searchers through strategies like back-running transactions within a block. In the Atlas protocol, MEV revenue is generated from the MEV opportunities identified and exploited by searchers, rather than from the efficiency of transaction execution or gas optimization.

MEV Revenue Distribution:
  • Originators: The users or applications initiating transactions.
  • Protocol Fees: A portion allocated to the Atlas protocol for maintenance and development.

The Value Allocation component determines how the MEV revenue is distributed among these parties, ensuring fair compensation and incentivizing participation.

Methods for Configuring Value Allocation

Developers can configure value allocation using various strategies, such as:

  • Fixed Percentage Allocation: Predefined percentages assigned to originators and protocol fees.
  • Dynamic Allocation: Adjusts distribution based on factors like transaction complexity or performance.
  • Custom Logic: Implements bespoke algorithms to determine revenue distribution tailored to specific use cases.
Example Configuration Description:

An Atlas Module can specify that 95% of the MEV revenue goes to the originator and 5% to the protocol. Alternatively, the distribution percentages can be dynamic, adjusting based on other criteria defined by the developer.

2.2 Auctioneer & Bundler Assignment

Overview of Assignment Options

The Auctioneer and Bundler are critical roles within the Atlas protocol, responsible for managing the auction process and bundling transactions, respectively. Atlas Modules provide multiple options for assigning these roles, balancing control, decentralization, and automation.

Assignment OptionDefinitionUse CasesAdvantagesDisadvantages
Trusted PartiesDesignates specific, trusted entities to act as Auctioneer and Bundler.Controlled Environments, Security ConcernsPredictable behavior, easier troubleshootingCentralization risks, potential single points of failure
DecentralizedEmploys a decentralized mechanism, such as token-based voting, for role assignment.Community Governance, Enhanced SecurityIncreased decentralization, greater resilienceComplexity in governance, slower decision-making
Dynamic AssignmentRoles assigned based on criteria or conditions, like stake size or performance metrics.Performance-Based, Adaptive SystemsEncourages performance, adaptable to networkComplexity in criteria management, potential volatility
Smart Contract-basedAutomates responsibilities through smart contracts, eliminating human actors.Fully Decentralized, Impartial OperationsComplete automation, reduced operational costsLimited flexibility, dependence on contract logic

2.3 User Operation Validation

User Operation Validation ensures that incoming transactions (UserOps) meet the necessary criteria before being processed by the protocol. This component is responsible for verifying:

  • Signature Validity: Ensures that the transaction is properly signed by the originator.
  • Intent Verification: Confirms that the transaction aligns with the originator’s intent as defined in the module.
  • Resource Availability: Checks that the originator has sufficient funds or permissions to execute the operation.

Proper validation mechanisms are crucial for maintaining the security and integrity of the protocol, preventing unauthorized or malicious transactions from being processed.

2.4 Solver Operation Validation and Sorting

Solver Operation Validation and Sorting involves evaluating the proposals submitted by solvers (SolverOps) and determining their suitability for execution.

Key Responsibilities:

  • Validation: Ensures that SolverOps adhere to the rules and constraints defined in the module.
  • Sorting: Ranks SolverOps based on predefined criteria such as bid value, efficiency, or reputation.
  • Selection: Determines the optimal SolverOps to include in the final transaction bundle.

This component ensures that only the most suitable and efficient SolverOps are selected for execution, optimizing the overall performance and profitability of the protocol.


3. Customization Options

Atlas Modules provide various customization options, allowing developers to tailor the execution process to their specific needs. These options include configuring the execution context, defining pre-execution and post-execution logic, and more.

3.1 Execution Context Configuration

Execution Context Configuration involves setting up the environment in which operations are executed. This includes defining:

  • State Variables: Variables that maintain the state of the application.
  • Execution Parameters: Parameters that influence how operations are processed, such as gas limits or timeouts.
  • Environmental Conditions: Conditions that must be met for operations to proceed, such as specific network states or external dependencies.

By configuring the execution context, developers can ensure that operations are executed under the desired conditions, enhancing both performance and security.

3.2 Pre-execution Logic

Pre-execution Logic consists of hook functions that are executed before the main operation. These hooks can perform tasks such as:

  • Validation Checks: Ensuring prerequisites are met before execution.
  • Setup Operations: Preparing necessary conditions or resources.
  • Intent Definition: Specifying the originator’s intent for the operation.

Types of Pre-operation Hooks:

  • Pre-operation Hooks: Executed before the main operation.
  • User Operation Hooks: Define the core operation to be executed.
  • Solver Operation Hooks: Define requirements and assistance for solvers.

These hooks allow developers to implement custom logic that runs prior to the main operation, ensuring that all necessary conditions are satisfied and that the operation aligns with the application's objectives.

3.3 Post-execution Processing

Post-execution Processing involves hook functions that are executed after the main operation and solver operations have been completed. These hooks can handle tasks such as:

  • Cleanup Operations: Removing temporary data or resetting states.
  • Bookkeeping: Recording the outcomes of operations.
  • Value Distribution: Allocating MEV revenue according to predefined rules.

Post-execution hooks ensure that any necessary follow-up actions are performed, maintaining the application's integrity and facilitating accurate value distribution based on the module's configuration.


4. Integration with dApps

Atlas Modules are designed to seamlessly integrate with decentralized applications (dApps), allowing developers to enhance their applications with customized execution logic.

How Modules Wrap Around Specific dApps

Atlas Modules act as intermediaries that encapsulate the specific rules and behaviors of a dApp. By integrating a module, a dApp can leverage the Atlas protocol’s features such as MEV optimization, customizable execution contexts, and flexible role assignments.

Integration Steps:

  1. Module Development: Create and configure an Atlas Module tailored to the dApp’s requirements.
  2. Module Publication: Deploy the module to the Atlas protocol.
  3. dApp Configuration: Configure the dApp to route its transactions through the Atlas protocol, referencing the appropriate module.
  4. Operation Execution: The Atlas protocol manages the execution of transactions based on the module’s rules.

This integration allows dApps to benefit from the Atlas protocol’s advanced features while maintaining their unique functionalities and governance structures.

Examples of Module Implementations for Different Types of dApps

Atlas Modules can be tailored to meet the specific needs of various dApp types, including:

  1. Decentralized Exchange (DEX): Backrunning strategies for arbitrage opportunities.
  2. Lending Platform: Efficient liquidation processes and interest distribution.
  3. Oracle Networks: Optimistic Execution Verification (OEV) for fair execution.

These examples demonstrate how Atlas Modules can enhance functionality across different dApp types. For detailed implementation guidance, please check out our Integration Guide


5. Advanced Features

Atlas Modules offer several advanced features that enable developers to create sophisticated and highly customizable decentralized applications. Here is a list of some of the key advanced features:

  • Ex-Post Bids (On-Chain Solving): Allows solvers to submit bids after observing the execution of a transaction, providing opportunities for on-chain optimization and dynamic bid adjustments.
  • Custom Hook Configuration: Developers can control their application's behavior by enabling or disabling specific hooks, allowing for precise management of execution, security checks, and post-processing actions.
  • Flexible Nonce Management: Choose between sequential and non-sequential nonces for users and DApps to manage transaction order and security.
  • Trusted Operation Hashes: Enhance security by requiring specific operation hashes to be trusted, ensuring the integrity of transaction execution.

Appendix

Auctioneer & Bundler Assignment Options

The following table outlines the various options available for assigning the Auctioneer and Bundler roles within Atlas Modules, detailing their characteristics and suitable use cases.

Assignment OptionDescriptionUse Case
Trusted PartiesDesignates specific, trusted entities to act as Auctioneer and Bundler.Appropriate when developers want to maintain a higher degree of control over the execution process.
Decentralized AssignmentEmploys a decentralized mechanism, such as a token-based voting system, to determine role assignments.Suitable for environments where community governance is desired, allowing token holders to elect entities for these roles.
Dynamic AssignmentAssigns roles based on specific criteria or conditions, such as stake size or efficiency metrics.Ideal for systems that prioritize performance and efficiency, assigning roles to entities with the highest stake or lowest gas fees.
Smart Contract-based AssignmentAutomates the responsibilities of Auctioneering and Bundling through smart contracts without human actors.Best for fully decentralized ecosystems where trustless operations and impartiality are essential.


Conclusion

Atlas Modules provide a robust and flexible framework for developing sophisticated DeFi applications. By leveraging the modular architecture, developers can customize execution contexts, manage value allocation, assign critical roles, and integrate seamlessly with various dApps. Advanced features like cross-module interactions, upgradeability, and stringent security measures ensure that Atlas Modules can adapt to evolving requirements while maintaining the integrity and efficiency of the protocol.

For further assistance or to contribute to the Atlas Modules development, please refer to the Atlas Protocol Community or contact the Atlas Support Team.