ENS

Ethereum ERC-20 Token

0xc18360217d8f7ab5e7c516566761ea12ce7f9d72

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?

Block #25,169,803

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