AaveTokenV3

Ethereum ERC-20 Token

0x5d4aa78b08bc7c530e21bf7447988b1be7991322

Solidity v0.8.20+commit.a1b79de6

Fungible token following the ERC-20 standard.

🤖
Query this contract from your AI
Reference: 0x5d4aa78b08bc7c530e21bf7447988b1be7991322
Sample prompt: “Tell me the current state of eth/0x5d4aa78b08bc7c530e21bf7447988b1be7991322”
No AI wired up yet? → mcp.smarts.md

Admin & Risk

Who can change the rules?

No admin risk controls detected from the verified ABI.

Overview

Read Functions
18
Write Functions
11
Events
4

Read Functions

Block #25,170,035 · just now
DELEGATE_BY_TYPE_TYPEHASH() view → 0x6e77642f8f60cdece0498bfeeb2f06ccfef0e8f86d28a1b6255c5e48f1d72a03

Returns the EIP-712 typehash used for off-chain delegation-by-type signatures.✨ AI

Returns

Name Type Description
bytes32 EIP-712 typehash (bytes32) for the delegateByType struct used to construct and verify signed delegation messages.✨ AI
DELEGATE_TYPEHASH() view → 0xd46e8b93b5190df6403875402a5c13897b72d2a576da5d1bfea20a63638d216e

Returns the EIP-712 typehash used for creating delegation signatures.✨ AI

Returns

Name Type Description
bytes32 EIP-712 typehash (bytes32) used when hashing and verifying delegation signed messages.✨ AI
DOMAIN_SEPARATOR() view → 0xaa7b5c83d4c681a94e6ae5e5ac0e7c6e378adbb9acc97c8565fa7bc43da8c04b

Return the EIP-712 domain separator used to sign the token's typed data.✨ AI

Returns

Name Type Description
bytes32 The domain separator (bytes32) per EIP-712 to build or verify signed typed data for this token.✨ AI
PERMIT_TYPEHASH() view → 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9

Returns the EIP-712 type hash used for permit (ERC-2612) signature verification.✨ AI

Returns

Name Type Description
bytes32 The bytes32 EIP-712 PERMIT_TYPEHASH used to construct and verify permit signatures.✨ AI
POWER_SCALE_FACTOR() view → 10,000,000,000

Return the token's power scale factor used in internal fixed-point arithmetic.✨ AI

Returns

Name Type Description
uint256 The power scale factor as a uint256 used to scale internal fixed-point calculations.✨ AI
REVISION() view → 4

Returns the token contract revision number.✨ AI

Returns

Name Type Description
uint256 The revision number as a uint256 identifying the deployed contract implementation.✨ AI
_nonces(address) view

Return the current permit nonce for the given address.✨ AI

dev: Nonce used for EIP-2612 permit signatures; increments when a permit is successfully executed.✨ AI

Parameters

Name Type Description
address

Returns

Name Type Description
uint256 Current uint256 nonce used to prevent replay of permit signatures for the address.✨ AI
allowance(owner: address, spender: address) view

Returns the remaining number of tokens that spender is allowed to transfer from owner.✨ AI

dev: Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.

Parameters

Name Type Description
owner address Address that owns the tokens.✨ AI
spender address Address approved to spend the owner's tokens.✨ AI

Returns

Name Type Description
uint256 Remaining token allowance (uint256) that spender can transfer from owner.✨ AI
balanceOf(account: address) view

Returns the token balance of the given account.✨ AI

dev: Returns the amount of tokens owned by `account`.

Parameters

Name Type Description
account address The address whose token balance will be returned.✨ AI

Returns

Name Type Description
uint256 The current token balance of the account, expressed in the token's smallest unit (uint256).✨ AI
decimals() view → 18

Returns the number of decimal places used by the token.✨ AI

dev: Returns the decimals places of the token.

Returns

Name Type Description
uint8 The token's decimal precision as an unsigned 8-bit integer (uint8).✨ AI
eip712Domain() view → 0x0f, Aave token V3, 2, 1, 0x5d4aa78b08bc7c530e21bf7447988b1be7991322, 0x0000000000000000000000000000000000000000000000000000000000000000, []

Returns the EIP-712 domain components used for signing and permit operations.✨ AI

dev: See {EIP-5267}. _Available since v4.9._

Returns

Name Type Description
fields bytes1 bytes1: Single-byte domain type indicator used in the EIP-712 domain structure.✨ AI
name string name: Token name string included in the EIP-712 domain.✨ AI
version string version: Version string included in the EIP-712 domain.✨ AI
chainId uint256 chainId: Chain identifier (chainId) included in the EIP-712 domain.✨ AI
verifyingContract address verifyingContract: Contract address used as the EIP-712 domain's verifying contract.✨ AI
salt bytes32 salt: Optional 32-byte salt value used for additional domain separation.✨ AI
extensions uint256[] extensions: Array of uint256 extension fields for extra domain parameters.✨ AI
getDelegateeByType(delegator: address, delegationType: uint8) view

Return the address authorized to act on behalf of a delegator for the specified delegation type.✨ AI

dev: returns the delegatee of an user

Parameters

Name Type Description
delegator address the address of the delegator
delegationType uint8 the type of delegation (VOTING, PROPOSITION)

Returns

Name Type Description
address address of the specified delegatee
getDelegates(delegator: address) view

Return the two delegate addresses assigned to the given delegator.✨ AI

dev: returns delegates of an user

Parameters

Name Type Description
delegator address the address of the delegator

Returns

Name Type Description
address a tuple of addresses the VOTING and PROPOSITION delegatee
address Second delegate address associated with the delegator (returned as the second tuple element).✨ AI
getPowerCurrent(user: address, delegationType: uint8) view

Get the user's current delegated power for the specified delegation type.✨ AI

dev: returns the current voting or proposition power of a user.

Parameters

Name Type Description
user address the user
delegationType uint8 the type of delegation (VOTING, PROPOSITION)

Returns

Name Type Description
uint256 the current voting or proposition power of a user
getPowersCurrent(user: address) view

Get the current proposition and voting power for a user.✨ AI

dev: returns the current voting or proposition power of a user.

Parameters

Name Type Description
user address the user

Returns

Name Type Description
uint256 the current voting and proposition power of a user
uint256 Current voting power of the user as a uint256, used for voting rights.✨ AI
name() view

Returns the token's name as a human-readable string.✨ AI

dev: Returns the name of the token.

Returns

Name Type Description
string The token name string, for example "Aave Token V3".✨ AI
symbol() view

Returns the token's short symbol used by wallets and interfaces.✨ AI

dev: Returns the symbol of the token, usually a shorter version of the name.

Returns

Name Type Description
string The token symbol string used in UIs and wallets (e.g. AAVE)✨ AI
totalSupply() view → 0

Returns the total supply of AaveTokenV3 tokens.✨ AI

dev: Returns the amount of tokens in existence.

Returns

Name Type Description
uint256 Total number of tokens in existence as a uint256 (includes all minted tokens minus burned tokens).✨ AI

Write Functions

approve(spender: address, amount: uint256) nonpayable

Approve a spender to transfer up to a specified token amount on your behalf.✨ AI

dev: Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.

Parameters

Name Type Description
spender address Address permitted to spend tokens from the caller's balance.✨ AI
amount uint256 Maximum number of tokens the spender is allowed to transfer.✨ AI

Returns

Name Type Description
bool True if the approval was successful.✨ AI
decreaseAllowance(spender: address, subtractedValue: uint256) nonpayable

Decrease the caller's ERC-20 allowance for a spender by a given amount.✨ AI

Parameters

Name Type Description
spender address Address allowed to spend tokens whose allowance will be decreased.✨ AI
subtractedValue uint256 Amount of tokens to subtract from the current allowance.✨ AI

Returns

Name Type Description
bool True if the allowance was successfully decreased (and an Approval event was emitted).✨ AI
delegate(delegatee: address) nonpayable

Delegate the caller's governance voting power to the specified address.✨ AI

dev: delegates all the governance powers to a specific user

Parameters

Name Type Description
delegatee address the user to which the powers will be delegated
delegateByType(delegatee: address, delegationType: uint8) nonpayable

Delegate a specific type of governance power to a given address.✨ AI

dev: delegates the specific power to a delegatee

Parameters

Name Type Description
delegatee address the user which delegated power will change
delegationType uint8 the type of delegation (VOTING, PROPOSITION)
increaseAllowance(spender: address, addedValue: uint256) nonpayable

Increases the ERC-20 allowance granted to spender by the caller.✨ AI

Parameters

Name Type Description
spender address Address allowed to spend tokens.✨ AI
addedValue uint256 Amount to add to the current allowance.✨ AI

Returns

Name Type Description
bool True if the allowance was successfully increased.✨ AI
initialize() nonpayable

Initializes the token and configures its ERC-20 metadata and internal state.✨ AI

dev: initializes the contract upon assignment to the InitializableAdminUpgradeabilityProxy
metaDelegate(delegator: address, delegatee: address, deadline: uint256, v: uint8, r: bytes32, s: bytes32) nonpayable

Delegate voting power from a delegator to a delegatee using an off-chain signature.✨ AI

dev: implements the permit function as for https://github.com/ethereum/EIPs/blob/8a34d644aacf0f9f8f00815307fd7dd5da07655f/EIPS/eip-2612.md

Parameters

Name Type Description
delegator address the owner of the funds
delegatee address the user to who delegator delegates his voting and proposition governance power
deadline uint256 the deadline timestamp, type(uint256).max for no deadline
v uint8 signature param
r bytes32 signature param
s bytes32 signature param
metaDelegateByType(delegator: address, delegatee: address, delegationType: uint8, deadline: uint256, v: uint8, r: bytes32, s: bytes32) nonpayable

Set a delegatee for a specific delegation type using the delegator's off-chain ECDSA signature before the deadline.✨ AI

dev: implements the permit function as for https://github.com/ethereum/EIPs/blob/8a34d644aacf0f9f8f00815307fd7dd5da07655f/EIPS/eip-2612.md

Parameters

Name Type Description
delegator address the owner of the funds
delegatee address the user to who owner delegates his governance power
delegationType uint8 the type of governance power delegation (VOTING, PROPOSITION)
deadline uint256 the deadline timestamp, type(uint256).max for no deadline
v uint8 signature param
r bytes32 signature param
s bytes32 signature param
permit(owner: address, spender: address, value: uint256, deadline: uint256, v: uint8, r: bytes32, s: bytes32) nonpayable

Allow an owner to approve a spender via an off-chain signature (EIP-2612) before a deadline.✨ AI

dev: implements the permit function as for https://github.com/ethereum/EIPs/blob/8a34d644aacf0f9f8f00815307fd7dd5da07655f/EIPS/eip-2612.md

Parameters

Name Type Description
owner address the owner of the funds
spender address the spender
value uint256 the amount
deadline uint256 the deadline timestamp, type(uint256).max for no deadline
v uint8 signature param
r bytes32 signature param
s bytes32 signature param
transfer(to: address, amount: uint256) nonpayable

Transfer tokens from the caller's account to the specified address.✨ AI

dev: Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.

Parameters

Name Type Description
to address Recipient address to receive the tokens.✨ AI
amount uint256 Number of tokens to transfer, expressed in the token's smallest unit.✨ AI

Returns

Name Type Description
bool True if the transfer succeeded, otherwise false.✨ AI
transferFrom(from: address, to: address, amount: uint256) nonpayable

Transfer tokens from one account to another using the caller's allowance.✨ AI

dev: Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.

Parameters

Name Type Description
from address Address to send tokens from.✨ AI
to address Recipient address.✨ AI
amount uint256 Number of tokens to transfer (in the token's smallest unit).✨ AI

Returns

Name Type Description
bool True if the transfer succeeded.✨ AI

Events

Approval(owner: address, spender: address, value: uint256)
Name Type Indexed Description
owner address
spender address
value uint256
DelegateChanged(delegator: address, delegatee: address, delegationType: uint8)
Name Type Indexed Description
delegator address the user which delegated governance power
delegatee address the delegatee
delegationType uint8 the type of delegation (VOTING, PROPOSITION)
EIP712DomainChanged()
Transfer(from: address, to: address, value: uint256)
Name Type Indexed Description
from address
to address
value uint256