ENS
Ethereum ERC-20 Token0xc18360217d8f7ab5e7c516566761ea12ce7f9d72
Solidity v0.8.7+commit.e28d00a7
Fungible token following the ERC-20 standard.
🤖
Query this contract from your AI
Reference:
ens-eth
0xc18360217d8f7ab5e7c516566761ea12ce7f9d72
Sample prompt:
“Tell me the current state of ens-eth”
No AI wired up yet? →
mcp.smarts.md
Admin & Risk
Who can change the rules?
Detected mintable and ownable controls from the verified ABI.
Mintable
Ownable
Current controls
- Owner
- 0xfe89cc7abb2c4183683ab71653c4cdc9b02d44b7 wallet.ensdao.eth ↗ Etherscan → smarts
Overview
Read Functions
21
Write Functions
14
Events
7
Read Functions
Block #25,169,803 · just now
DOMAIN_SEPARATOR()
view
→ 0x3172a7257acc6467eb985cfb1d52917228ac18e308bae31d65407e0983bd10a2
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
allowance(owner: address, spender: address)
view
dev: See {IERC20-allowance}.
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address | |
| spender | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
balanceOf(account: address)
view
dev: See {IERC20-balanceOf}.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
checkpoints(account: address, pos: uint32)
view
dev: Get the `pos`-th checkpoint for `account`.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address | |
| pos | uint32 |
Returns
| Name | Type | Description |
|---|---|---|
| — | tuple |
claimPeriodEnds()
view
→ 1,651,622,400
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
decimals()
view
→ 18
dev: Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.
Returns
| Name | Type | Description |
|---|---|---|
| — | uint8 |
delegates(account: address)
view
dev: Get the address `account` is currently delegating to.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
getPastTotalSupply(blockNumber: uint256)
view
dev: Retrieve the `totalSupply` at the end of `blockNumber`. Note, this value is the sum of all balances. It is but NOT the sum of all the delegated votes! Requirements: - `blockNumber` must have been already mined
Parameters
| Name | Type | Description |
|---|---|---|
| blockNumber | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
getPastVotes(account: address, blockNumber: uint256)
view
dev: Retrieve the number of votes for `account` at the end of `blockNumber`. Requirements: - `blockNumber` must have been already mined
Parameters
| Name | Type | Description |
|---|---|---|
| account | address | |
| blockNumber | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
getVotes(account: address)
view
dev: Gets the current votes balance for `account`
Parameters
| Name | Type | Description |
|---|---|---|
| account | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
isClaimed(index: uint256)
view
dev: Returns true if the claim at the given index in the merkle tree has already been made.
Parameters
| Name | Type | Description |
|---|---|---|
| index | uint256 | The index into the merkle tree. |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
merkleRoot()
view
→ 0xaca22207fc31a4c3ecd6ab11ce2df3db64b8afeba4f31db2b9aeb76f1dada659
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
minimumMintInterval()
view
→ 31,536,000
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
mintCap()
view
→ 200
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
name()
view
→ Ethereum Name Service
dev: Returns the name of the token.
Returns
| Name | Type | Description |
|---|---|---|
| — | string |
nextMint()
view
→ 1,667,336,117
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
nonces(owner: address)
view
dev: See {IERC20Permit-nonces}.
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
numCheckpoints(account: address)
view
dev: Get number of checkpoints for `account`.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint32 |
owner()
view
→ 0xfe89cc7abb2c4183683ab71653c4cdc9b02d44b7
dev: Returns the address of the current owner.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
symbol()
view
→ ENS
dev: Returns the symbol of the token, usually a shorter version of the name.
Returns
| Name | Type | Description |
|---|---|---|
| — | string |
totalSupply()
view
→ 100,000,000 ENS
dev: See {IERC20-totalSupply}.
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
Write Functions
approve(spender: address, amount: uint256)
nonpayable
dev: See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.
Parameters
| Name | Type | Description |
|---|---|---|
| spender | address | |
| amount | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
claimTokens(amount: uint256, delegate: address, merkleProof: bytes32[])
nonpayable
dev: Claims airdropped tokens.
Parameters
| Name | Type | Description |
|---|---|---|
| amount | uint256 | The amount of the claim being made. |
| delegate | address | The address the tokenholder wants to delegate their votes to. |
| merkleProof | bytes32[] | A merkle proof proving the claim is valid. |
decreaseAllowance(spender: address, subtractedValue: uint256)
nonpayable
dev: Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.
Parameters
| Name | Type | Description |
|---|---|---|
| spender | address | |
| subtractedValue | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
delegate(delegatee: address)
nonpayable
dev: Delegate votes from the sender to `delegatee`.
Parameters
| Name | Type | Description |
|---|---|---|
| delegatee | address |
delegateBySig(delegatee: address, nonce: uint256, expiry: uint256, v: uint8, r: bytes32, s: bytes32)
nonpayable
dev: Delegates votes from signer to `delegatee`
Parameters
| Name | Type | Description |
|---|---|---|
| delegatee | address | |
| nonce | uint256 | |
| expiry | uint256 | |
| v | uint8 | |
| r | bytes32 | |
| s | bytes32 |
increaseAllowance(spender: address, addedValue: uint256)
nonpayable
dev: Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.
Parameters
| Name | Type | Description |
|---|---|---|
| spender | address | |
| addedValue | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
mint(dest: address, amount: uint256)
nonpayable
dev: Mints new tokens. Can only be executed every `minimumMintInterval`, by the owner, and cannot exceed `mintCap / 10000` fraction of the current total supply.
Parameters
| Name | Type | Description |
|---|---|---|
| dest | address | The address to mint the new tokens to. |
| amount | uint256 | The quantity of tokens to mint. |
permit(owner: address, spender: address, value: uint256, deadline: uint256, v: uint8, r: bytes32, s: bytes32)
nonpayable
dev: See {IERC20Permit-permit}.
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address | |
| spender | address | |
| value | uint256 | |
| deadline | uint256 | |
| v | uint8 | |
| r | bytes32 | |
| s | bytes32 |
renounceOwnership()
nonpayable
dev: Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.
setMerkleRoot(_merkleRoot: bytes32)
nonpayable
dev: Sets the merkle root. Only callable if the root is not yet set.
Parameters
| Name | Type | Description |
|---|---|---|
| _merkleRoot | bytes32 | The merkle root to set. |
sweep(dest: address)
nonpayable
dev: Allows the owner to sweep unclaimed tokens after the claim period ends.
Parameters
| Name | Type | Description |
|---|---|---|
| dest | address | The address to sweep the tokens to. |
transfer(recipient: address, amount: uint256)
nonpayable
dev: See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.
Parameters
| Name | Type | Description |
|---|---|---|
| recipient | address | |
| amount | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
transferFrom(sender: address, recipient: address, amount: uint256)
nonpayable
dev: See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.
Parameters
| Name | Type | Description |
|---|---|---|
| sender | address | |
| recipient | address | |
| amount | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
transferOwnership(newOwner: address)
nonpayable
dev: Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.
Parameters
| Name | Type | Description |
|---|---|---|
| newOwner | address |
Events
Approval(owner: address, spender: address, value: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| owner | address | ✓ | |
| spender | address | ✓ | |
| value | uint256 |
Claim(claimant: address, amount: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| claimant | address | ✓ | |
| amount | uint256 |
DelegateChanged(delegator: address, fromDelegate: address, toDelegate: address)
| Name | Type | Indexed | Description |
|---|---|---|---|
| delegator | address | ✓ | |
| fromDelegate | address | ✓ | |
| toDelegate | address | ✓ |
DelegateVotesChanged(delegate: address, previousBalance: uint256, newBalance: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| delegate | address | ✓ | |
| previousBalance | uint256 | ||
| newBalance | uint256 |
MerkleRootChanged(merkleRoot: bytes32)
| Name | Type | Indexed | Description |
|---|---|---|---|
| merkleRoot | bytes32 |
OwnershipTransferred(previousOwner: address, newOwner: address)
| Name | Type | Indexed | Description |
|---|---|---|---|
| previousOwner | address | ✓ | |
| newOwner | address | ✓ |
Transfer(from: address, to: address, value: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| from | address | ✓ | |
| to | address | ✓ | |
| value | uint256 |