FRAX
Ethereum ERC-20 Token0x853d955acef822db058eb8505911ed77f175b99e
Solidity v0.6.11+commit.5ef660b1
Fungible token following the ERC-20 standard.
🤖
Query this contract from your AI
Reference:
frax-eth
0x853d955acef822db058eb8505911ed77f175b99e
Sample prompt:
“Tell me the current state of frax-eth”
No AI wired up yet? →
mcp.smarts.md
Admin & Risk
Who can change the rules?
Detected role based controls from the verified ABI.
Role Based
Overview
Read Functions
39
Write Functions
29
Events
7
Read Functions
Block #25,169,806 · just now
COLLATERAL_RATIO_PAUSER()
view
→ 0xb25402418ad555013210365a422f9f1206b2dd00719998db06f8a1fbe014641b
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
DEFAULT_ADMIN_ADDRESS()
view
→ 0xa448833bece66fd8803ac0c390936c79b5fd6edf
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
DEFAULT_ADMIN_ROLE()
view
→ 0x0000000000000000000000000000000000000000000000000000000000000000
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 |
balanceOf(account: address)
view
dev: See {IERC20-balanceOf}.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
collateral_ratio_paused()
view
→ true
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
controller_address()
view
→ 0x0000000000000000000000000000000000000000
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
creator_address()
view
→ 0x234d953a9404bf9dbc3b526271d440cd2870bcd2
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
decimals()
view
→ 18
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 {_setupDecimals} is called. 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 |
eth_usd_consumer_address()
view
→ 0xba6c6eac41a24f9d39032513f66d738b3559f15a
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
eth_usd_price()
view
→ 2,092,830,000
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
frax_eth_oracle_address()
view
→ 0x2a6ddd9401b14d0443d0738b8a78fd5b99829a80
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
frax_info()
view
reverted
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 | |
| — | uint256 | |
| — | uint256 | |
| — | uint256 | |
| — | uint256 | |
| — | uint256 | |
| — | uint256 | |
| — | uint256 |
frax_pools(address)
view
Parameters
| Name | Type | Description |
|---|---|---|
| — | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
frax_pools_array(uint256)
view
Parameters
| Name | Type | Description |
|---|---|---|
| — | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
frax_price()
view
reverted
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
frax_step()
view
→ 2,500
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
fxs_address()
view
→ 0x3432b6a60d23ca0dfca7761b7ab56459d9c964d0
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
fxs_eth_oracle_address()
view
→ 0x3b11da52030420c663d263ad4415a8a02e5f8cf8
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
fxs_price()
view
reverted
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
genesis_supply()
view
→ 2,000,000,000,000,000,000,000,000
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
getRoleAdmin(role: bytes32)
view
dev: Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.
Parameters
| Name | Type | Description |
|---|---|---|
| role | bytes32 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
getRoleMember(role: bytes32, index: uint256)
view
dev: Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.
Parameters
| Name | Type | Description |
|---|---|---|
| role | bytes32 | |
| index | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
getRoleMemberCount(role: bytes32)
view
dev: Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.
Parameters
| Name | Type | Description |
|---|---|---|
| role | bytes32 |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
globalCollateralValue()
view
→ 518,691,467,559,826,963,223,057,022
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
global_collateral_ratio()
view
→ 945,000
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
hasRole(role: bytes32, account: address)
view
dev: Returns `true` if `account` has been granted `role`.
Parameters
| Name | Type | Description |
|---|---|---|
| role | bytes32 | |
| account | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
last_call_time()
view
→ 1,687,208,423
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
minting_fee()
view
→ 9,500
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
name()
view
→ Frax
dev: Returns the name of the token.
Returns
| Name | Type | Description |
|---|---|---|
| — | string |
owner_address()
view
→ 0xb1748c79709f4ba2dd82834b8c82d4a505003f27
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
price_band()
view
→ 10,000
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
price_target()
view
→ 980,000
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
redemption_fee()
view
→ 4,500
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
refresh_cooldown()
view
→ 3,600
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
symbol()
view
→ FRAX
dev: Returns the symbol of the token, usually a shorter version of the name.
Returns
| Name | Type | Description |
|---|---|---|
| — | string |
timelock_address()
view
→ 0x8412ebf45bac1b340bbe8f318b928c466c4e39ca
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
totalSupply()
view
→ 275,847,684.01 FRAX
dev: See {IERC20-totalSupply}.
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
weth_address()
view
→ 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Write Functions
addPool(pool_address: address)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| pool_address | address |
approve(spender: address, amount: uint256)
nonpayable
dev: See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.approve(address spender, uint256 amount)
Parameters
| Name | Type | Description |
|---|---|---|
| spender | address | |
| amount | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
burn(amount: uint256)
nonpayable
dev: Destroys `amount` tokens from the caller. See {ERC20-_burn}.
Parameters
| Name | Type | Description |
|---|---|---|
| amount | uint256 |
burnFrom(account: address, amount: uint256)
nonpayable
dev: Destroys `amount` 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 `amount`.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address | |
| amount | uint256 |
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 |
grantRole(role: bytes32, account: address)
nonpayable
dev: Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.
Parameters
| Name | Type | Description |
|---|---|---|
| role | bytes32 | |
| account | 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 |
pool_burn_from(b_address: address, b_amount: uint256)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| b_address | address | |
| b_amount | uint256 |
pool_mint(m_address: address, m_amount: uint256)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| m_address | address | |
| m_amount | uint256 |
refreshCollateralRatio()
nonpayable
removePool(pool_address: address)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| pool_address | address |
renounceRole(role: bytes32, account: address)
nonpayable
dev: Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.
Parameters
| Name | Type | Description |
|---|---|---|
| role | bytes32 | |
| account | address |
revokeRole(role: bytes32, account: address)
nonpayable
dev: Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.
Parameters
| Name | Type | Description |
|---|---|---|
| role | bytes32 | |
| account | address |
setController(_controller_address: address)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _controller_address | address |
setETHUSDOracle(_eth_usd_consumer_address: address)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _eth_usd_consumer_address | address |
setFRAXEthOracle(_frax_oracle_addr: address, _weth_address: address)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _frax_oracle_addr | address | |
| _weth_address | address |
setFXSAddress(_fxs_address: address)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _fxs_address | address |
setFXSEthOracle(_fxs_oracle_addr: address, _weth_address: address)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _fxs_oracle_addr | address | |
| _weth_address | address |
setFraxStep(_new_step: uint256)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _new_step | uint256 |
setMintingFee(min_fee: uint256)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| min_fee | uint256 |
setOwner(_owner_address: address)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _owner_address | address |
setPriceBand(_price_band: uint256)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _price_band | uint256 |
setPriceTarget(_new_price_target: uint256)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _new_price_target | uint256 |
setRedemptionFee(red_fee: uint256)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| red_fee | uint256 |
setRefreshCooldown(_new_cooldown: uint256)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _new_cooldown | uint256 |
setTimelock(new_timelock: address)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| new_timelock | address |
toggleCollateralRatio()
nonpayable
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 |
Events
Approval(owner: address, spender: address, value: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| owner | address | ✓ | |
| spender | address | ✓ | |
| value | uint256 |
FRAXBurned(from: address, to: address, amount: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| from | address | ✓ | |
| to | address | ✓ | |
| amount | uint256 |
FRAXMinted(from: address, to: address, amount: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| from | address | ✓ | |
| to | address | ✓ | |
| amount | uint256 |
RoleAdminChanged(role: bytes32, previousAdminRole: bytes32, newAdminRole: bytes32)
| Name | Type | Indexed | Description |
|---|---|---|---|
| role | bytes32 | ✓ | |
| previousAdminRole | bytes32 | ✓ | |
| newAdminRole | bytes32 | ✓ |
RoleGranted(role: bytes32, account: address, sender: address)
| Name | Type | Indexed | Description |
|---|---|---|---|
| role | bytes32 | ✓ | |
| account | address | ✓ | |
| sender | address | ✓ |
RoleRevoked(role: bytes32, account: address, sender: address)
| Name | Type | Indexed | Description |
|---|---|---|---|
| role | bytes32 | ✓ | |
| account | address | ✓ | |
| sender | address | ✓ |
Transfer(from: address, to: address, value: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| from | address | ✓ | |
| to | address | ✓ | |
| value | uint256 |