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:MsgAddRateLimitMsgUpdateRateLimitMsgRemoveRateLimitMsgResetRateLimit
- The signer is the ratelimiting authority, normally governance authority.
- The signer is in the
ibcratelimiterextwhitelist.
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.
On mainnet (c8ntinuum_8-1) the whitelist is not empty. It holds three team-controlled operator accounts, which can add, update, remove, or reset IBC rate limits without a governance proposal. To see the current list, run ctmd query ibcratelimiterext whitelist.
The upstream ratelimit module has its own separate genesis in app_state.ratelimit, including hour_epoch. ibcratelimiterext does not store or initialize those fields.
Query CLI
The extension adds only thewhitelist query. Rate-limit queries come from the upstream ratelimit module:
Transaction CLI
The transaction examples set--gas-prices to 222000000000ctm (222 gwei), the chain’s minimum gas price. The gas price must also be at least the current base fee, so use a higher value when the base fee is above 222 gwei. See Gas on c8ntinuum.
Whitelist updates are authority-only. The authority is the x/gov module account (c810d07y265gmmuvt4z0w9aw880jnsr700j335k0a on mainnet), which has no key, so submit the update as a governance proposal. MsgUpdateParams replaces the whole whitelist, so list every address that should stay on it. Set deposit to at least the governance minimum deposit (see ctmd query gov params).
ratelimit module and take flags, not positional arguments. The extension only decides whether the signer is authorized: