BridgedTaikoToken

Taiko ERC-20 Token

0xa9d23408b9ba935c230493c40c73824df71a0975

Proxy implementation: 0x71583f1ba66f292f6c626f37e25c438b152dd917

Solidity v0.8.24+commit.e11b9ed9

Fungible token following the ERC-20 standard.

🤖
Query this contract from your AI
Reference: 0xa9d23408b9ba935c230493c40c73824df71a0975
Sample prompt: "Tell me the current state of taiko/0xa9d23408b9ba935c230493c40c73824df71a0975"
No AI wired up yet? → mcp.smarts.md
Taiko is a docs-only chain on Smarts: source code and ABI are indexed, but live on-chain data (state, recent events, admin profile) is not currently available. AI agents can still query get_contract_info and get_contract_source via MCP.

Overview

Read Functions
29
Write Functions
18
Events
13

Read Functions

CLOCK_MODE() pure

Returns

Name Type Description
string
DOMAIN_SEPARATOR() view

Returns

Name Type Description
bytes32
addressManager() view

Returns

Name Type Description
address
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
canonical() pure

Gets the canonical token's address and chain ID.

Returns

Name Type Description
address The canonical token's address.
uint256 The canonical token's chain ID.
changeMigrationStatus(address, bool) pure

Starts or stops migration to/from a specified contract.

Parameters

Name Type Description
address
bool
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
clock() view
dev: Clock used for flagging checkpoints. Can be overridden to implement timestamp based checkpoints (and voting).

Returns

Name Type Description
uint48
decimals() view
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 default value returned by this function, unless it's 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
eip712Domain() view
dev: See {EIP-5267}. _Available since v4.9._

Returns

Name Type Description
fields bytes1
name string
version string
chainId uint256
verifyingContract address
salt bytes32
extensions uint256[]
getPastTotalSupply(timepoint: uint256) view
dev: Retrieve the `totalSupply` at the end of `timepoint`. Note, this value is the sum of all balances. It is NOT the sum of all the delegated votes! Requirements: - `timepoint` must be in the past

Parameters

Name Type Description
timepoint uint256

Returns

Name Type Description
uint256
getPastVotes(account: address, timepoint: uint256) view
dev: Retrieve the number of votes for `account` at the end of `timepoint`. Requirements: - `timepoint` must be in the past

Parameters

Name Type Description
account address
timepoint 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
impl() view

Returns

Name Type Description
address
inNonReentrant() view

Returns

Name Type Description
bool
lastUnpausedAt() view

Returns

Name Type Description
uint64
name() view
dev: Returns the name of the token.

Returns

Name Type Description
string
nonces(owner: address) view
dev: Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.

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
dev: Returns the address of the current owner.

Returns

Name Type Description
address
paused() view

Returns true if the contract is paused, and false otherwise.

Returns

Name Type Description
bool true if paused, false otherwise.
pendingOwner() view
dev: Returns the address of the pending owner.

Returns

Name Type Description
address
proxiableUUID() view
dev: Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.

Returns

Name Type Description
bytes32
resolve(_chainId: uint64, _name: bytes32, _allowZeroAddress: bool) view

Resolves a name to its address deployed on this chain.

Parameters

Name Type Description
_chainId uint64
_name bytes32 Name whose address is to be resolved.
_allowZeroAddress bool If set to true, does not throw if the resolved address is `address(0)`.

Returns

Name Type Description
address Address associated with the given name.
resolve(_name: bytes32, _allowZeroAddress: bool) view

Resolves a name to its address deployed on this chain.

Parameters

Name Type Description
_name bytes32 Name whose address is to be resolved.
_allowZeroAddress bool If set to true, does not throw if the resolved address is `address(0)`.

Returns

Name Type Description
address Address associated with the given name.
symbol() pure
dev: Returns the symbol of the token, usually a shorter version of the name.

Returns

Name Type Description
string
totalSupply() view
dev: See {IERC20-totalSupply}.

Returns

Name Type Description
uint256

Write Functions

acceptOwnership() nonpayable
dev: The new owner accepts the ownership transfer.
approve(spender: address, amount: uint256) nonpayable
dev: See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.

Parameters

Name Type Description
spender address
amount uint256

Returns

Name Type Description
bool
burn(_amount: uint256) nonpayable

Burns tokens from msg.sender. This is only allowed if: - 1) tokens are migrating out to a new bridged token - 2) The token is burned by ERC20Vault to bridge back to the canonical chain.

Parameters

Name Type Description
_amount uint256 The amount of tokens to burn.
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
init(_owner: address, _addressManager: address) nonpayable

Initializes the contract.

Parameters

Name Type Description
_owner address The owner of this contract. msg.sender will be used if this value is zero.
_addressManager address The address manager address.
mint(_account: address, _amount: uint256) nonpayable

Mints `amount` tokens and assigns them to the `account` address.

Parameters

Name Type Description
_account address The account to receive the minted tokens.
_amount uint256 The amount of tokens to mint.
pause() nonpayable

Pauses the contract.

permit(owner: address, spender: address, value: uint256, deadline: uint256, v: uint8, r: bytes32, s: bytes32) nonpayable
dev: Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.

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. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.
transfer(to: address, amount: uint256) nonpayable
dev: See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.

Parameters

Name Type Description
to address
amount uint256

Returns

Name Type Description
bool
transferFrom(from: address, to: 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}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.

Parameters

Name Type Description
from address
to address
amount uint256

Returns

Name Type Description
bool
transferOwnership(newOwner: address) nonpayable
dev: Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.

Parameters

Name Type Description
newOwner address
unpause() nonpayable

Unpauses the contract.

upgradeTo(newImplementation: address) nonpayable
dev: Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.

Parameters

Name Type Description
newImplementation address
upgradeToAndCall(newImplementation: address, data: bytes) payable
dev: Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.

Parameters

Name Type Description
newImplementation address
data bytes

Events

AdminChanged(previousAdmin: address, newAdmin: address)
Name Type Indexed Description
previousAdmin address
newAdmin address
Approval(owner: address, spender: address, value: uint256)
Name Type Indexed Description
owner address
spender address
value uint256
BeaconUpgraded(beacon: address)
Name Type Indexed Description
beacon address
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
EIP712DomainChanged()
Initialized(version: uint8)
Name Type Indexed Description
version uint8
OwnershipTransferStarted(previousOwner: address, newOwner: address)
Name Type Indexed Description
previousOwner address
newOwner address
OwnershipTransferred(previousOwner: address, newOwner: address)
Name Type Indexed Description
previousOwner address
newOwner address
Paused(account: address)

Emitted when the contract is paused.

Name Type Indexed Description
account address The account that paused the contract.
Transfer(from: address, to: address, value: uint256)
Name Type Indexed Description
from address
to address
value uint256
Unpaused(account: address)

Emitted when the contract is unpaused.

Name Type Indexed Description
account address The account that unpaused the contract.
Upgraded(implementation: address)
Name Type Indexed Description
implementation address