USD₮0

Arbitrum One ERC-20 Token Browse chains

0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9

Proxy implementation: 0x3263cd783823d04a6b9819517e0e6840d37ca3f4

Solidity v0.8.4+commit.c7e474f2

Fungible token following the ERC-20 standard.

🤖
Query this contract from your AI
Reference: usdt-arbitrum 0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9
Sample prompt: "Tell me the current state of usdt-arbitrum"
No AI wired up yet? → mcp.smarts.md · Browse chains

Admin & Risk

Who can change the rules?

Block #25,287,178

Detected upgradeable, mintable, and ownable controls from the verified ABI.

Upgradeable Mintable Ownable

Current controls

Implementation
0x3263cd783823d04a6b9819517e0e6840d37ca3f4 ↗ Arbiscan → smarts proxy
Owner
0x4dff9b5b0143e642a3f63a5bcf2d1c328e600bf8 ↗ Arbiscan → smarts

Overview

Read Functions
18
Write Functions
28
Events
13

Read Functions

Block #25,287,178 · just now
CANCEL_AUTHORIZATION_TYPEHASH() view → 0x158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a1597429

Returns the EIP-712 typehash used to cancel previously granted authorizations.✨ AI

Returns

Name Type Description
bytes32 bytes32 EIP-712 typehash used to identify the cancel-authorization struct in signatures.✨ AI
DOMAIN_SEPARATOR() view → 0x566af68fb471b22d6421762f84aa7bd761c670a2e4d5c8a47d4085d5957b127c

Returns the EIP-712 domain separator used for permit and typed-data signatures.✨ AI

Returns

Name Type Description
bytes32 The EIP-712 domain separator (bytes32) used to construct signed permit messages.✨ AI
RECEIVE_WITH_AUTHORIZATION_TYPEHASH() view → 0xd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de8

Get the EIP-712 typehash used for receiveWithAuthorization authorizations.✨ AI

Returns

Name Type Description
bytes32 The bytes32 EIP-712 typehash for the receiveWithAuthorization authorization struct.✨ AI
TRANSFER_WITH_AUTHORIZATION_TYPEHASH() view → 0x7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267

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

Returns

Name Type Description
bytes32 The bytes32 EIP-712 typehash for the transferWithAuthorization struct.✨ AI
USDT0_L1_LOCKBOX() view → 0x6c96de32cea08842dcc4058c14d3aaad7fa41dee

Returns the L1 lockbox address used for USDT in the Arbitrum bridge.✨ AI

Returns

Name Type Description
address Address of the USDT v0 L1 lockbox contract used by the bridge.✨ AI
allowance(owner: address, spender: address) view

Return the remaining number of tokens that spender is allowed to transfer from owner.✨ AI

dev: See {IERC20-allowance}.

Parameters

Name Type Description
owner address Address that owns the tokens.✨ AI
spender address Address approved to spend the owner's tokens.✨ AI

Returns

Name Type Description
uint256 Remaining allowance expressed in the token's smallest units (uint256).✨ 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

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 in the token's smallest units (uint256).✨ AI
decimals() view → 6

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 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 The token's decimals as a uint8, indicating how many decimal places the token uses.✨ AI
isBlocked(address) view

Check whether the given account is blocked from transfers or other token actions.✨ AI

Parameters

Name Type Description
address

Returns

Name Type Description
bool True if the address is blocked and subject to transfer restrictions, false otherwise.✨ AI
isTrusted(address) view

Check whether a given address is marked trusted by the token contract.✨ AI

Parameters

Name Type Description
address

Returns

Name Type Description
bool True if the address is trusted and may use trusted-only features; otherwise false.✨ AI
l1Address() view → 0x0000000000000000000000000000000000000000

Returns the L1 (Layer 1) linked address for this Arbitrum token.✨ AI

Returns

Name Type Description
address address of layer 1 token
name() view → USD₮0

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 human-readable name string, as specified by the ERC-20 contract.✨ AI
nonces(owner: address) view

Returns the current nonce for an account used to build permit signatures.✨ AI

dev: See {IERC20Permit-nonces}.

Parameters

Name Type Description
owner address Address whose nonce is returned for use with permit signatures.✨ AI

Returns

Name Type Description
uint256 Current nonce value for the given owner, used to prevent replay of permit signatures.✨ AI
oftContract() view → 0x14e4a1b13bf7f943c8ff7c51fb60fa964a298d92

Returns the OFT contract address used by this extension.✨ AI

Returns

Name Type Description
address The address of the OFT contract associated with this extension.✨ AI
owner() view → 0x4dff9b5b0143e642a3f63a5bcf2d1c328e600bf8

Returns the address of the account that owns and controls this contract.✨ AI

dev: Returns the address of the current owner.

Returns

Name Type Description
address The contract owner's address.✨ AI
symbol() view → USD₮0

Returns the token's short symbol (ticker).✨ 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 (ticker), returned as a string.✨ AI
totalSupply() view → 998,995,596.73 USD₮0

Returns the total number of tokens in circulation for this ERC-20 contract.✨ AI

dev: See {IERC20-totalSupply}.

Returns

Name Type Description
uint256 The total token supply as a uint256 representing all tokens in existence.✨ AI

Write Functions

addToBlockedList(_user: address) nonpayable

Adds an address to the token's blocked list, preventing that address from transferring tokens.✨ AI

Parameters

Name Type Description
_user address Address to add to the contract's blocked list.✨ AI
approve(spender: address, amount: uint256) nonpayable

Set spender's allowance to amount so they can spend up to that many tokens on your behalf.✨ AI

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

Parameters

Name Type Description
spender address Address allowed to spend tokens.✨ AI
amount uint256 Number of tokens the spender is allowed to use.✨ AI

Returns

Name Type Description
bool True if the approval succeeded.✨ AI
bridgeBurn(account: address, amount: uint256) nonpayable

should decrease token supply by amount, and should (probably) only be callable by the L1 bridge.

Parameters

Name Type Description
account address
amount uint256
bridgeMint(account: address, amount: uint256) nonpayable

should increase token supply by amount, and should (probably) only be callable by the L1 bridge.

Parameters

Name Type Description
account address
amount uint256
burn(_from: address, _amount: uint256) nonpayable

Burns _amount tokens from _from, decreasing the account balance and total supply.✨ AI

Parameters

Name Type Description
_from address Address whose tokens will be burned.✨ AI
_amount uint256 Amount of tokens to burn, in the token's smallest unit.✨ 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

Decreases the caller's ERC-20 allowance granted to spender by subtractedValue.✨ 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 allowed to spend tokens on behalf of the caller.✨ AI
subtractedValue uint256 Amount to subtract from the spender's current allowance.✨ AI

Returns

Name Type Description
bool True if the allowance was decreased successfully.✨ AI
destroyBlockedFunds(_blockedUser: address) nonpayable

Permanently destroys all tokens held by a blocked account and reduces total supply.✨ AI

dev: Callable only by an authorized role; subtracts the user's balance from totalSupply, sets balance to zero, and emits a Transfer to address(0).✨ AI

Parameters

Name Type Description
_blockedUser address Address whose token balance will be destroyed because the account is blocked.✨ AI
increaseAllowance(spender: address, addedValue: uint256) nonpayable

Increase the ERC-20 allowance granted to spender by addedValue and return 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 allowed to spend tokens.✨ AI
addedValue uint256 Amount to add to spender's current allowance.✨ AI

Returns

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

Initializes the ERC-20 token with the given name, symbol, and decimals.✨ AI

Parameters

Name Type Description
_name string Token name used for display.✨ AI
_symbol string Token symbol or ticker used for display.✨ AI
_decimals uint8 Number of decimal places for token amounts (uint8).✨ AI
migrate(_name: string, _symbol: string, _oftContract: address) nonpayable

Migrate the token by setting a new name, symbol, and linking an OFT contract.✨ AI

Parameters

Name Type Description
_name string New token name to set during migration.✨ AI
_symbol string New token symbol to set during migration.✨ AI
_oftContract address Address of the OFT contract to link for cross-chain operations.✨ AI
mint(_destination: address, _amount: uint256) nonpayable

Mint tokens to the specified destination address.✨ AI

Parameters

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

Transfer tokens to multiple recipients in a single transaction.✨ AI

Parameters

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

Set spender allowance using the owner's off-chain signature, without an on-chain owner transaction.✨ AI

dev: See {IERC20Permit-permit}.

Parameters

Name Type Description
owner_ address Address of the token holder granting approval.✨ AI
spender address Address receiving the allowance.✨ AI
value uint256 Amount of tokens to approve (uint256).✨ 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

Set spender allowance using the owner's off-chain signature, without an on-chain owner transaction.✨ AI

dev: See {IERC20Permit-permit}.

Parameters

Name Type Description
owner_ address Address of the token holder granting approval.✨ AI
spender address Address receiving the allowance.✨ AI
value uint256 Amount of tokens to approve (uint256).✨ AI
deadline uint256 Unix timestamp after which the permit is invalid.✨ AI
v uint8 Recovery byte of the owner's signature.✨ AI
r bytes32 First 32 bytes of the owner's signature.✨ AI
s bytes32 Second 32 bytes of the owner's 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 tokens for their underlying value.✨ AI

Parameters

Name Type Description
_amount uint256 Amount of tokens to redeem.✨ AI
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.
setOFTContract(_oftContract: address) nonpayable

Parameters

Name Type Description
_oftContract address
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
updateNameAndSymbol(_name: string, _symbol: string) nonpayable

Parameters

Name Type Description
_name string
_symbol string

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
Burn(from: address, amount: uint256)
Name Type Indexed Description
from address
amount uint256
DestroyedBlockedFunds(_blockedUser: address, _balance: uint256)
Name Type Indexed Description
_blockedUser address
_balance uint256
LogSetOFTContract(oftContract: address)
Name Type Indexed Description
oftContract address
LogUpdateNameAndSymbol(name: string, symbol: string)
Name Type Indexed Description
name string
symbol string
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