USDG

Robinhood Chain ERC-20 Token Browse chains

0x68184c449e1a8f34fa18d289737129fd27b66f8f

Solidity v0.8.28+commit.7893614a

Fungible token following the ERC-20 standard.

🤖
Query this contract from your AI
Reference: 0x68184c449e1a8f34fa18d289737129fd27b66f8f
Sample prompt: "Tell me the current state of robinhood/0x68184c449e1a8f34fa18d289737129fd27b66f8f"
No AI wired up yet? → mcp.smarts.md · Browse chains

Admin & Risk

Who can change the rules?

Block #25,988,882

Detected upgradeable, mintable, pausable, ownable, and role based controls from the verified ABI.

Upgradeable Mintable Pausable Ownable Role Based

Current controls

Owner
0x0000000000000000000000000000000000000000 (none)
  • Upgradeability inferred from ABI/events; proxy storage resolution may be incomplete.

Overview

Read Functions
28
Write Functions
26
Events
46

Read Functions

Block #25,988,882 · just now
DEFAULT_ADMIN_ROLE() view → 0x0000000000000000000000000000000000000000000000000000000000000000

Returns

Name Type Description
bytes32
DOMAIN_SEPARATOR() view → 0x7925c4147423c3eb217e1fdde819c651b2ad4618f536a4e7e3a290837fdf3bea

EIP712 Domain Separator

dev: Returns domain separator, always recomputed to handle chain forks

Returns

Name Type Description
bytes32 The domain separator for EIP-712 signatures
EIP712_DOMAIN_HASH_DEPRECATED() view → 0x0000000000000000000000000000000000000000000000000000000000000000

Returns

Name Type Description
bytes32
EIP712_VERSION_PREFIX() view → 0x1901

Returns

Name Type Description
bytes2
allowance(owner: address, spender: address) view
dev: Function to check the amount of tokens that an owner allowed to a spender.

Parameters

Name Type Description
owner address
spender address

Returns

Name Type Description
uint256 A uint256 specifying the amount of tokens still available for the spender.
assetProtectionRoleDeprecated() view → 0x0000000000000000000000000000000000000000

Returns

Name Type Description
address
balanceOf(addr: address) view
dev: Gets the balance of the specified address.

Parameters

Name Type Description
addr address

Returns

Name Type Description
uint256 An uint256 representing the amount owned by the passed address.
betaDelegateWhitelisterDeprecated() view → 0x0000000000000000000000000000000000000000

Returns

Name Type Description
address
decimals() view → 6
dev: Returns the decimal count of the token.

Returns

Name Type Description
uint8
defaultAdmin() view → 0x0000000000000000000000000000000000000000
dev: Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.

Returns

Name Type Description
address
defaultAdminDelay() view → 0
dev: Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}.

Returns

Name Type Description
uint48
defaultAdminDelayIncreaseWait() view → 432,000
dev: Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).

Returns

Name Type Description
uint48
facets(bytes4) view

Parameters

Name Type Description
bytes4

Returns

Name Type Description
address
getFacet(selector: bytes4) view

Get the facet address for a function selector

Parameters

Name Type Description
selector bytes4 The function selector

Returns

Name Type Description
address The facet contract address
getRoleAdmin(role: bytes32) view
dev: Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.

Parameters

Name Type Description
role bytes32

Returns

Name Type Description
bytes32
globalTransferSettings() view → 0, 0, false, 0x00000000000000000000, false

Returns

Name Type Description
referenceTime uint40
maturityPeriod uint32
partnerSignedRegistrationsEnabled bool
__gap_remaining bytes10
paused bool
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 → Global Dollar
dev: Returns the name of the token.

Returns

Name Type Description
string
owner() view → 0x0000000000000000000000000000000000000000
dev: Gets the address of the owner.

Returns

Name Type Description
address
pendingDefaultAdmin() view → 0x0000000000000000000000000000000000000000, 0
dev: Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.

Returns

Name Type Description
newAdmin address
schedule uint48
pendingDefaultAdminDelay() view → 0, 0
dev: Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule.

Returns

Name Type Description
newDelay uint48
schedule uint48
proposedOwnerDeprecated() view → 0x0000000000000000000000000000000000000000

Returns

Name Type Description
address
proxiableUUID() view → 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
dev: Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. 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.

Returns

Name Type Description
bytes32
supplyControl() view → 0x0000000000000000000000000000000000000000

Returns

Name Type Description
address
supplyControllerDeprecated() view → 0x0000000000000000000000000000000000000000

Returns

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

Parameters

Name Type Description
interfaceId bytes4

Returns

Name Type Description
bool
symbol() view → USDG
dev: Returns the symbol of the token.

Returns

Name Type Description
string
totalSupply() view → 0 USDG
dev: Total number of tokens in existence

Returns

Name Type Description
uint256

Write Functions

acceptDefaultAdminTransfer() nonpayable
dev: Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.
approve(spender: address, value: uint256) nonpayable
dev: Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. 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

Parameters

Name Type Description
spender address
value uint256

Returns

Name Type Description
bool True if successful
batchSetFacet(facetCuts: tuple[]) nonpayable

Batch set facet functions from one or more facets

dev: Uses _registerFacets to apply all cuts. More efficient for setting up multiple facets in one tx.

Parameters

Name Type Description
facetCuts tuple[] Array of FacetCut structs (facet address + selectors per facet)
beginDefaultAdminTransfer(newAdmin: address) nonpayable
dev: Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event.

Parameters

Name Type Description
newAdmin address
burn(amount: uint256) nonpayable
dev: Wrapper around `decreaseSupply` to extend the API

Parameters

Name Type Description
amount uint256 The number of tokens to remove
cancelDefaultAdminTransfer() nonpayable
dev: Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event.
changeDefaultAdminDelay(newDelay: uint48) nonpayable
dev: Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.

Parameters

Name Type Description
newDelay uint48
decreaseApproval(spender: address, subtractedValue: uint256) nonpayable
dev: Decrease the amount of tokens that an owner allowed to a spender. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) instead of approve.

Parameters

Name Type Description
spender address
subtractedValue uint256

Returns

Name Type Description
bool True if successful
decreaseSupply(value: uint256) nonpayable
dev: Decreases the total supply by burning the specified number of tokens from the supply controller account.

Parameters

Name Type Description
value uint256

Returns

Name Type Description
success bool success A boolean that indicates if the operation was successful.
decreaseSupplyFromAddress(value: uint256, burnFromAddress: address) nonpayable

Decreases the total supply by burning the specified number of tokens. Can only be called by a supply controller. Function is marked virtual to aid in testing, but is never overridden on the actual token.

Parameters

Name Type Description
value uint256 The number of tokens to remove
burnFromAddress address Address to burn tokens from.

Returns

Name Type Description
success bool success A boolean that indicates if the operation was successful
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
increaseApproval(spender: address, addedValue: uint256) nonpayable
dev: Increase the amount of tokens that an owner allowed to a spender. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) instead of approve.

Parameters

Name Type Description
spender address
addedValue uint256

Returns

Name Type Description
bool True if successful
increaseSupply(value: uint256) nonpayable
dev: Increases the total supply by minting the specified number of tokens to the supply controller account.

Parameters

Name Type Description
value uint256

Returns

Name Type Description
success bool success A boolean that indicates if the operation was successful.
increaseSupplyToAddress(value: uint256, mintToAddress: address) nonpayable

Increases the total supply by minting the specified number of tokens to the supply controller account. Function is marked virtual to aid in testing, but is never overridden on the actual token.

Parameters

Name Type Description
value uint256 The number of tokens to add
mintToAddress address Address to mint tokens to.

Returns

Name Type Description
success bool success A boolean that indicates if the operation was successful
initialize(initialDelay: uint48, initialOwner: address, pauser: address, assetProtector: address, facetCuts: tuple[], claimSource: address, minRate: uint256, maxRate: uint256, v3Roles: tuple) nonpayable
dev: sets 0 initials tokens, the owner, and the supplyController. this serves as the constructor for the proxy but compiles to the memory model of the Implementation contract.

Parameters

Name Type Description
initialDelay uint48
initialOwner address
pauser address
assetProtector address
facetCuts tuple[]
claimSource address
minRate uint256
maxRate uint256
v3Roles tuple
initializeV3(facetCuts: tuple[], claimSource: address, minRate: uint256, maxRate: uint256, v3Roles: tuple) nonpayable
dev: Initialize V3 state with claimable rewards functionality AND register facets atomically. This ensures that facet functions work immediately after upgrade with no gap. V2→V3 UPGRADE COMPATIBILITY: This public function allows V2 contracts to be upgraded to V3 atomically.

Parameters

Name Type Description
facetCuts tuple[] Array of FacetCut structs mapping facet addresses to their selectors
claimSource address Address to use as claim source (where rewards come from)
minRate uint256 Minimum APR bound (10 decimals, e.g., 0 for no minimum)
maxRate uint256 Maximum APR bound (10 decimals, e.g., type(uint40).max for unlimited)
v3Roles tuple Struct containing addresses for V3 roles (multAdmin, multRateAdmin, etc.)
mint(account: address, amount: uint256) nonpayable
dev: Wrapper around `increaseSupplyToAddress` to extend the API

Parameters

Name Type Description
account address Address to mint tokens to
amount uint256 The number of tokens to add
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
rollbackDefaultAdminDelay() nonpayable
dev: Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event.
setFacet(selector: bytes4, facetAddress: address) nonpayable

Add or update a facet function

dev: Only admin can manage facets

Parameters

Name Type Description
selector bytes4 The function selector
facetAddress address The facet contract address (zero to remove)
transfer(to: address, value: uint256) nonpayable
dev: Transfer token to a specified address from msg.sender

Parameters

Name Type Description
to address
value uint256

Returns

Name Type Description
bool True if successful
transferFrom(from: address, to: address, value: uint256) nonpayable
dev: Transfer tokens from one address to another

Parameters

Name Type Description
from address
to address
value uint256

Returns

Name Type Description
bool True if successful
transferFromBatch(from: address[], to: address[], value: uint256[]) nonpayable
dev: Transfer tokens from one set of address to another in a single transaction.

Parameters

Name Type Description
from address[]
to address[]
value uint256[]

Returns

Name Type Description
bool True if successful
upgradeTo(newImplementation: address) nonpayable
dev: Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.

Parameters

Name Type Description
newImplementation address
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

AccountDeregistered(account: address, payoutGroupId: uint32, claimer: address)
Name Type Indexed Description
account address
payoutGroupId uint32
claimer address
AccountRegistered(account: address, payoutGroupId: uint32, claimer: address)
Name Type Indexed Description
account address
payoutGroupId uint32
claimer address
AdminChanged(previousAdmin: address, newAdmin: address)
Name Type Indexed Description
previousAdmin address
newAdmin address
Approval(owner: address, spender: address, value: uint256)
Name Type Indexed Description
owner address
spender address
value uint256
BeaconUpgraded(beacon: address)
Name Type Indexed Description
beacon address
ClaimAllExecuted(payoutGroupId: uint32, executor: address, destination: address, amount: uint256)
Name Type Indexed Description
payoutGroupId uint32
executor address
destination address
amount uint256
ClaimSourceSet(oldSource: address, newSource: address)
Name Type Indexed Description
oldSource address
newSource address
DefaultAdminDelayChangeCanceled()
DefaultAdminDelayChangeScheduled(newDelay: uint48, effectSchedule: uint48)
Name Type Indexed Description
newDelay uint48
effectSchedule uint48
DefaultAdminTransferCanceled()
DefaultAdminTransferScheduled(newAdmin: address, acceptSchedule: uint48)
Name Type Indexed Description
newAdmin address
acceptSchedule uint48
FacetUpdate(selector: bytes4, facet: address)
Name Type Indexed Description
selector bytes4
facet address
FreezeAddress(addr: address)
Name Type Indexed Description
addr address
FrozenAddressWiped(addr: address)
Name Type Indexed Description
addr address
FrozenRewardsLost(addr: address, payoutGroupId: uint32, rewards: uint256)
Name Type Indexed Description
addr address
payoutGroupId uint32
rewards uint256
Initialized(version: uint8)
Name Type Indexed Description
version uint8
MaturityPeriodSet(multiplierId: uint32, maturityPeriod: uint256)
Name Type Indexed Description
multiplierId uint32
maturityPeriod uint256
MultiplierCreated(multiplierId: uint32, apr: uint256, timestamp: uint256)
Name Type Indexed Description
multiplierId uint32
apr uint256
timestamp uint256
MultiplierDeleted(multiplierId: uint32)
Name Type Indexed Description
multiplierId uint32
MultiplierRateScheduled(multiplierId: uint32, newRate: uint256, scheduledTime: uint256)
Name Type Indexed Description
multiplierId uint32
newRate uint256
scheduledTime uint256
PartnerSignedRegistrationsEnabledSet(enabled: bool)
Name Type Indexed Description
enabled bool
Pause()
PayoutClaimerUpdated(payoutGroupId: uint32, oldClaimer: address, newClaimer: address)
Name Type Indexed Description
payoutGroupId uint32
oldClaimer address
newClaimer address
PayoutGroupCreated(payoutGroupId: uint32, claimer: address, multiplierId: uint32)
Name Type Indexed Description
payoutGroupId uint32
claimer address
multiplierId uint32
PayoutGroupDeleted(payoutGroupId: uint32, claimer: address)
Name Type Indexed Description
payoutGroupId uint32
claimer address
PayoutGroupDestinationSet(payoutGroupId: uint32, oldDestination: address, newDestination: address)
Name Type Indexed Description
payoutGroupId uint32
oldDestination address
newDestination address
PayoutGroupManagerSet(payoutGroupId: uint32, oldManager: address, newManager: address)
Name Type Indexed Description
payoutGroupId uint32
oldManager address
newManager address
PayoutGroupMultiplierUpdated(payoutGroupId: uint32, claimer: address, oldMultiplierId: uint32, newMultiplierId: uint32)
Name Type Indexed Description
payoutGroupId uint32
claimer address
oldMultiplierId uint32
newMultiplierId uint32
RateBoundsSet(minRate: uint256, maxRate: uint256)
Name Type Indexed Description
minRate uint256
maxRate uint256
ReferenceTimeUpdated(oldReferenceTime: uint40, newReferenceTime: uint40)
Name Type Indexed Description
oldReferenceTime uint40
newReferenceTime uint40
RegistrationAccepted(account: address, payoutGroupId: uint32)
Name Type Indexed Description
account address
payoutGroupId uint32
RegistrationProposalCancelled(account: address, payoutGroupId: uint32, proposer: address)
Name Type Indexed Description
account address
payoutGroupId uint32
proposer address
RegistrationProposed(account: address, payoutGroupId: uint32, proposer: address)
Name Type Indexed Description
account address
payoutGroupId uint32
proposer address
RewardsClaimed(account: address, payoutGroupId: uint32, recipient: address, amount: uint256)
Name Type Indexed Description
account address
payoutGroupId uint32
recipient address
amount uint256
RewardsClaimedBatch(payoutGroupId: uint32, executor: address, destination: address, totalAmount: uint256, accountCount: uint256)
Name Type Indexed Description
payoutGroupId uint32
executor address
destination address
totalAmount uint256
accountCount uint256
RewardsFrozen(addr: address, payoutGroupId: uint32, rewards: uint256)
Name Type Indexed Description
addr address
payoutGroupId uint32
rewards 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
SupplyControlSet(supplyControlAddress: address)
Name Type Indexed Description
supplyControlAddress address
SupplyDecreased(from: address, value: uint256)
Name Type Indexed Description
from address
value uint256
SupplyIncreased(to: address, value: uint256)
Name Type Indexed Description
to address
value uint256
Transfer(from: address, to: address, value: uint256)
Name Type Indexed Description
from address
to address
value uint256
UnfreezeAddress(addr: address)
Name Type Indexed Description
addr address
Unpause()
Upgraded(implementation: address)
Name Type Indexed Description
implementation address