Metro News

ens rate limits

How ENS Rate Limits Work: Everything You Need to Know

June 10, 2026 By Robin Mendoza

Introduction to ENS Rate Limits

The Ethereum Name Service (ENS) is a decentralized naming system built on the Ethereum blockchain. It maps human-readable names (like alice.eth) to machine-readable identifiers such as Ethereum addresses, content hashes, and metadata. As with any permissionless system operating on a shared global state machine, ENS must protect its smart contracts from abuse—specifically from spamming, griefing attacks, and economic exploitation. The mechanism it uses is called rate limiting.

Rate limits in ENS are not arbitrary caps imposed by a centralized authority. They are deterministic, contract-enforced constraints that govern how quickly an address or entity can perform certain operations—such as registering a new name, renewing an existing one, or modifying resolver records. Understanding these limits is critical for domain flippers, DAO treasuries, DeFi protocols, and any power user who interacts with ENS at scale.

This article breaks down the exact mechanics of ENS rate limits: where they apply, how they are calculated, what triggers a block, and how to work around them without breaking protocol rules.

Where Rate Limits Apply in ENS

ENS rate limits are not universal across all operations. They are concentrated in three specific areas of the protocol:

  1. Name registration via the Registrar Controller (ETH Registrar) – The most common rate limit. When you attempt to register a .eth name via the base registrar, the controller contract checks a time-based cooldown.
  2. Name renewal – Renewing a name before its expiration also triggers a limit, though the parameters differ slightly from initial registration.
  3. Set resolver / set record operations – Updating the resolver or records of a name under the ETH registrar can be rate-limited when performed in rapid succession by the same caller.

Note that standard queries (e.g., resolving a name to an address) are never rate-limited, because they are read-only and cost no gas. Limits only apply to state-changing transactions.

How the ENS Rate Limit Algorithm Works

The ENS rate limit is implemented as a sliding window counter with exponential backoff. It is not a simple "3 requests per minute" throttle; it is more nuanced. Here is the precise logic, as coded in the BaseRegistrarImplementation.sol and controlled by the ETHRegistrarController:

  • Window duration: The default window is 60 seconds (1 block on Ethereum averages ~12 seconds, so ~5 blocks).
  • Maximum operations per window: Each unique caller (msg.sender) is allowed 1 operation per window for registration or renewal under normal conditions. This is intentionally restrictive to prevent a single address from hoarding all short-domain names.
  • Cooldown expansion: If a caller exceeds this limit within the window, the contract increments a retry counter. The cooldown period doubles for each subsequent violation. For example: 1st violation → 60-second cooldown, 2nd violation → 120 seconds, 3rd → 240 seconds, and so on, up to a maximum of ~24 hours.
  • Fee multiplier: Beyond the time penalty, an excess operation also triggers a fee multiplier on the next successful registration (typically 1.5x to 5x the base fee), enforced by the premium auction mechanism of the underlying ENS auction system. This is an economic disincentive, not a hard block.

Critically, the rate limit resets when a period of inactivity longer than the current cooldown has passed. If you wait quietly for 5 minutes after a violation, the counter resets and you regain a fresh window.

Specific Scenarios That Trigger ENS Rate Limits

To avoid surprises, you must know exactly which actions trigger a limit. Here are the most common triggers:

  1. Registering a name that was just released (expired). Many expired names are re-registered within seconds of becoming available. ENS rate limits prevent one bot from registering all of them. If you attempt to register two expired names from the same wallet within 60 seconds, the second transaction will revert with a "rate limited" error.
  2. Renewing a name for multiple years at once. While renewing for 3+ years in a single transaction is allowed, doing so for several different names in rapid succession (e.g., within the same block) can hit the per-caller window limit. Space out renewals by at least 10–15 seconds.
  3. Bulk operations via scripts. If you write a script that loops through 20 names to call register() or renew(), the first few may succeed, but once the sliding window kicks in, the remaining calls will fail. You must add explicit delays (e.g., await new Promise(r => setTimeout(r, 5000))) between each call.
  4. Using the same contract or proxy. If you use a multisig or a proxy contract that submits many ENS transactions in quick succession from the same address, the limit applies to that contract address, not the individual signers.

How to Avoid or Bypass ENS Rate Limits (Within Protocol Rules)

Rate limits are a feature, not a bug—they protect the fairness of the namespace. However, legitimate power users can optimize their workflows to avoid hitting them. Here is a practical checklist:

  • Use multiple wallets or addresses. Since the limit is per caller, distributing operations across 3–5 different Ethereum addresses effectively multiplies your throughput by 3–5x. Each address gets its own sliding window and cooldown. This is the most common workaround used by domain brokers.
  • Space out transactions by at least 90 seconds. Even if you do not hit the limit, consecutive transactions within the same block can cause a "gas price surge" penalty in the ENS premium system. A 90-second gap avoids the retry counter entirely.
  • Use off-chain commit-reveal. For registration, always use the commit() → wait → register() flow with a random salt. The commit stage itself is not rate-limited. Only the reveal (register) step has a limit. By batching commits first and then revealing one by one with delays, you can register many names over time.
  • Monitor the rate limit error codes. The ENS contract reverts with a custom error RateLimitExceeded() (since ENS v0.31+). If you catch this error, wait cooldown * 2 seconds before retrying. Do not immediately retry—this will double the cooldown.

Relationship Between Rate Limits and ENS Governance

ENS rate limits are not hardcoded forever. The ENS DAO treasury and the protocol’s governance framework allow the community to adjust rate limit parameters via on-chain voting. While the core registrar contract is immutable, the ETHRegistrarController is upgradeable. Past proposals have included lowering the cooldown during high-demand periods and increasing the maximum operations per window. Currently, the default parameters are considered conservative to prevent name squatting.

Furthermore, ENS has formed Ens Domain Strategic Alliances with layer-2 scaling solutions and alternative registries to offload some rate-limited operations to sidechains. For instance, ENS domains registered on Optimism or Arbitrum may eventually bypass the L1 rate limit entirely, depending on the registrar implementation. These alliances also affect how rate limits are enforced across different chains—for example, a name registered on L2 may have a separate, L2-specific rate limit that is much higher.

Common Misconceptions About ENS Rate Limits

Several myths circulate about how ENS rate limits operate. Here is clarification on the most common ones:

  • "Rate limits are based on IP address." False. ENS is a blockchain protocol—it has no concept of IP addresses. Limits are always based on msg.sender (the Ethereum address calling the contract). Your IP is irrelevant.
  • "You can bypass rate limits by using a VPN." False for the same reason. A VPN changes your IP but not your wallet address. The contract does not see your network layer.
  • "Rate limits are the same for all users." Mostly true, but the contract may apply different limits if the name is a premium (short) name. Premium names have their own auction mechanism that bypasses the standard rate limit. Also, an address that has never interacted with the ENS registrar before starts at the baseline window—no bonus.
  • "The rate limit is permanent per address." False. The cooldown resets after inactivity. A wallet that was rate-limited 1 hour ago can try again now with a clean slate.

Practical Debugging: How to Check If You Are Rate-Limited

If a transaction fails with a cryptic revert and you suspect a rate limit, follow this diagnostic process:

  1. Check the error message. Use Etherscan or a tool like Tenderly to see the revert reason. Look for RateLimitExceeded() or ERC4337: rate limit (if using account abstraction).
  2. Query the contract’s cooldown mapping. Call the cooldownDuration(address) function on the ETHRegistrarController contract (at 0x283Af0B28c62C092C9727F1Ee09c02CA627EB7F5 on mainnet). If it returns a value greater than 60 seconds, you are in an exponential backoff phase.
  3. Check the last committed block. Use getCommitmentTimestamp(bytes32 commitment) to see when your last commit was made. If it is less than 60 seconds ago, you must wait.
  4. Use a different caller. If you are running a bot, simply switch to a fresh wallet that has not performed any ENS operations in the last 5 minutes. The limit resets per address, not per session.

Future of ENS Rate Limits

The ENS protocol is evolving. With the upcoming ENS v2 (expected 2024–2025), rate limits may shift to a per-name basis rather than per-caller, reducing friction for bulk operators. Additionally, the integration of account abstraction (ERC-4337) could allow users to pay for gas with ERC-20 tokens while maintaining rate limit compliance through bundlers. The ENS DAO treasury is funding research into more granular rate control—for example, allowing users to stake ENS tokens to increase their rate limit caps. This would turn the current one-size-fits-all throttle into a market-driven mechanism.

In the meantime, understanding the current sliding window algorithm, respecting exponential backoff, and using multiple addresses are the only reliable ways to operate at scale. Do not try to spam the contract—you will only increase your cooldown and waste gas fees.

Conclusion

ENS rate limits are a necessary safeguard to maintain fairness and prevent abuse of the naming system. They are deterministic, transparent, and governed by on-chain parameters that the community can adjust. By knowing exactly where limits apply—registration, renewal, and record updates—and how the sliding window with exponential backoff works, you can plan your ENS operations to avoid unnecessary reverts. Whether you are a domain investor, a protocol developer, or a DAO treasurer, respecting these limits ensures smooth interaction with the ENS ecosystem. Always check the current cooldown before initiating a batch of operations, and consider distributing your calls across multiple addresses. The combination of technical discipline and strategic alliances will keep your ENS workflows efficient and cost-effective.

Worth a look: How ENS Rate Limits

Understand ENS rate limits: how the ENS protocol enforces registration, renewal, and name operation limits, what triggers them, and how to avoid disruptions.

Key takeaway: How ENS Rate Limits

Further Reading

R
Robin Mendoza

Carefully sourced reports and updates