FRAX

Ethereum ERC-20 Token

0x853d955acef822db058eb8505911ed77f175b99e

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