Functions
| Function | Selector | Summary |
|---|---|---|
DEFAULT_ADMIN_ROLE | 0xa217fddf | The default top-level admin role (bytes32(0)). Required to call grantRole, revokeRole, |
MINT_ROLE | 0xe9a9c850 | Required to call mint and mintWithMemo. |
BURN_ROLE | 0xb930908f | Required to call burn and burnWithMemo. |
BURN_BLOCKED_ROLE | 0x32ad9be8 | Required to call the deprecated burnBlocked (no longer part of this interface; retained for |
SEIZE_ROLE | 0x3c7e9ba5 | Required to call seizeWithMemo. |
PAUSE_ROLE | 0x389ed267 | Required to call pause. |
UNPAUSE_ROLE | 0x309756fb | Required to call unpause. |
METADATA_ROLE | 0x38841782 | Required to call updateName, updateSymbol, and updateContractURI. |
TRANSFER_SENDER_POLICY | 0xd116fc21 | Policy slot consulted against from on every transfer (including transferFrom). |
TRANSFER_RECEIVER_POLICY | 0x210f521b | Policy slot consulted against to on every transfer. |
TRANSFER_EXECUTOR_POLICY | 0x724e9c53 | Policy slot consulted against msg.sender on transferFrom when distinct from from. |
MINT_RECEIVER_POLICY | 0x6e5b013d | Policy slot consulted against to on every mint. |
SEIZE_HOLDER_POLICY | 0xb279d311 | Policy slot consulted against from by seizeWithMemo. |
name | 0x06fdde03 | Token name. Set at creation, mutable via updateName. |
symbol | 0x95d89b41 | Token symbol. Set at creation, mutable via updateSymbol. |
decimals | 0x313ce567 | Number of decimal places. Immutable per token variant. |
totalSupply | 0x18160ddd | Total token supply currently in circulation. |
balanceOf | 0x70a08231 | Balance of account. |
allowance | 0xdd62ed3e | Allowance granted by owner to spender. |
transfer | 0xa9059cbb | Transfers amount from msg.sender to to. Emits Transfer. |
transferFrom | 0x23b872dd | Transfers amount from from to to using msg.sender’s allowance. Emits Transfer. |
approve | 0x095ea7b3 | Sets spender’s allowance to amount. Not gated by any policy or by pause. Emits Approval. |
updateName | 0x84da92a7 | Updates the token’s name. Emits NameUpdated followed by EIP712DomainChanged. |
updateSymbol | 0x537f5312 | Updates the token’s symbol. Emits SymbolUpdated. |
transferWithMemo | 0x95777d59 | Same as transfer, plus emits Memo immediately after the standard Transfer event. |
transferFromWithMemo | 0x929c2539 | Same as transferFrom, plus emits Memo immediately after the standard Transfer event. |
mint | 0x40c10f19 | Mints amount to to. Emits Transfer(address(0), to, amount). |
mintWithMemo | 0xe44f0b12 | Same as mint, plus emits Memo immediately after the standard Transfer event. |
burn | 0x42966c68 | Burns amount from the caller’s own balance. Not subject to any policy. |
burnWithMemo | 0x38f23b0b | Same as burn, plus emits Memo immediately after the standard Transfer event. |
seizeWithMemo | 0xf916d81b | Seizes amount of from’s balance and reassigns it to to in a single admin operation. |
hasRole | 0x91d14854 | Whether account is a member of role. User-defined roles are supported and have no |
getRoleAdmin | 0x248a9ca3 | The role required to grant or revoke role. Defaults to DEFAULT_ADMIN_ROLE if not |
grantRole | 0x2f2ff15d | Grants role to account. Emits RoleGranted. |
revokeRole | 0xd547741f | Revokes role from account. Emits RoleRevoked. |
renounceRole | 0x36568abe | Caller renounces role for themselves. Emits RoleRevoked. |
renounceLastAdmin | 0x6f79e3d7 | Permanently transitions the token to a zero-admin state. Revokes DEFAULT_ADMIN_ROLE |
setRoleAdmin | 0x1e4e0091 | Sets the admin role for role. Emits RoleAdminChanged. |
pausedFeatures | 0xde9997e3 | The PausableFeatures currently paused on this token. Order is implementation-defined; |
isPaused | 0x165c44bc | Whether feature is currently paused. O(1). |
pause | 0x9f98bd2d | Pauses each of features. Additive: features already paused remain paused; duplicates |
unpause | 0xb61b2ebc | Unpauses each of features. Features not listed are unaffected; duplicates are idempotent. |
policyId | 0xdb3de624 | The current policy ID configured for policyScope. Returns 0 (always-allow built-in) |
updatePolicy | 0xadf9c4ea | Updates the policy ID assigned to policyScope. Takes effect immediately for the next |
supplyCap | 0x8f770ad0 | The maximum total supply enforced on mint. Capped at type(uint128).max, which |
updateSupplyCap | 0xe5a97f07 | Sets a new supply cap. May be raised or lowered freely, but never below current |
DOMAIN_SEPARATOR | 0x3644e515 | The current EIP-712 domain separator for this token. Recomputed on each call so it |
nonces | 0x7ecebe00 | The current EIP-2612 permit nonce for owner. Incremented by 1 on each successful permit. |
permit | 0xd505accf | EIP-2612 permit. Recovers owner via ECDSA from (v, r, s). EOA signatures only; |
eip712Domain | 0x84b0196e | ERC-5267 EIP-712 domain introspection. |
contractURI | 0xe8a3d485 | Off-chain URI pointing at contract-level metadata for this token, per ERC-7572. |
updateContractURI | 0x7e5b1e24 | Updates contractURI. Emits the parameterless ContractURIUpdated event per ERC-7572; |
Events
| Event | Topic0 | Summary |
|---|---|---|
Transfer | 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef | ERC-20 transfer event. Emitted on every successful transfer (including memo’d variants), |
Approval | 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 | ERC-20 approval event. Emitted by approve and permit. |
Memo | 0x6989f5818dcfd11f8cd53b27c94cec33dae1589735f03e639cba54553a1825e8 | Emitted by transferWithMemo, transferFromWithMemo, mintWithMemo, and burnWithMemo |
BurnedBlocked | 0x0b552e96653fd6842da37c477005d3b5c08a8c7d3631b1f43787b2dc9a1006a3 | Emitted by the deprecated burnBlocked in addition to Transfer(from, address(0), amount). |
Seized | 0xa9aec5d8b86e2fa2fd6ac3af62f2622e3dfdab1967d4cbbb56a5df7d74cb887c | Emitted by seizeWithMemo in addition to Transfer(from, to, amount) (and the |
RoleGranted | 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d | Emitted when account is granted role. sender is the originating caller. |
RoleRevoked | 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b | Emitted when role is revoked from account. sender is the originating caller |
RoleAdminChanged | 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff | Emitted by setRoleAdmin when the admin role for role changes. |
LastAdminRenounced | 0xe8d3a9872e7ca325571ff1e4c51ddd69090a0345240cc605ccde365ec867cc67 | Emitted by renounceLastAdmin in addition to the standard |
Paused | 0x43e072977b8112813d7c2aa0b63d3c121c1fe3e714e6d2eacb5735fe4027e976 | Emitted by pause. features is the argument to the call (not the resulting paused state). |
Unpaused | 0xdc6281474ea3dea2a856e225c7ba3edf427de9164495817c4d49a595e683fed4 | Emitted by unpause. features is the argument to the call (not the resulting paused state). |
PolicyUpdated | 0x8b4790f7ff717fc8f60f07ae099e47ef318dc04b37ae98056b50a22b79056626 | Emitted by updatePolicy when a token’s policy slot is changed. Initial slot assignment at |
SupplyCapUpdated | 0x6d14f44808ce024f263432bc38d019a9951fbe674e9898b54844dbc8dc09c23a | Emitted by updateSupplyCap. |
ContractURIUpdated | 0xa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad962 | Emitted by updateContractURI. Per ERC-7572, parameterless: integrators re-fetch contractURI(). |
NameUpdated | 0x74321da206c1b9fa34367f7ece59ca49371dcd13820b9a5c3767ae1ecceed51a | Emitted by updateName. Carries the new name string. |
SymbolUpdated | 0x64e8b5c6dcea43dd79766bb3b8af7c45968d12b68c960cf2da23856f34d598d4 | Emitted by updateSymbol. Carries the new symbol string. |
EIP712DomainChanged | 0x0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31 | ERC-5267 domain-change signal. Emitted exactly once per successful updateName call, |
Errors
| Error | Selector | Summary |
|---|---|---|
NonPayable | 0x6fb1b0e9 | ETH was attached to a call targeting a nonpayable token selector. |
AccessControlUnauthorizedAccount | 0xe2517d3f | account does not hold neededRole. |
Unauthorized | 0x82b42900 | Caller failed a positional authorization check that is not expressible as “missing role X”. |
ContractPaused | 0xf9df5ac9 | The PausableFeature covering this operation is currently paused. |
InsufficientAllowance | 0x192b9e4e | spender’s allowance is less than needed for the requested transferFrom. |
InsufficientBalance | 0xdb42144d | sender’s balance is less than needed for the requested transfer or burn. |
InvalidSender | 0x4c14f64c | The transfer’s source address is invalid (typically address(0)). |
InvalidReceiver | 0x9cfea583 | The transfer’s destination address is invalid (typically address(0)). |
InvalidApprover | 0x8bc146c4 | The approval’s owner address is invalid (typically address(0)). |
InvalidSpender | 0x4e15efda | The approval’s spender address is invalid (typically address(0)). |
InvalidAmount | 0x2c5211c6 | An amount argument was zero where a non-zero value is required. Not used for ERC-20 amount arguments. |
EmptyFeatureSet | 0x4861ff45 | An empty array was passed to a function that requires at least one element. |
InvalidSupplyCap | 0x0a3780ce | The proposed supply cap is outside the permitted range: below the current |
SupplyCapExceeded | 0x4b344b11 | The mint would push totalSupply past the configured cap. |
PolicyForbids | 0xa43fec12 | A policy slot denied the operation. |
PolicyNotFound | 0xcccad523 | The provided policy ID does not exist in the policy registry. |
UnsupportedPolicyType | 0xcdd98a4a | policyScope is not a slot this token (or its variant) supports. |
AccountNotSeizable | 0x91dbbc8d | seizeWithMemo was called against a from that is currently authorized under |
AccountNotBlocked | 0x64a5cb46 | The deprecated burnBlocked was called against a from that is currently authorized under |
ExpiredSignature | 0xbd2a913c | An EIP-2612 permit was submitted with a deadline strictly less than block.timestamp. |
InvalidSigner | 0x7ba5ffb5 | ECDSA recovery on an EIP-2612 permit returned signer, which does not match the claimed owner. |
LastAdminCannotRenounce | 0x361513e7 | renounceRole(DEFAULT_ADMIN_ROLE, ...) was called by the sole remaining admin. |
NotSoleAdmin | 0x2a98e73b | renounceLastAdmin() was called when other accounts also hold DEFAULT_ADMIN_ROLE. |
AccessControlBadConfirmation | 0x6697b232 | The callerConfirmation argument to renounceRole was not msg.sender. |