TetherTokenV2
Sonic ERC-20 Token0x6047828dc181963ba44974801ff68e538da5eaf9
Proxy implementation: 0xc80268ce098296e0e75d925d0d485e7bb4252fad
Solidity v0.8.4+commit.c7e474f2
Fungible token following the ERC-20 standard.
🤖
Query this contract from your AI
Reference:
0x6047828dc181963ba44974801ff68e538da5eaf9
Sample prompt:
"Tell me the current state of sonic/0x6047828dc181963ba44974801ff68e538da5eaf9"
No AI wired up yet? →
mcp.smarts.md
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
15
Write Functions
22
Events
10
Read Functions
CANCEL_AUTHORIZATION_TYPEHASH()
view
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
DOMAIN_SEPARATOR()
view
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
RECEIVE_WITH_AUTHORIZATION_TYPEHASH()
view
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
TRANSFER_WITH_AUTHORIZATION_TYPEHASH()
view
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 |
authorizationState(authorizer: address, nonce: bytes32)
view
Returns the state of an authorization
dev: Nonces are randomly generated 32-byte data unique to the authorizer's address
Parameters
| Name | Type | Description |
|---|---|---|
| authorizer | address | Authorizer's address |
| nonce | bytes32 | Nonce of the authorization |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool | True if the nonce is used |
balanceOf(account: address)
view
dev: See {IERC20-balanceOf}.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
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 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 |
isBlocked(address)
view
Parameters
| Name | Type | Description |
|---|---|---|
| — | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
isTrusted(address)
view
Parameters
| Name | Type | Description |
|---|---|---|
| — | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
name()
view
dev: Returns the name of the token.
Returns
| Name | Type | Description |
|---|---|---|
| — | string |
nonces(owner: address)
view
dev: See {IERC20Permit-nonces}.
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
owner()
view
dev: Returns the address of the current owner.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
symbol()
view
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
addToBlockedList(_user: address)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _user | address |
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 |
cancelAuthorization(authorizer: address, nonce: bytes32, v: uint8, r: bytes32, s: bytes32)
nonpayable
Attempt to cancel an authorization
Parameters
| Name | Type | Description |
|---|---|---|
| authorizer | address | Authorizer's address |
| nonce | bytes32 | Nonce of the authorization |
| v | uint8 | v of the signature |
| r | bytes32 | r of the signature |
| s | bytes32 | s of the signature |
cancelAuthorization(authorizer: address, nonce: bytes32, signature: bytes)
nonpayable
Attempt to cancel an authorization
Parameters
| Name | Type | Description |
|---|---|---|
| authorizer | address | Authorizer's address |
| nonce | bytes32 | Nonce of the authorization |
| signature | bytes |
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 |
destroyBlockedFunds(_blockedUser: address)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _blockedUser | address |
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 |
initialize(_name: string, _symbol: string, _decimals: uint8)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _name | string | |
| _symbol | string | |
| _decimals | uint8 |
mint(_destination: address, _amount: uint256)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _destination | address | |
| _amount | uint256 |
multiTransfer(_recipients: address[], _values: uint256[])
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _recipients | address[] | |
| _values | uint256[] |
permit(owner_: address, spender: address, value: uint256, deadline: uint256, signature: bytes)
nonpayable
dev: See {IERC20Permit-permit}.
Parameters
| Name | Type | Description |
|---|---|---|
| owner_ | address | |
| spender | address | |
| value | uint256 | |
| deadline | uint256 | |
| signature | bytes |
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 |
receiveWithAuthorization(from: address, to: address, value: uint256, validAfter: uint256, validBefore: uint256, nonce: bytes32, signature: bytes)
nonpayable
Receive a transfer with a signed authorization from the payer
dev: This has an additional check to ensure that the payee's address matches the caller of this function to prevent front-running attacks.
Parameters
| Name | Type | Description |
|---|---|---|
| from | address | Payer's address (Authorizer) |
| to | address | Payee's address |
| value | uint256 | Amount to be transferred |
| validAfter | uint256 | The time after which this is valid (unix time) |
| validBefore | uint256 | The time before which this is valid (unix time) |
| nonce | bytes32 | Unique nonce |
| signature | bytes |
receiveWithAuthorization(from: address, to: address, value: uint256, validAfter: uint256, validBefore: uint256, nonce: bytes32, v: uint8, r: bytes32, s: bytes32)
nonpayable
Receive a transfer with a signed authorization from the payer
dev: This has an additional check to ensure that the payee's address matches the caller of this function to prevent front-running attacks.
Parameters
| Name | Type | Description |
|---|---|---|
| from | address | Payer's address (Authorizer) |
| to | address | Payee's address |
| value | uint256 | Amount to be transferred |
| validAfter | uint256 | The time after which this is valid (unix time) |
| validBefore | uint256 | The time before which this is valid (unix time) |
| nonce | bytes32 | Unique nonce |
| v | uint8 | v of the signature |
| r | bytes32 | r of the signature |
| s | bytes32 | s of the signature |
redeem(_amount: uint256)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _amount | uint256 |
removeFromBlockedList(_user: address)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _user | address |
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.
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 |
transferWithAuthorization(from: address, to: address, value: uint256, validAfter: uint256, validBefore: uint256, nonce: bytes32, signature: bytes)
nonpayable
Execute a transfer with a signed authorization
Parameters
| Name | Type | Description |
|---|---|---|
| from | address | Payer's address (Authorizer) |
| to | address | Payee's address |
| value | uint256 | Amount to be transferred |
| validAfter | uint256 | The time after which this is valid (unix time) |
| validBefore | uint256 | The time before which this is valid (unix time) |
| nonce | bytes32 | Unique nonce |
| signature | bytes |
transferWithAuthorization(from: address, to: address, value: uint256, validAfter: uint256, validBefore: uint256, nonce: bytes32, v: uint8, r: bytes32, s: bytes32)
nonpayable
Execute a transfer with a signed authorization
Parameters
| Name | Type | Description |
|---|---|---|
| from | address | Payer's address (Authorizer) |
| to | address | Payee's address |
| value | uint256 | Amount to be transferred |
| validAfter | uint256 | The time after which this is valid (unix time) |
| validBefore | uint256 | The time before which this is valid (unix time) |
| nonce | bytes32 | Unique nonce |
| v | uint8 | v of the signature |
| r | bytes32 | r of the signature |
| s | bytes32 | s of the signature |
Events
Approval(owner: address, spender: address, value: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| owner | address | ✓ | |
| spender | address | ✓ | |
| value | uint256 |
AuthorizationCanceled(authorizer: address, nonce: bytes32)
| Name | Type | Indexed | Description |
|---|---|---|---|
| authorizer | address | ✓ | |
| nonce | bytes32 | ✓ |
AuthorizationUsed(authorizer: address, nonce: bytes32)
| Name | Type | Indexed | Description |
|---|---|---|---|
| authorizer | address | ✓ | |
| nonce | bytes32 | ✓ |
BlockPlaced(_user: address)
| Name | Type | Indexed | Description |
|---|---|---|---|
| _user | address | ✓ |
BlockReleased(_user: address)
| Name | Type | Indexed | Description |
|---|---|---|---|
| _user | address | ✓ |
DestroyedBlockedFunds(_blockedUser: address, _balance: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| _blockedUser | address | ✓ | |
| _balance | uint256 |
Mint(_destination: address, _amount: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| _destination | address | ✓ | |
| _amount | uint256 |
OwnershipTransferred(previousOwner: address, newOwner: address)
| Name | Type | Indexed | Description |
|---|---|---|---|
| previousOwner | address | ✓ | |
| newOwner | address | ✓ |
Redeem(_amount: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| _amount | uint256 |
Transfer(from: address, to: address, value: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| from | address | ✓ | |
| to | address | ✓ | |
| value | uint256 |