
ENS
Bounty Range
$1,000 - $250,000
external program
The Ethereum Name Service (ENS) is a distributed, open, and extensible naming system based on the Ethereum blockchain.
ENS's job is to map human-readable names like 'alice.eth' to machine-readable identifiers such as Ethereum addresses, other cryptocurrency addresses, content hashes, and metadata. ENS also supports 'reverse resolution', making it possible to associate metadata such as canonical names or interface descriptions with Ethereum addresses. ENS has similar goals to DNS, the Internet's Domain Name Service, but has significantly different architecture due to the capabilities and constraints provided by the Ethereum blockchain. Like DNS, ENS operates on a system of dot-separated hierarchical names called domains, with the owner of a domain having full control over subdomains.
Top-level domains, like '.eth' and '.test', are owned by smart contracts called registrars, which specify rules governing the allocation of their subdomains. Anyone may, by following the rules imposed by these registrar contracts, obtain ownership of a domain for their own use. ENS also supports importing in DNS names already owned by the user for use on ENS.
Because of the hierarchical nature of ENS, anyone who owns a domain at any level may configure subdomains — for themselves or others — as desired. For instance, if Alice owns 'alice.eth', she can create 'pay.alice.eth' and configure it as she wishes.
ENS is deployed on the Ethereum main network and on several test networks. If you use a library such as the ensjs Javascript library, or an end-user application, it will automatically detect the network you are interacting with and use the ENS deployment on that network.
ENS provides rewards in USDC on Ethereum, denominated in USD.
Smart Contract
| Severity | Max | Min |
|---|---|---|
| Critical | $250,000 | $10,000 |
| High | $100,000 | $25,000 |
| Medium | $100,000 | - |
Websites and Applications
| Severity | Max | Min |
|---|---|---|
| Critical | $50,000 | $20,000 |
| High | $20,000 | $5,000 |
| Medium | $5,000 | $2,500 |
| Low | $1,000 | - |
The reward for critical smart contract vulnerabilities is calculated as 10% of funds directly affected, up to a maximum of USD 250,000, calculated as follows:
| Condition | Minimum Reward |
|---|---|
| Base: 10% of funds directly affected, up to $250,000 | Up to $250,000 |
| Where funds directly affected exceed $1,500,000 | Minimum $150,000 |
| Where funds directly affected are between $500,000 and $1,500,000 | Minimum $75,000 |
| Where funds directly affected are below $500,000, or not objectively calculable | Minimum $25,000 |
| Where the vulnerability affects fewer than 50 on-chain assets or accounts | Minimum $10,000 |
If the smart contract where the vulnerability exists can be upgraded or paused, only the initial attack will be considered for a reward within the mitigation window (12 hours for Security Council, 9 days for DAO vote). This is because the project can mitigate the risk of further exploitation by upgrading or pausing the component where the vulnerability exists. The reward amount will depend on the severity of the impact and the funds at risk.
For critical repeatable attacks on smart contracts that cannot be upgraded or paused, the project will consider the cumulative impact of the repeatable attacks for a reward. This is because the project cannot prevent the attacker from repeatedly exploiting the vulnerability until all funds are drained and/or other irreversible damage is done. Therefore, this warrants a reward equivalent to 10% of funds at risk, capped at the maximum critical reward.
The reward for high-severity smart contract vulnerabilities ranges between USD 25,000 and USD 100,000, based on the assessed impact and funds at risk.
High vulnerabilities concerning theft or permanent freezing of unclaimed yield or royalties are considered at the full amount of funds at risk, capped at the maximum high reward. This is to encourage security researchers to uncover and responsibly disclose vulnerabilities that may not have significant monetary value today but could still be damaging to the project if left unaddressed.
Temporary freezing of funds is classified as High severity. The reward is determined within the High reward range based on the value of funds affected and the estimated duration of the freeze.
For high smart contract bugs on testnet assets, the reward ranges between a minimum of $25,000 and maximum of $75,000, contingent upon the ability to calculate the equivalent mainnet impact.
In cases where objective calculation is not feasible, there will be a base reward of $25,000, with the discretion to increase the amount.
Critical web/application bug reports will be rewarded with USD 50,000, only if the impact leads to:
Payouts are handled by the ENS team directly and are denominated in USD. However, payments are done in USDC.
The calculation of the net amount rewarded is based on the average price between CoinMarketCap.com and CoinGecko.com at the time the bug report was submitted. No adjustments are made based on liquidity availability.
Commits tagged with vx.x.x-RCX (e.g. v1.2.3-RC0), vx.x.x-testnet (e.g. v1.2.3-testnet) or vx.x.x (e.g. v1.2.3) are potentially eligible for the bug bounty. To be clear this includes testnet releases. For testnet releases, only version numbers greater than or equal to the latest mainnet release are eligible. For mainnet, only the latest release is eligible.
KYC is generally not required to participate in or receive rewards from the ENS bug bounty program. However, ENS reserves the right to request identity verification or additional information where required by applicable law, payment processors, sanctions compliance or internal risk assessment.
Proof of concept is always required for all severities.
Category 3: Approval Required
The following vulnerabilities are already known and therefore ineligible for rewards:
The ENS bug bounty program includes a public Immunefi Vault that transparently displays the funds allocated for bug bounty rewards. The vault is deployed on Ethereum and holds assets designated exclusively for vulnerability payouts.
Public vault address: 0x6d9f8f5e2E76A7e43805dbD4464EaC3299B34De5
By adhering to Immunefi's best practice recommendations, ENS has satisfied the requirements for the Immunefi Standard Badge.
The project may be receiving reports that are valid (the bug and attack vector are real) and cite assets and impacts that are in scope, but there may be obstacles or barriers to executing the attack in the real world. In other words, there is a question about how feasible the attack really is. Conversely, there may also be mitigation measures that projects can take to prevent the impact of the bug, which are not feasible or would require unconventional action and hence, should not be used as reasons for downgrading a bug's severity.
Therefore, Immunefi has developed a set of feasibility limitation standards which by default states what security researchers, as well as projects, can or cannot cite when reviewing a bug report regarding: