> For the complete documentation index, see [llms.txt](https://docs.erc3643.org/erc-3643/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.erc3643.org/erc-3643/overview-of-the-protocol/built-in-compliance-framework/modular-compliance-add-ons.md).

# Modular Compliance add-ons

## Examples of Compliance Modules&#x20;

{% hint style="info" %}
These modules were developed by tokenization platforms and are not part of the open-source protocol&#x20;
{% endhint %}

**CountryAllowModule**: It facilitates granular control over token transfers based on the geographic location of participants, allowing compliance entities to manage transaction permissions for specific countries on-chain. Investors are associated with a single country and saved within the ID registry.

**CountryRestrictModule**: In contrast to the 'CountryAllowModule' mentioned above, the owner can restrict token transactions to users in specific countries with this module.

**ExchangeMonthlyLimitsModule**: This module is designed to set the limit of tokens allowed to be transferred monthly.

**MaxBalanceModule**: Sometimes, it is undesirable for a large number of tokens to be held at a single address because this situation can lead to price manipulation, unfairness in voting systems, and other issues. The MaxBalanceModule assists the platform owner in limiting the maximum amount of tokens a user can possess.

**SupplyLimitModule**: The SupplyLimitModule implements the supply cap commonly seen in popular libraries. With this module, the platform owner can restrict the total supply to a certain amount, preventing the unlimited minting of tokens.&#x20;

**TimeExchangeLimitsModule**: The TimeExchangeLimitsModule allows platform owners to restrict token transactions to specific exchanges within set timeframes. A user, identified by the compliance address, can possess multiple exchange IDs and utilize them for transactions as needed.

**TimeTransfersLimitsModule**: This module allows platform owner to set the limits of tokens allowed to be transferred in a given time frame. &#x20;

**TransferFeesModule**: Protocol fees can be vital for the sustainability of a platform. Mentioned module allows system administrators to effortlessly set fees and designate a collector address. Consequently, the module ensures that fees are collected during token transfers according to the specified rates and collectors.&#x20;

**TransferRestrictModule**: The TransferRestrictModule contract essentially creates a permit list functionality within the system, allowing system administrators to manage user access to transfers seamlessly. Furthermore, it provides flexibility through batch operations for efficiently managing multiple user addresses at once.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.erc3643.org/erc-3643/overview-of-the-protocol/built-in-compliance-framework/modular-compliance-add-ons.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
