MintedERC20

Sonic ERC-20 Token Browse chains

0x50c42deacd8fc9773493ed674b675be577f2634b

Proxy implementation: 0x9605cc161d148f665b6d4796131f8f6814abf386

Solidity v0.8.27+commit.40a35a09

Fungible token following the ERC-20 standard.

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

Read Functions

UPGRADE_INTERFACE_VERSION() view

Returns the contract's upgrade interface version string.✨ AI

Returns

Name Type Description
string The upgrade interface version identifier string.✨ AI
allowance(owner: address, spender: address) view

Returns the remaining number of tokens that owner has allowed spender to spend.✨ AI

dev: See {IERC20-allowance}.

Parameters

Name Type Description
owner address Address which granted the allowance.✨ AI
spender address Address approved to transfer tokens from the owner's balance.✨ AI

Returns

Name Type Description
uint256 Remaining allowance as a uint256; tokens spender may still transfer from owner.✨ AI
balanceOf(account: address) view

Returns the token balance of the given account.✨ AI

dev: See {IERC20-balanceOf}.

Parameters

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

Returns

Name Type Description
uint256 The token balance of the specified account as a uint256 value.✨ AI
decimals() view

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

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 Number of decimals (uint8) used to format token amounts for users.✨ AI
minter() view

Returns the address currently authorized to mint new tokens.✨ AI

Returns

Name Type Description
address The address with minting permission.✨ AI
name() view

Return 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 (human-readable, e.g. "My Token").✨ AI
owner() view

Returns the contract owner's address.✨ AI

dev: Returns the address of the current owner.

Returns

Name Type Description
address The address of the account that currently owns the contract and holds owner privileges.✨ AI
pendingOwner() view

Get the address that is designated to become the contract owner once they accept.✨ AI

dev: Returns the address of the pending owner.

Returns

Name Type Description
address The pending owner's address, or the zero address if no ownership transfer is pending.✨ AI
proxiableUUID() view

Return the proxiable UUID used by UUPS-compatible proxies.✨ AI

dev: Implementation of the ERC-1822 {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 The 32-byte UUID that identifies the storage slot used by the proxy for the implementation address.✨ AI
rescuer() view

Returns the address designated to perform rescue operations for this token contract.✨ AI

Returns

Name Type Description
address The address authorized to rescue or recover tokens and funds from this contract.✨ AI
symbol() view

Returns the token's short symbol.✨ 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 (e.g., "DAI", "USDC").✨ AI
totalSupply() view

Returns the total number of tokens in existence.✨ AI

dev: See {IERC20-totalSupply}.

Returns

Name Type Description
uint256 Total token supply as a uint256.✨ AI

Write Functions

acceptOwnership() nonpayable

Claim and finalize ownership of the contract if you were previously nominated as the new owner.✨ AI

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

Approve spender to transfer up to value tokens from the caller's account.✨ AI

dev: See {IERC20-approve}. NOTE: If `value` 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 that will be allowed to spend tokens from the caller.✨ AI
value uint256 Maximum number of tokens the spender is permitted to transfer.✨ AI

Returns

Name Type Description
bool True if the allowance was successfully set, otherwise false.✨ AI
burn(value: uint256) nonpayable

Burns tokens from the caller's balance and decreases the total token supply.✨ AI

dev: Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.

Parameters

Name Type Description
value uint256 Amount of tokens to burn, specified in the token's smallest unit.✨ AI
burnFrom(account: address, value: uint256) nonpayable

Burns a specified amount of tokens from an account using the caller's allowance.✨ AI

dev: Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.

Parameters

Name Type Description
account address Address whose token balance will be decreased.✨ AI
value uint256 Number of tokens to burn (in the token's smallest unit).✨ AI
initialize(_owner: address, _minter: address, _tokenName: string, _tokenSymbol: string, _decimals: uint8) nonpayable

Initialize the token by setting owner, minter, name, symbol, and decimals.✨ AI

dev: Initialize contract after the deployment.

Parameters

Name Type Description
_owner address Address that will be set as contract owner.✨ AI
_minter address Address granted permission to mint tokens.✨ AI
_tokenName string ERC-20 token name.✨ AI
_tokenSymbol string ERC-20 token symbol.✨ AI
_decimals uint8 Number of decimals for token amounts.✨ AI
mint(account: address, amount: uint256) nonpayable

Create an amount of tokens and assigns them to the account. Callable by the token minter only.

Parameters

Name Type Description
account address
amount uint256

Returns

Name Type Description
bool
renounceOwnership() nonpayable

Permanently renounce ownership of the contract, removing the owner 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.
rescueERC20(token: address, to: address, amount: uint256) nonpayable

Rescue ERC20 tokens locked up in this contract.

Parameters

Name Type Description
token address ERC20 token contract address
to address Recipient address
amount uint256 Amount to withdraw
transfer(to: address, value: uint256) nonpayable

Transfers value tokens from the caller's account to the specified recipient.✨ AI

dev: See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.

Parameters

Name Type Description
to address Recipient address that will receive the tokens.✨ AI
value uint256 Amount of tokens to transfer, in the token's smallest unit.✨ AI

Returns

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

Transfer tokens from the `from` address to `to` using the caller's allowance and update balances.✨ AI

dev: See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. 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 `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.

Parameters

Name Type Description
from address Address that currently owns the tokens to be transferred.✨ AI
to address Address that will receive the transferred tokens.✨ AI
value uint256 Number of tokens to transfer, expressed in the token's smallest unit.✨ AI

Returns

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

Transfers contract ownership to a new owner address.✨ 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. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.

Parameters

Name Type Description
newOwner address Address that will become the contract owner.✨ AI
updateRescuer(newRescuer: address) nonpayable

Update the rescuer - the address allowed to recover ERC20 tokens locked up in this contract.

Parameters

Name Type Description
newRescuer address The address of the new rescuer. Zero to disable the rescue functionality.
upgradeToAndCall(newImplementation: address, data: bytes) payable

Upgrade the token contract implementation and execute an initialization call in one transaction.✨ 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 Encoded call data to be executed on the new implementation after upgrade.✨ AI

Events

Approval(owner: address, spender: address, value: uint256)
Name Type Indexed Description
owner address
spender address
value uint256
Initialized(version: uint64)
Name Type Indexed Description
version uint64
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
RescuerChanged(newRescuer: address)
Name Type Indexed Description
newRescuer address
Transfer(from: address, to: address, value: uint256)
Name Type Indexed Description
from address
to address
value uint256
Upgraded(implementation: address)
Name Type Indexed Description
implementation address