BAL
Ethereum ERC-20 Token0xba100000625a3754423978a60c9317c58a424e3d
Solidity v0.6.8+commit.0bbfe453
Fungible token following the ERC-20 standard.
🤖
Query this contract from your AI
Reference:
bal-eth
0xba100000625a3754423978a60c9317c58a424e3d
Sample prompt:
“Tell me the current state of bal-eth”
No AI wired up yet? →
mcp.smarts.md
Admin & Risk
Who can change the rules?
Detected mintable and role based controls from the verified ABI.
Mintable
Role Based
Overview
Read Functions
19
Write Functions
13
Events
5
Read Functions
Block #25,169,803 · just now
DEFAULT_ADMIN_ROLE()
view
→ 0x0000000000000000000000000000000000000000000000000000000000000000
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
DOMAIN_SEPARATOR()
view
→ 0x0f7e6db4bd29f5b0743e892c53690ee939ed780f756e0d021b93ed86993b03f4
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
MINTER_ROLE()
view
→ 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
PERMIT_TYPEHASH()
view
→ 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
SNAPSHOT_ROLE()
view
→ 0x5fdbd35e8da83ee755d5e62a539e5ed7f47126abede0b8b10f9ea43dc6eed07f
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
allowance(owner: address, spender: address)
view
dev: Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address | |
| spender | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
balanceOf(account: address)
view
dev: Returns the amount of tokens owned by `account`.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
balanceOfAt(account: address, snapshotId: uint256)
view
dev: Retrieves the balance of `account` at the time `snapshotId` was created.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address | |
| snapshotId | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
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 |
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 |
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 |
name()
view
→ Balancer
dev: Returns the name of the token.
Returns
| Name | Type | Description |
|---|---|---|
| — | string |
nonces(address)
view
Parameters
| Name | Type | Description |
|---|---|---|
| — | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
symbol()
view
→ BAL
dev: Returns the symbol of the token, usually a shorter version of the name.
Returns
| Name | Type | Description |
|---|---|---|
| — | string |
totalSupply()
view
→ 72,371,145.14 BAL
dev: Returns the amount of tokens in existence.
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
totalSupplyAt(snapshotId: uint256)
view
dev: Retrieves the total supply at the time `snapshotId` was created.
Parameters
| Name | Type | Description |
|---|---|---|
| snapshotId | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
version()
view
→ 1
Returns
| Name | Type | Description |
|---|---|---|
| — | string |
Write Functions
approve(spender: address, amount: uint256)
nonpayable
dev: Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.
Parameters
| Name | Type | Description |
|---|---|---|
| spender | address | |
| amount | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
burn(amount: uint256)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| amount | uint256 |
burnFrom(account: address, amount: uint256)
nonpayable
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 |
mint(to: address, amount: uint256)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| to | address | |
| amount | uint256 |
permit(owner: address, spender: address, value: uint256, deadline: uint256, v: uint8, r: bytes32, s: bytes32)
nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address | |
| spender | address | |
| value | uint256 | |
| deadline | uint256 | |
| v | uint8 | |
| r | bytes32 | |
| s | bytes32 |
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 |
snapshot()
nonpayable
transfer(recipient: address, amount: uint256)
nonpayable
dev: Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
Parameters
| Name | Type | Description |
|---|---|---|
| recipient | address | |
| amount | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
transferFrom(sender: address, recipient: address, amount: uint256)
nonpayable
dev: Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
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 |
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 | ✓ |
Snapshot(id: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| id | uint256 |
Transfer(from: address, to: address, value: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| from | address | ✓ | |
| to | address | ✓ | |
| value | uint256 |