x/ibcratelimiterext adds an independent, governance-managed operator whitelist for IBC rate-limiter operations. Packet enforcement remains the same as upstream ratelimiting middleware. The extension stores its own whitelist, lets governance update that whitelist through MsgUpdateParams, and lets whitelisted operators call rate-limiter mutation APIs.

Operation authorization

An address can operate the rate limiter if it can execute:
  • MsgAddRateLimit
  • MsgUpdateRateLimit
  • MsgRemoveRateLimit
  • MsgResetRateLimit
Authorization passes when either:
  1. The signer is the ratelimiting authority, normally governance authority.
  2. The signer is in the ibcratelimiterext whitelist.
Authority authorization is evaluated on the canonical decoded bech32 address, not raw input string casing.

Architecture

Default genesis

params.whitelist contains bech32 account addresses allowed to execute rate-limiter write operations through this extension. Default is empty, so only ratelimiter authority can operate those commands until whitelist entries are added. The upstream ratelimiting module has its own separate genesis in app_state.ratelimiting, including hour_epoch. ibcratelimiterext does not store or initialize those ratelimiting fields.

Query CLI

Transaction CLI

Whitelist updates are authority-only:
Rate-limit write commands require either governance authority or a whitelisted operator: