SfrxUSD

Fraxtal ERC-20 Token

0xfc00000000000000000000000000000000000008

Proxy implementation: 0xba026e978eb1b11d72adabf33b7cf6f3e321ca83

Solidity v0.8.30+commit.73712a01

Fungible token following the ERC-20 standard.

🤖
Query this contract from your AI
Reference: 0xfc00000000000000000000000000000000000008
Sample prompt: "Tell me the current state of fraxtal/0xfc00000000000000000000000000000000000008"
No AI wired up yet? → mcp.smarts.md
Fraxtal 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
23
Write Functions
22
Events
14

Read Functions

BRIDGE() view

Returns

Name Type Description
address
DOMAIN_SEPARATOR() view

Returns

Name Type Description
bytes32
REMOTE_TOKEN() view

Returns

Name Type Description
address
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
bridge() view

Legacy getter for BRIDGE

Returns

Name Type Description
address address The bridge address
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 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
eip712Domain() view
dev: See {IERC-5267}.

Returns

Name Type Description
fields bytes1
name string
version string
chainId uint256
verifyingContract address
salt bytes32
extensions uint256[]
l1Token() view

Legacy getter for the remote token. Use REMOTE_TOKEN going forward.

Returns

Name Type Description
address address The L1 remote token address
l2Bridge() view

Legacy getter for the bridge. Use BRIDGE going forward.

Returns

Name Type Description
address address The bridge address
minters(address) view

Parameters

Name Type Description
address

Returns

Name Type Description
bool
minters_array(uint256) view

Parameters

Name Type Description
uint256

Returns

Name Type Description
address
name() view
dev: Returns the name of the token.

Returns

Name Type Description
string
nominatedOwner() view

Returns

Name Type Description
address
nonces(owner: address) view
dev: Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.

Parameters

Name Type Description
owner address

Returns

Name Type Description
uint256
owner() view

Returns

Name Type Description
address
remoteToken() view

Legacy getter for REMOTE_TOKEN

Returns

Name Type Description
address address The L1 remote token address
supportsInterface(_interfaceId: bytes4) pure

ERC165 interface check function.

Parameters

Name Type Description
_interfaceId bytes4 Interface ID to check.

Returns

Name Type Description
bool Whether or not the interface is supported by this contract.
symbol() view
dev: Returns the symbol of the token, usually a shorter version of the name.

Returns

Name Type Description
string
timelock_address() view

Returns

Name Type Description
address
totalSupply() view
dev: See {IERC20-totalSupply}.

Returns

Name Type Description
uint256
version() pure

Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling.

Returns

Name Type Description
string Semver contract version as a string.

Write Functions

acceptOwnership() nonpayable
addMinter(minter_address: address) nonpayable

Adds a non-bridge minter

Parameters

Name Type Description
minter_address address Address of minter to add
approve(spender: address, value: uint256) nonpayable
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
value uint256

Returns

Name Type Description
bool
burn(value: uint256) nonpayable

Allows the StandardBridge on this network to burn tokens.

Parameters

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

Allows the StandardBridge on this network to burn tokens.

Parameters

Name Type Description
_from address Address to burn tokens from.
_amount uint256 Amount of tokens to burn.
burnFrom(account: address, value: uint256) nonpayable
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
value uint256
cancelAuthorization(authorizer: address, nonce: bytes32, v: uint8, r: bytes32, s: bytes32) nonpayable

The ```cancelAuthorization``` function cancels an authorization nonce

dev: EOA wallet signatures should be packed in the order of r, s, v

Parameters

Name Type Description
authorizer address Authorizer's address
nonce bytes32 Nonce of the authorization
v uint8 ECDSA signature v value
r bytes32 ECDSA signature r value
s bytes32 ECDSA signature s value
cancelAuthorization(authorizer: address, nonce: bytes32, signature: bytes) nonpayable

The ```cancelAuthorization``` function cancels an authorization nonce

dev: EOA wallet signatures should be packed in the order of r, s, v

Parameters

Name Type Description
authorizer address Authorizer's address
nonce bytes32 Nonce of the authorization
signature bytes
mint(_to: address, _amount: uint256) nonpayable

Allows the StandardBridge on this network to mint tokens.

Parameters

Name Type Description
_to address Address to mint tokens to.
_amount uint256 Amount of tokens to mint.
minter_burn_from(b_address: address, b_amount: uint256) nonpayable

Used by non-bridge minters to burn tokens

Parameters

Name Type Description
b_address address Address of the account to burn from
b_amount uint256 Amount of tokens to burn
minter_mint(m_address: address, m_amount: uint256) nonpayable

Used by non-bridge minters to mint new tokens

Parameters

Name Type Description
m_address address Address of the account to mint to
m_amount uint256 Amount of tokens to mint
nominateNewOwner(_owner: address) nonpayable

Parameters

Name Type Description
_owner address
permit(owner: address, spender: address, value: uint256, deadline: uint256, signature: bytes) nonpayable
dev: Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.

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: Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.

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

The ```receiveWithAuthorization``` function receives a transfer with a signed authorization from the payer

dev: EOA wallet signatures should be packed in the order of r, s, v

Parameters

Name Type Description
from address Payer's address (Authorizer)
to address Payee's address
value uint256 Amount to be transferred
validAfter uint256 The block.timestamp after which the authorization is valid
validBefore uint256 The block.timestamp before which the authorization is valid
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

The ```receiveWithAuthorization``` function receives a transfer with a signed authorization from the payer

dev: EOA wallet signatures should be packed in the order of r, s, v

Parameters

Name Type Description
from address Payer's address (Authorizer)
to address Payee's address
value uint256 Amount to be transferred
validAfter uint256 The block.timestamp after which the authorization is valid
validBefore uint256 The block.timestamp before which the authorization is valid
nonce bytes32 Unique nonce
v uint8 ECDSA signature parameter v
r bytes32 ECDSA signature parameters r
s bytes32 ECDSA signature parameters s
removeMinter(minter_address: address) nonpayable

Removes a non-bridge minter

Parameters

Name Type Description
minter_address address Address of minter to remove
setTimelock(_timelock_address: address) nonpayable

Sets the timelock address

Parameters

Name Type Description
_timelock_address address Address of the timelock
transfer(to: address, value: uint256) nonpayable
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
value uint256

Returns

Name Type Description
bool
transferFrom(from: address, to: address, value: uint256) nonpayable
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
to address
value uint256

Returns

Name Type Description
bool
transferWithAuthorization(from: address, to: address, value: uint256, validAfter: uint256, validBefore: uint256, nonce: bytes32, signature: bytes) nonpayable

The ```transferWithAuthorization``` function executes a transfer with a signed authorization according to Eip3009

dev: added in v1.1.0

Parameters

Name Type Description
from address Payer's address (Authorizer)
to address Payee's address
value uint256 Amount to be transferred
validAfter uint256 The block.timestamp after which the authorization is valid
validBefore uint256 The block.timestamp before which the authorization is valid
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

The ```transferWithAuthorization``` function executes a transfer with a signed authorization according to Eip3009

dev: added in v1.1.0

Parameters

Name Type Description
from address Payer's address (Authorizer)
to address Payee's address
value uint256 Amount to be transferred
validAfter uint256 The block.timestamp after which the authorization is valid
validBefore uint256 The block.timestamp before which the authorization is valid
nonce bytes32 Unique nonce
v uint8 ECDSA signature parameter v
r bytes32 ECDSA signature parameters r
s bytes32 ECDSA signature parameters s

Events

Approval(owner: address, spender: address, value: uint256)
Name Type Indexed Description
owner address
spender address
value uint256
AuthorizationCanceled(authorizer: address, nonce: bytes32)

```AuthorizationCanceled``` event is emitted when an authorization is canceled

Name Type Indexed Description
authorizer address Authorizer's address
nonce bytes32 Nonce of the authorization
AuthorizationUsed(authorizer: address, nonce: bytes32)

```AuthorizationUsed``` event is emitted when an authorization is used

Name Type Indexed Description
authorizer address Authorizer's address
nonce bytes32 Nonce of the authorization
Burn(account: address, amount: uint256)

Emitted whenever the bridge burns tokens from an account

Name Type Indexed Description
account address Address of the account tokens are being burned from
amount uint256 Amount of tokens burned
EIP712DomainChanged()
Mint(account: address, amount: uint256)

Emitted whenever the bridge mints tokens to an account

Name Type Indexed Description
account address Address of the account tokens are being minted for
amount uint256 Amount of tokens minted.
MinterAdded(minter_address: address)

Emitted when a non-bridge minter is added

Name Type Indexed Description
minter_address address Address of the new minter
MinterRemoved(minter_address: address)

Emitted when a non-bridge minter is removed

Name Type Indexed Description
minter_address address Address of the removed minter
OwnerChanged(oldOwner: address, newOwner: address)
Name Type Indexed Description
oldOwner address
newOwner address
OwnerNominated(newOwner: address)
Name Type Indexed Description
newOwner address
TimelockChanged(timelock_address: address)

Emitted when the timelock address changes

Name Type Indexed Description
timelock_address address Address of the removed timelock
TokenMinterBurned(from: address, to: address, amount: uint256)

Emitted when a non-bridge minter burns tokens

Name Type Indexed Description
from address The account whose tokens are burned
to address The minter doing the burning
amount uint256 Amount of tokens burned
TokenMinterMinted(from: address, to: address, amount: uint256)

Emitted when a non-bridge minter mints tokens

Name Type Indexed Description
from address The minter doing the minting
to address The account that gets the newly minted tokens
amount uint256 Amount of tokens minted
Transfer(from: address, to: address, value: uint256)
Name Type Indexed Description
from address
to address
value uint256