# Modules

Modules are a concept designed at the inception of Safe's Smart Account in 2018. This modular architecture allows Safe Smart Accounts to add additional features over time without requiring users to migrate to a new account.

## What is Modules?

To draw an analogy, it’s like Chrome and its extensions. With extensions, Chrome can connect you to the Web3 world, block annoying ads, check for spelling errors, and provide security tips. One of the advantages of Chrome’s development is its powerful and comprehensive extension ecosystem. You either use Google to enjoy a complete and timely updated extension experience or use a bare-bones browser.

In Safe, Modules serve a similar function to extensions. The Smart Account created by the user is essentially a contract account, which means it can be programmed to have various functionalities. This includes executing transactions according to the rules of the Module. A Module is a new smart contract associated with the Safe Account, containing highly customizable logic determined by the Module’s developer. It can even allow transactions to be executed without meeting the threshold of member approvals.

<figure><img src="/files/zMspi6MwwUrfG7pbImyp" alt=""><figcaption></figcaption></figure>

## What can Modules do?

Once installed, they enable a variety of additional functionalities for multisig accounts, including but not limited to:

1. **Gas Payment** - Use any type of token or even credit cards to pay gas fees.
2. **zkLogin** - Log in to your multisig account using various social media accounts, making it as simple as Web2.
3. **XAccount** - Ensure your address remains consistent across multiple chains.
4. **Vesting Pool** - Make your multisig account a more secure reward pool, releasing rewards to users.

<figure><img src="/files/ehMtp0vhCJ4AZVDpAyG3" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://evm-docs.mimir.global/concept/modules.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
