BridgedERC20

Taiko ERC-20 Token Browse chains

0x2def195713cf4a606b49d07e520e22c17899a736

Proxy implementation: 0x0167000000000000000000000000000000010096

Solidity v0.8.24+commit.e11b9ed9

Fungible token following the ERC-20 standard.

🤖
Query this contract from your AI
Reference: 0x2def195713cf4a606b49d07e520e22c17899a736
Sample prompt: "Tell me the current state of taiko/0x2def195713cf4a606b49d07e520e22c17899a736"
No AI wired up yet? → mcp.smarts.md · Browse chains
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
24
Write Functions
16
Events
13

Read Functions

__srcDecimals() view

Returns the source token's decimal precision.✨ AI

Returns

Name Type Description
uint8 The source token's decimals as a uint8 indicating the number of decimal places.✨ AI
addressManager() view

Returns the address manager contract used by this token.✨ AI

Returns

Name Type Description
address The address of the AddressManager contract used for resolving system addresses and roles.✨ AI
allowance(owner: address, spender: address) view

Return the remaining number of tokens that spender is allowed to spend from the owner's balance.✨ AI

dev: See {IERC20-allowance}.

Parameters

Name Type Description
owner address Address which 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

Return the token balance for the specified account.✨ AI

dev: See {IERC20-balanceOf}.

Parameters

Name Type Description
account address Address to query the token balance of.✨ AI

Returns

Name Type Description
uint256 Token balance of the specified account as a uint256.✨ AI
canonical() view

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.
decimals() view

Gets the number of decimal places of the token.

Returns

Name Type Description
uint8 The number of decimal places of the token.
impl() view

Returns the current implementation address used by this bridged ERC-20 token.✨ AI

Returns

Name Type Description
address The address of the implementation contract currently used by this proxied bridged ERC-20 token.✨ AI
inNonReentrant() view

Reports whether the contract is currently executing inside the non-reentrant guard.✨ AI

Returns

Name Type Description
bool True if execution is currently inside the non-reentrant section, false otherwise.✨ AI
isMigratingOut() view

Return true when the token contract is currently performing an outbound migration.✨ AI

Returns

Name Type Description
bool True if the contract is in the migrating-out state (outbound migration active), otherwise false.✨ AI
lastUnpausedAt() view

Return the Unix timestamp when the contract was last unpaused.✨ AI

Returns

Name Type Description
uint64 uint64 Unix timestamp (seconds) of the last time the contract was unpaused; zero if never unpaused.✨ AI
migratingAddress() view

Show the address authorized to initiate token migration.✨ AI

Returns

Name Type Description
address Address authorized to initiate token migration.✨ AI
migratingInbound() view

Returns true when inbound token migration is enabled.✨ AI

Returns

Name Type Description
bool True if inbound token migration is enabled; false otherwise.✨ 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's name (human-readable string).✨ AI
owner() view

Returns the address of the contract owner.✨ AI

dev: Returns the address of the current owner.

Returns

Name Type Description
address The owner address with administrative privileges over the contract.✨ AI
paused() view

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

Returns

Name Type Description
bool true if paused, false otherwise.
pendingOwner() view

Returns the address currently proposed to become the contract owner.✨ AI

dev: Returns the address of the pending owner.

Returns

Name Type Description
address The address proposed to become the contract owner, or the zero address if no owner is pending.✨ AI
proxiableUUID() view

Return the proxiable UUID that identifies the contract's storage slot for UUPS upgrades.✨ AI

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 bytes32 value: the UUID that specifies the implementation storage slot used for UUPS/EIP-1822 compatibility.✨ AI
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.
srcChainId() view

Return the source chain identifier for tokens bridged into this contract.✨ AI

Returns

Name Type Description
uint256 The uint256 chain identifier of the source chain for tokens bridged to this contract.✨ AI
srcToken() view

Return the source token contract address that this bridged ERC-20 represents.✨ AI

Returns

Name Type Description
address The address of the original/source ERC-20 token contract backing this bridged token.✨ AI
supportsInterface(_interfaceId: bytes4) pure

Check whether the contract supports the interface identified by the provided interface id.✨ AI

dev: Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.

Parameters

Name Type Description
_interfaceId bytes4 Interface identifier (bytes4) as defined by ERC-165.✨ AI

Returns

Name Type Description
bool True if the contract implements the interface with the given id, otherwise false.✨ AI
symbol() view

Returns the token's short symbol used in user interfaces.✨ AI

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

Returns

Name Type Description
string The token's short symbol as a string (for example, "USDC").✨ AI
totalSupply() view

Returns the total number of tokens in circulation.✨ AI

dev: See {IERC20-totalSupply}.

Returns

Name Type Description
uint256 The total token supply as a uint256, representing the number of tokens currently in existence.✨ AI

Write Functions

acceptOwnership() nonpayable

Finalize ownership transfer by making the pending owner the new contract owner.✨ AI

dev: The new owner accepts the ownership transfer.
approve(spender: address, amount: uint256) nonpayable

Allow a spender to spend up to a specified amount of your tokens.✨ AI

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 Address allowed to transfer 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 succeeded, otherwise false.✨ AI
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.
changeMigrationStatus(_migratingAddress: address, _migratingInbound: bool) nonpayable

Starts or stops migration to/from a specified contract.

Parameters

Name Type Description
_migratingAddress address
_migratingInbound bool
decreaseAllowance(spender: address, subtractedValue: uint256) nonpayable

Decrease the caller's allowance granted to spender by subtractedValue and return true on success.✨ AI

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 Address whose allowance will be decreased.✨ AI
subtractedValue uint256 Number of tokens to subtract from the allowance.✨ AI

Returns

Name Type Description
bool True if the allowance was successfully decreased.✨ AI
increaseAllowance(spender: address, addedValue: uint256) nonpayable

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

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 Address allowed to spend tokens on behalf of the caller.✨ AI
addedValue uint256 Amount to add to the current allowance for the spender.✨ AI

Returns

Name Type Description
bool True if the allowance was increased successfully.✨ AI
init(_owner: address, _addressManager: address, _srcToken: address, _srcChainId: uint256, _decimals: uint8, _symbol: string, _name: string) 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 of the {AddressManager} contract.
_srcToken address The source token address.
_srcChainId uint256 The source chain ID.
_decimals uint8 The number of decimal places of the source token.
_symbol string The symbol of the token.
_name string The name of the token.
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.

renounceOwnership() nonpayable

Renounces ownership, making the contract ownerless and disabling owner-only functions.✨ AI

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

Transfer tokens from the caller to the specified recipient address.✨ AI

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 Recipient address receiving the tokens.✨ AI
amount uint256 Amount of tokens to transfer, denominated in the token's smallest unit.✨ AI

Returns

Name Type Description
bool True if the transfer succeeded and a Transfer event was emitted.✨ AI
transferFrom(from: address, to: address, amount: uint256) nonpayable

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

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 Source address whose token balance will be decreased.✨ AI
to address Destination address that will receive the tokens.✨ AI
amount uint256 Amount of tokens to transfer, expressed in the token's smallest unit.✨ AI

Returns

Name Type Description
bool True if the transfer succeeds.✨ AI
transferOwnership(newOwner: address) nonpayable

Transfer ownership of the contract to a new owner.✨ AI

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 Address that will become the contract owner.✨ AI
unpause() nonpayable

Unpauses the contract.

upgradeTo(newImplementation: address) nonpayable

Upgrade the contract implementation to a new implementation contract address.✨ AI

dev: Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.

Parameters

Name Type Description
newImplementation address Address of the new implementation contract to set.✨ AI
upgradeToAndCall(newImplementation: address, data: bytes) payable

Upgrade the token implementation to a new address, call the new implementation with provided initialization data, and optionally send Ether.✨ AI

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 Address of the new implementation contract to upgrade to.✨ AI
data bytes ABI-encoded call data executed on the new implementation immediately after upgrade.✨ AI

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
Initialized(version: uint8)
Name Type Indexed Description
version uint8
MigratedFrom(migratedFrom: address, account: address, amount: uint256)

Emitted when tokens are migrated from the old bridged token.

Name Type Indexed Description
migratedFrom address The address of the bridged token.
account address The address of the account.
amount uint256 The amount of tokens migrated.
MigratedTo(migratedTo: address, account: address, amount: uint256)

Emitted when tokens are migrated to the new bridged token.

Name Type Indexed Description
migratedTo address The address of the bridged token.
account address The address of the account.
amount uint256 The amount of tokens migrated.
MigrationStatusChanged(addr: address, inbound: bool)

Emitted when the migration status is changed.

Name Type Indexed Description
addr address The address migrating 'to' or 'from'.
inbound bool If false then signals migrating 'from', true if migrating 'into'.
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