# Introduction

## Overview

The IBC Rate Limit module provides rate limiting functionality for Inter-Blockchain Communication (IBC) token transfers. It allows the chain to enforce limits on token transfers across IBC channels to prevent excessive inflows or outflows that could destabilize the chain's token supply.

## Purpose

The module serves as a security mechanism to:

* **Control supply shifts**: Limit the net change in token supply (inflows minus outflows) over specified timeframes
* **Limit unique senders**: Restrict the number of unique addresses that can send tokens through a channel within a timeframe
* **Enforce per-address limits**: Set limits on the number of transfers and total amount per address within a timeframe

## Key Concepts

### Rate Limit Configuration

Rate limits are configured per channel and denomination through the module's parameters. Each configuration can specify:

* **Channel ID**: The IBC channel to apply the limit to (empty string applies to all channels)
* **Denomination**: The token denomination to limit (must be specified)
* **Supply Shift Limits**: Limits on the absolute value of net flow (inflows - outflows)
* **Unique Sender Limits**: Limits on the number of unique sender addresses
* **Address Limits**: Per-address limits on transfer count and total amount

### Timeframes

The module supports three types of timeframes:

* **BLOCK**: Duration measured in blocks
* **HOUR**: Duration measured in hours (converted to blocks using block time)
* **DAY**: Duration measured in days (converted to blocks using block time)

Multiple timeframe limits can be configured for the same channel/denom combination, and all limits are checked. If any limit would be exceeded, the transfer is rejected.

## Authority

The module's parameters can be updated by the authority address, which defaults to the governance module account. This allows governance to adjust rate limits as needed.


---

# 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://docs.bitbadges.io/other-modules/x-ibc-rate-limit/overview.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.
