Honey

Berachain ERC-20 Token

0xfcbd14dc51f0a4d49d5e53c2e0950e0bc26d0dce

Proxy implementation: 0x96b1a552a97da5503343d0f9ff2766c616e62905

Solidity v0.8.26+commit.8a97fa7a

Fungible token following the ERC-20 standard.

🤖
Query this contract from your AI
Reference: 0xfcbd14dc51f0a4d49d5e53c2e0950e0bc26d0dce
Sample prompt: "Tell me the current state of berachain/0xfcbd14dc51f0a4d49d5e53c2e0950e0bc26d0dce"
No AI wired up yet? → mcp.smarts.md
Berachain 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
21
Events
12

Read Functions

CANCEL_AUTHORIZATION_TYPEHASH() view

Returns

Name Type Description
bytes32
DEFAULT_ADMIN_ROLE() view

Returns

Name Type Description
bytes32
DOMAIN_SEPARATOR() view
dev: Returns the EIP-712 domain separator for the EIP-2612 permit.

Returns

Name Type Description
result bytes32
PERMIT_TYPEHASH() view

Returns

Name Type Description
bytes32
RECEIVE_WITH_AUTHORIZATION_TYPEHASH() view

Returns

Name Type Description
bytes32
TRANSFER_WITH_AUTHORIZATION_TYPEHASH() view

Returns

Name Type Description
bytes32
UPGRADE_INTERFACE_VERSION() view

Returns

Name Type Description
string
allowance(owner: address, spender: address) view
dev: Returns the amount of tokens that `spender` can spend on behalf of `owner`.

Parameters

Name Type Description
owner address
spender address

Returns

Name Type Description
result 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(owner: address) view
dev: Returns the amount of tokens owned by `owner`.

Parameters

Name Type Description
owner address

Returns

Name Type Description
result uint256
decimals() view
dev: Returns the decimals places of the token.

Returns

Name Type Description
uint8
factory() view

Returns

Name Type Description
address
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
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
isBlacklistedWallet(wallet: address) view

Parameters

Name Type Description
wallet address

Returns

Name Type Description
blacklisted bool
name() pure
dev: Returns the name of the token.

Returns

Name Type Description
string
nonces(owner: address) view
dev: Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.

Parameters

Name Type Description
owner address

Returns

Name Type Description
result uint256
paused() view
dev: Returns true if the contract is paused, and false otherwise.

Returns

Name Type Description
bool
proxiableUUID() view
dev: Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.

Returns

Name Type Description
bytes32
supportsInterface(interfaceId: bytes4) view
dev: See {IERC165-supportsInterface}.

Parameters

Name Type Description
interfaceId bytes4

Returns

Name Type Description
bool
symbol() pure
dev: Returns the symbol of the token.

Returns

Name Type Description
string
totalSupply() view
dev: Returns the amount of tokens in existence.

Returns

Name Type Description
result uint256
version() pure

Version string for the EIP712 domain separator

Returns

Name Type Description
string Version string

Write Functions

approve(spender: address, amount: uint256) nonpayable
dev: Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.

Parameters

Name Type Description
spender address
amount uint256

Returns

Name Type Description
bool
burn(from: address, amount: uint256) nonpayable

Burn Honey from an account.

dev: Only the factory can call this function.

Parameters

Name Type Description
from address The account to burn Honey from.
amount uint256 The amount of Honey to burn.
cancelAuthorization(authorizer: address, nonce: bytes32, v: uint8, r: bytes32, s: bytes32) nonpayable
dev: Override to add whenNotPaused check.

Parameters

Name Type Description
authorizer address
nonce bytes32
v uint8
r bytes32
s bytes32
cancelAuthorization(authorizer: address, nonce: bytes32, signature: bytes) nonpayable
dev: Override to add whenNotPaused check.

Parameters

Name Type Description
authorizer address
nonce bytes32
signature bytes
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. May emit a {RoleGranted} event.

Parameters

Name Type Description
role bytes32
account address
initialize(_governance: address, _factory: address) nonpayable

Parameters

Name Type Description
_governance address
_factory address
initializeV1Update() nonpayable
mint(to: address, amount: uint256) nonpayable

Mint Honey to the receiver.

dev: Only the factory can call this function.

Parameters

Name Type Description
to address The receiver address.
amount uint256 The amount of Honey to mint.
permit(owner: address, spender: address, value: uint256, deadline: uint256, signature: bytes) nonpayable
dev: Override to add whenNotPaused check.

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: Override to add whenNotPaused check.

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

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
renounceRole(role: bytes32, callerConfirmation: 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 revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.

Parameters

Name Type Description
role bytes32
callerConfirmation 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. May emit a {RoleRevoked} event.

Parameters

Name Type Description
role bytes32
account address
setBlacklisted(wallet: address, status: bool) nonpayable

Allows to pause transfer of Honey for a specific wallet

Parameters

Name Type Description
wallet address
status bool
setPaused(pause: bool) nonpayable

Allows to pause transfer of Honey

Parameters

Name Type Description
pause bool
transfer(to: address, amount: uint256) nonpayable
dev: Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.

Parameters

Name Type Description
to address
amount uint256

Returns

Name Type Description
bool
transferFrom(from: address, to: address, amount: uint256) nonpayable
dev: Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.

Parameters

Name Type Description
from address
to address
amount uint256

Returns

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

Execute a transfer with a signed authorization

dev: Override this function in derived contracts to add custom validation.

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

dev: Override this function in derived contracts to add custom validation.

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
upgradeToAndCall(newImplementation: address, data: bytes) payable
dev: Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.

Parameters

Name Type Description
newImplementation address
data bytes

Events

Approval(owner: address, spender: address, amount: uint256)
Name Type Indexed Description
owner address
spender address
amount 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
BlacklistedStatusChanged(wallet: address, status: bool)

Emitted when the fee receiver address is set.

Name Type Indexed Description
wallet address
status bool
Initialized(version: uint64)
Name Type Indexed Description
version uint64
Paused(account: address)
Name Type Indexed Description
account address
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, amount: uint256)
Name Type Indexed Description
from address
to address
amount uint256
Unpaused(account: address)
Name Type Indexed Description
account address
Upgraded(implementation: address)
Name Type Indexed Description
implementation address