TetherTokenV2

Sonic ERC-20 Token Browse chains

0x6047828dc181963ba44974801ff68e538da5eaf9

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 · 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
15
Write Functions
22
Events
10

Read Functions

CANCEL_AUTHORIZATION_TYPEHASH() view

Returns the EIP-712 type hash used for cancelAuthorization signatures.✨ AI

Returns

Name Type Description
bytes32 The bytes32 EIP-712 type hash constant for cancelAuthorization (used in signature encoding).✨ AI
DOMAIN_SEPARATOR() view

Returns the EIP-712 domain separator used to build typed-data signatures for this token.✨ AI

Returns

Name Type Description
bytes32 EIP-712 domain separator (bytes32) used to construct and verify typed-data signatures for this contract.✨ AI
RECEIVE_WITH_AUTHORIZATION_TYPEHASH() view

Provide the EIP-712 type hash used for receiveWithAuthorization authorizations.✨ AI

Returns

Name Type Description
bytes32 bytes32 EIP-712 type hash for the receiveWithAuthorization authorization struct✨ AI
TRANSFER_WITH_AUTHORIZATION_TYPEHASH() view

Returns the EIP-712 type hash used to authorize off-chain transfer signatures.✨ AI

Returns

Name Type Description
bytes32 bytes32 EIP-712 typehash for the TransferWithAuthorization struct used to verify off-chain transfer signatures.✨ AI
allowance(owner: address, spender: address) view

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

dev: See {IERC20-allowance}.

Parameters

Name Type Description
owner address Address of the token owner whose allowance is being queried.✨ AI
spender address Address authorized to spend tokens on behalf of the owner.✨ AI

Returns

Name Type Description
uint256 Remaining allowance as a uint256, denominated in the token's smallest unit.✨ AI
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

Return the token balance for the specified account.✨ AI

dev: See {IERC20-balanceOf}.

Parameters

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

Returns

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

Returns the number of decimal places the token uses.✨ 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 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 Number of decimal places (uint8) the token uses for display and arithmetic.✨ AI
isBlocked(address) view

Checks whether the given address is blocked from sending or receiving tokens.✨ AI

Parameters

Name Type Description
address

Returns

Name Type Description
bool True if the address is blocked from transfers, false otherwise.✨ AI
isTrusted(address) view

Return whether the given address is marked as trusted by the token.✨ AI

Parameters

Name Type Description
address

Returns

Name Type Description
bool True if the address is marked trusted by the token contract, otherwise false.✨ AI
name() view

Returns the token's name.✨ AI

dev: Returns the name of the token.

Returns

Name Type Description
string Human-readable token name (for example: Tether USD).✨ AI
nonces(owner: address) view

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

dev: See {IERC20Permit-nonces}.

Parameters

Name Type Description
owner address Address whose nonce to query.✨ AI

Returns

Name Type Description
uint256 Current nonce (uint256) for the owner, used to prevent replay of signed messages.✨ 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 contract owner (the account with administrative/privileged rights).✨ 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's symbol string (for example "USDT").✨ AI
totalSupply() view

Returns the total supply of the token.✨ AI

dev: See {IERC20-totalSupply}.

Returns

Name Type Description
uint256 Total number of smallest token units in existence (uint256).✨ AI

Write Functions

addToBlockedList(_user: address) nonpayable

Adds an address to the blocked list, preventing it from transferring tokens.✨ AI

Parameters

Name Type Description
_user address Address to add to the blocked list; blocked addresses cannot transfer tokens.✨ AI
approve(spender: address, amount: uint256) nonpayable

Allow a spender to transfer up to amount of your tokens on your behalf.✨ AI

dev: See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.

Parameters

Name Type Description
spender address Address authorized to spend tokens.✨ AI
amount uint256 Maximum token amount the spender is allowed to transfer.✨ AI

Returns

Name Type Description
bool True if the allowance was set successfully.✨ AI
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

Decrease the caller's allowance for a spender by a specified amount.✨ 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 authorized to spend tokens on behalf of the caller.✨ AI
subtractedValue uint256 Amount to subtract from the caller's current allowance (in token smallest units).✨ AI

Returns

Name Type Description
bool Boolean indicating whether the allowance was successfully decreased.✨ AI
destroyBlockedFunds(_blockedUser: address) nonpayable

Permanently burn the frozen token balance held by a blocked address.✨ AI

Parameters

Name Type Description
_blockedUser address Address whose frozen token balance will be permanently removed.✨ AI
increaseAllowance(spender: address, addedValue: uint256) nonpayable

Increases the caller's allowance for spender by addedValue and returns true on success.✨ 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 that will be allowed to spend the caller's tokens.✨ AI
addedValue uint256 Amount to add to the existing allowance, denominated in the token's smallest units.✨ AI

Returns

Name Type Description
bool True if the allowance was successfully increased.✨ AI
initialize(_name: string, _symbol: string, _decimals: uint8) nonpayable

Initializes the token name, symbol, and decimals for the TetherTokenV2 contract.✨ AI

Parameters

Name Type Description
_name string Token name to set.✨ AI
_symbol string Token symbol to set.✨ AI
_decimals uint8 Number of decimals to use for the token.✨ AI
mint(_destination: address, _amount: uint256) nonpayable

Mint new tokens and credit them to the specified destination address.✨ AI

Parameters

Name Type Description
_destination address Destination address that will receive the minted tokens.✨ AI
_amount uint256 Amount of tokens to mint, expressed in the token's base units.✨ AI
multiTransfer(_recipients: address[], _values: uint256[]) nonpayable

Transfer specified token amounts to multiple recipient addresses in a single transaction.✨ AI

Parameters

Name Type Description
_recipients address[] Array of recipient addresses to receive tokens.✨ AI
_values uint256[] Array of token amounts to send, matched by index to _recipients.✨ AI
permit(owner_: address, spender: address, value: uint256, deadline: uint256, signature: bytes) nonpayable

Allows an owner to approve a spender using an off-chain signature before a deadline.✨ AI

dev: See {IERC20Permit-permit}.

Parameters

Name Type Description
owner_ address Address of the token owner who signed the approval.✨ AI
spender address Address allowed to spend the owner's tokens.✨ AI
value uint256 Amount of tokens to approve (in smallest unit).✨ AI
deadline uint256 Unix timestamp after which the permit is invalid.✨ AI
signature bytes
permit(owner_: address, spender: address, value: uint256, deadline: uint256, v: uint8, r: bytes32, s: bytes32) nonpayable

Allows an owner to approve a spender using an off-chain signature before a deadline.✨ AI

dev: See {IERC20Permit-permit}.

Parameters

Name Type Description
owner_ address Address of the token owner who signed the approval.✨ AI
spender address Address allowed to spend the owner's tokens.✨ AI
value uint256 Amount of tokens to approve (in smallest unit).✨ AI
deadline uint256 Unix timestamp after which the permit is invalid.✨ AI
v uint8 Signature recovery id (part of the ECDSA signature).✨ AI
r bytes32 First 32 bytes of the ECDSA signature.✨ AI
s bytes32 Second 32 bytes of the ECDSA signature.✨ AI
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

Redeem the specified amount of Tether tokens from the caller, reducing their balance and initiating withdrawal.✨ AI

Parameters

Name Type Description
_amount uint256 Amount of tokens to redeem, expressed in the token's smallest unit.✨ AI
removeFromBlockedList(_user: address) nonpayable

Remove an address from the contract's blocked list so the address can transfer tokens again.✨ AI

Parameters

Name Type Description
_user address Address to remove from the blocked list.✨ AI
renounceOwnership() nonpayable

Relinquish contract ownership, leaving the contract without an owner.✨ AI

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

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

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 Address receiving 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, false otherwise.✨ AI
transferFrom(_sender: address, _recipient: address, _amount: uint256) nonpayable

Transfers _amount tokens from _sender to _recipient using the caller's allowance and returns true on success.✨ 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}. 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 Account whose tokens will be withdrawn.✨ AI
_recipient address Account that will receive the tokens.✨ AI
_amount uint256 Number of tokens to transfer.✨ AI

Returns

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

Transfers contract ownership to a new address.✨ AI

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 Address to become the contract owner.✨ AI
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