Role Management

Role & Permissions

DEFAULT_ADMIN

The DEFAULT_ADMIN role serves as the highest administrative authority in the system, possessing complete control over role management and critical system parameters. This role can manage all other roles, control emergency functions, configure core system parameters, and execute privileged operations across all contracts. It is typically assigned to a secure multisig wallet or governance contract and cannot be renounced to prevent system lockup. A delay of three days must be observed before granting that role to a new address.

Role Holders: Usual Multisig

  • Add USD0 RWA (TokenMapping)

  • Unpause (AirdropDistribution, AirdropTaxCollector, DaoCollateral, DistributionModule, L2Usd0, L2Usd0PP, SwapperEngine, Usd0, USD0pp, Usual, UsualS, USUALSP, UsualX)

  • Activate/Deactivate CBR (DaoCollateral)

  • Set redeem fee (DaoCollateral)

  • Redeem DAO (DaoCollateral)

  • Unpause redeem/swap (DaoCollateral)

  • Set max depeg threshold (AbstractContract)

  • Initialize token oracle (ClassicalOracle, UsualOracle)

  • Set role admin (RegistryAccess)

  • Set contract (RegistryContract)

  • Update minimum USDC amount provided (SwapperEngine)

  • Emergency withdraw (USD0pp)

PAUSING_CONTRACTS_ROLE

The PAUSING_CONTRACTS_ROLE exists as an emergency control mechanism to halt contract operations when critical issues are detected. This role has the ability to pause functionality across multiple core contracts including token transfers, DAO collateral operations, and swapper engine activities. It serves as a first line of defense against potential exploits or system anomalies.

Role Holders: Usual Multisig

  • Pause ( DaoCollateral, DistributionModule, L2Usd0, L2Usd0PP, SwapperEngine, Usd0, USD0pp, Usual, UsualS, USUALSP, UsualX)

UNPAUSING_CONTRACTS_ROLE

The UNPAUSING_CONTRACTS_ROLE is crucial for resuming normal operations after an emergency pause has been enacted. This role ensures that, after thorough checks and validations, the systems and contract functionalities that were halted can be safely reactivated. It is critical for maintaining operational continuity and system integrity.

Role Holders: Usual Multisig

  • Unpause ( DaoCollateral, DistributionModule, L2Usd0, L2Usd0PP, SwapperEngine, Usd0, USD0pp, Usual, UsualS, USUALSP, UsualX)

USUAL_M_PAUSE

The USUAL_M_PAUSE role is dedicated to managing pause functions for wrapped m. Holders of this role have the authority to initiate emergency pauses, ensuring immediate response to critical threats or issues within the system's operations. This ability is essential for maintaining system security and operational stability during unforeseen events.

Role Holders: Usual Pauser

  • Pause (UsualM)

USUAL_M_UNPAUSE

The USUAL_M_UNPAUSE role is critical for resuming operations that were halted due to an emergency pause. Holders of this role can safely unpause the system once the underlying issues are addressed, ensuring that the system returns to normal operations without compromising security and stability.

Role Holders: Usual Multisig

  • Unpause (UsualM)

USUAL_M_UNWRAP

The USUAL_M_UNWRAP role is responsible for managing the unwrapping operations within the system. This involves managing the conversion of wrapped tokens back to their original form in a secure and efficient manner, ensuring liquidity and accessibility for stakeholders.

Role Holders: Usual Multisig

  • Unwrap (UsualM)

USUAL_M_MINTCAP_ALLOCATOR

The USUAL_M_MINTCAP_ALLOCATOR is responsible for managing the allocation of the minting cap within the system. This role ensures that minting operations are within the predefined limits, maintaining stability and preventing excessive token creation which could impact the market.

Role Holders: Usual Mintcap Multisig

  • setMintCap (UsualM)

NONCE_THRESHOLD_MANAGER

The NONCE_THRESHOLD_MANAGER is tasked with continuous monitoring and management of the nonce thresholds within the DAO collateral system. This role requires frequent adjustments based on transaction volume and emerging security requirements, ensuring robust protection against unauthorized transaction replays.

Role Holders: Usual Multisig

  • Monitor and adjust nonce thresholds (NonceManagement)

NONCE_THRESHOLD_SETTER_ROLE

The NONCE_THRESHOLD_SETTER_ROLE exists to manage the nonce threshold parameters in the DAO collateral system. This role is responsible for setting and adjusting the nonce threshold that determines the validity of swap intents, helping prevent replay attacks and ensuring transaction ordering in the RWA to STBC swap process.

Role Holders: Usual Multisig

  • Set nonce threshold (DaoCollateral)

INTENT_MATCHING_ROLE

The INTENT_MATCHING_ROLE exists to facilitate secure RWA to STBC token swaps in the DAO collateral system. This role is responsible for executing swap intents by matching off-chain orders with on-chain transactions, ensuring proper order execution and token transfers between parties. The role is typically assigned to trusted swap operators or automated market makers authorized by the Usual Multisig.

Role Holders: Swapper Engine Keeper

  • Swap RWA to STBC intent (DaoCollateral)

DISTRIBUTION_OPERATOR_ROLE

The DISTRIBUTION_OPERATOR_ROLE exists to manage the daily distribution of USUAL tokens across various protocol buckets and off-chain distributions. This role is responsible for executing the core token distribution mechanics, including calculating new emissions, distributing tokens to on-chain vaults (Usual+ and Usual*), and managing the off-chain distribution queue through merkle proofs. The role is typically assigned to an automated keeper managed.

Role Holders: Google KMS Service Account (Keeper)

  • Distribute USUAL to buckets (DistributionModule)

  • Queue off-chain USUAL distribution (DistributionModule)

  • Reset off-chain distribution queue (DistributionModule)

DISTRIBUTION_ALLOCATOR_ROLE

The DISTRIBUTION_ALLOCATOR_ROLE exists to manage the core economic parameters of the USUAL token distribution system. This role is responsible for configuring the distribution mechanics by setting emission rates, bucket allocations, and key distribution parameters that determine how USUAL tokens are distributed across different protocol components. The role has significant control over the tokenomics and must be carefully managed to ensure fair and efficient token distribution. It is typically assigned to a Usual Multisig under DAO oversight.

Role Holders: Usual DAO

  • Set buckets distribution (DistributionModule)

  • Set gamma (DistributionModule)

  • Set rate min (DistributionModule)

  • Set D (DistributionModule)

  • Set M0 (DistributionModule)

DISTRIBUTION_CHALLENGER_ROLE

The DISTRIBUTION_CHALLENGER_ROLE exists as a security mechanism to ensure the integrity of off-chain USUAL token distributions. This role has the authority to challenge and invalidate potentially incorrect or malicious distributions before they are finalized. It can challenge all distributions in the queue that are older than a specified timestamp and optionally propose new valid distributions with corrected merkle roots. The role serves as a critical safeguard against distribution errors or manipulation attempts and is typically assigned to the Usual Multisig.

Role Holders: Usual Multisig

  • Challenge distribution (DistributionModule)

BLACKLIST_ROLE

The BLACKLIST_ROLE exists as a security mechanism to protect the protocol from malicious actors, comply with regulatory requirements, and ensure rapid response to security incidents. This role has the authority to restrict specific addresses from participating in token transfers and protocol operations across multiple core contracts including L2USD0, L2USD0PP, USD0PP, USD0, USUAL, USUALS, and USUALX.

Role Holders: Usual Multisig

  • Blacklist/Unblacklist (L2Usd0, L2Usd0PP, USD0pp, Usd0, Usual, UsualS, UsualX)

USD0_MINT

The USD0_MINT role exists as a critical control mechanism for managing the supply of USD0 tokens in the system. This role has the authority to mint new USD0 tokens across multiple contracts including L2USD0, L2USD0PP, and USD0, but only when there is sufficient backing in the treasury. The role is typically assigned to the DAO Collateral contract and other protocol-controlled contracts to ensure automated and secure minting operations.

Role Holders: DAO Collateral Contract, SwapperEngine

  • Mint (L2Usd0, L2Usd0PP, Usd0)

USD0_BURN

The USD0_BURN role exists as a critical control mechanism for managing the supply of USD0 tokens in the system. This role has the authority to burn USD0 tokens across multiple contracts including L2USD0, L2USD0PP, and USD0, ensuring proper supply management and redemption functionality. The role is typically assigned to the DAO Collateral contract and SwapperEngine to enable automated burning operations during redemptions and swaps.

Role Holders: DAO Collateral Contract, SwapperEngine

  • Burn (L2Usd0, L2Usd0PP, Usd0)

  • Burn from (L2Usd0, L2Usd0PP, Usd0)

EARLY_BOND_UNLOCK_ROLE

The EARLY_BOND_UNLOCK_ROLE exists to manage early bond unlocking functionality in the USD0PP (USD0 Plus Plus) contract. This role is responsible for configuring and executing early bond release mechanisms, allowing authorized entities to set up special unlock periods and allocate early unlock balances for specific bond holders.

Role Holders: Usual Multisig

  • Allocate early unlock balance (USD0pp)

  • Setup early unlock period (USD0pp)

PEG_MAINTAINER_ROLE

The PEG_MAINTAINER_ROLE exists to maintain the USD0 peg through interactions with Curve pools and peg maintenance mechanisms. This role is responsible for triggering the Par mechanism on the USD0/USD0PP Curve pools in the case the peg is broken.

Role Holders: Usual Multisig

  • Trigger PAR mechanism Curvepool (USD0pp)

  • Unwrap peg maintainer (USD0pp)

USUAL_MINT

The USUAL_MINT role exists to control the minting of new USUAL tokens. This role has the authority to mint new USUAL tokens to specified addresses, ensuring that token supply expansion follows protocol rules and economic parameters. The role is typically assigned to the Distribution Module contract to handle automated emissions and rewards distribution.

Role Holders: Distribution Module Contract

  • Mint (Usual)

USUAL_BURN

The USUAL_BURN role exists as a critical control mechanism for managing the supply of USUAL tokens in the system. This role has the authority to burn USUAL tokens from any address, ensuring proper supply management during redemptions, liquidations, or other protocol operations that require token destruction. The role is typically assigned to protocol-controlled contracts.

Role Holders: N/A

  • Burn (Usual)

  • Burn from (Usual)

USUALS_BURN

The USUALS_BURN role exists as a critical control mechanism for managing the supply of USUALS tokens in the system. This role has the authority to burn USUALS tokens from any address. The role is typically assigned to protocol-controlled contracts that need to manage USUALS token supply, particularly during staking and unstaking operations.

Role Holders: USUALSP Contract

  • Burn (UsualS)

  • Burn from (UsualS)

USUALSP_OPERATOR_ROLE

The USUALSP_OPERATOR_ROLE exists to manage the staking and allocation mechanics of the USUALS token staking program. This role is responsible for configuring initial token allocations, managing the staking process, and handling original allocation removals in the USUALSP (USUAL Staking Pool) contract. The role has significant control over the staking parameters and must be carefully managed to ensure fair distribution and proper vesting of tokens.

Role Holders: Usual Multisig

  • Allocate (USUALSP)

  • Remove original allocation (USUALSP)

  • Stake UsualS (USUALSP)

WITHDRAW_FEE_UPDATER_ROLE

The WITHDRAW_FEE_UPDATER_ROLE exists to manage withdrawal fee parameters in the UsualX contract. This role is responsible for adjusting the fees charged when users withdraw their tokens, allowing the protocol to maintain economic stability and prevent exploitation of the withdrawal mechanism.

Role Holders: Usual Multisig

  • Update withdraw fee (UsualX)

FLOOR_PRICE_UPDATER_ROLE

The FLOOR_PRICE_UPDATER_ROLE exists to manage the minimum price threshold for USD0PP tokens in the system. This role is responsible for adjusting the floor price parameter that helps maintain price stability and protect token holders from excessive devaluation. The role has the authority to update floor prices in the USD0PP contract, which directly impacts the minimum value guarantee of the token.

Role Holders: Usual Multisig

  • Update floor price (USD0pp)

USD0PP_USUAL_DISTRIBUTION_ROLE

The USD0PP_USUAL_DISTRIBUTION_ROLE exists to manage the USUAL token distribution rate per USD0PP token. This role is responsible for adjusting the distribution rate parameter that determines how much USUAL is distributed per USD0PP token.

Role Holders: Usual Multisig

  • Update usualDistributionPerUsd0pp (USD0pp)

USD0PP_DURATION_COST_FACTOR_ROLE

The USD0PP_DURATION_COST_FACTOR_ROLE exists to manage the duration cost factor that affects early redemption costs. This role is responsible for adjusting the duration cost factor parameter that helps determine the USUAL burn amount required for early redemptions.

Role Holders: Usual Multisig

  • Update durationCostFactor (USD0pp)

USD0PP_TREASURY_ALLOCATION_RATE_ROLE

The USD0PP_TREASURY_ALLOCATION_RATE_ROLE exists to manage the percentage of burned USUAL that goes to the treasury during early redemptions. This role is responsible for adjusting the treasury allocation rate in basis points.

Role Holders: Usual Multisig

  • Update treasuryAllocationRate (USD0pp)

USD0PP_TARGET_REDEMPTION_RATE_ROLE

The USD0PP_TARGET_REDEMPTION_RATE_ROLE exists to manage the daily redemption target rate for USD0PP tokens. This role is responsible for adjusting the target redemption rate (in basis points of total supply) that affects the USUAL burn calculations for early redemptions.

Role Holders: Usual Multisig

  • Update targetRedemptionRate (USD0pp)

USD0PP_CAPPED_UNWRAP_ROLE

The USD0PP_CAPPED_UNWRAP_ROLE has certain responsibilities to ensure the stability and integrity of the protocol.

Role Holders: Usual Multisig, Joint Partner Vault Multisig, VaultRouter

  • unwrapWithCap(): Role holders can adjust the capped unwrap limits, which control the maximum amount of tokens that can be unwrapped in a certain period

REDIRECTION_ADMIN_ROLE

The REDIRECTION_ADMIN_ROLE is responsible for redirecting off-chain distribution from an account to a new account

Role Holders: Redirection Maintainers Multisig

  • redirection management of Offchain distribution: (DistributionModule)

YIELD_MODULE_MAX_DATA_AGE_ROLE

the YIELD_MODULE_MAX_DATA_AGE_ROLE is responsible for setting the maximum data age for the RWA data.

Role Holders: Usual Tokenomics Multisig

  • can manage maximum data age for yield module. (YieldModule)

YIELD_MODULE_P90_INTEREST_ROLE

The YIELD_MODULE_P90_INTEREST_ROLE is tasked with managing the P90 interest rate within the yield module.

Role Holders: Usual Tokenomics Multisig

  • can modify P90 interest settings within the YieldModule.

YIELD_MODULE_UPDATER_ROLE

The YIELD_MODULE_UPDATER_ROLE is responsible for making updates within the Yield Module.

Role Holders: Usual Tokenomics Multisig

  • Update Interest Rate to ensure accurate data.

  • Update yield data feed updates to various interest and yield settings.

YIELD_MODULE_TOKENOMICS_OPERATOR_ROLE

The YIELD_MODULE_TOKENOMICS_OPERATOR_ROLE is designed to manage and oversee the tokenomics aspect within the Yield Module.

Role Holders: Usual Tokenomics Multisig

  • Add yield data feed updates to various interest and yield settings.

YIELD_MODULE_SUPER_ADMIN_ROLE

The YIELD_MODULE_SUPER_ADMIN_ROLE encompasses comprehensive control over the Yield Module.

Role Holders: Usual Tokenomics Multisig

  • Remove yield data feed.

  • Manage the treasuries that are being used for the different calculations.

VAULT_SET_ROUTER_ROLE

The VAULT_SET_ROUTER_ROLE allows authorized entities to configure and manage router within the wrapped dollar vault system.

Role Holders: Usual Vault Router Multisig

  • Enabling or disabling vault for wrapped dollar vaults.

VAULT_PAUSER_ROLE

The VAULT_PAUSER_ROLE grants the authority to pause vault operations temporarily.

Role Holders: Usual Vault Admin Multisig

  • Halting all transactions to address emergency scenarios or unforeseen issues.

  • Safeguarding assets by preventing unauthorized access or fraud during a pause.

  • Ensuring system integrity and stability by providing a controlled cessation of operations when necessary.

VAULT_UNPAUSER_ROLE

The VAULT_UNPAUSER_ROLE is designated to resume vault operations after they have been paused.

Role Holders: Usual Vault Admin Multisig

  • Reactivating transactions once it is deemed safe and all issues have been resolved.

  • Restoring normal system functionality and access to vaults.

  • Collaborating with relevant parties to ensure a secure and well-managed transition back to normal operations.

FEE_SWEEPER_ROLE

The FEE_SWEEPER_ROLE can transfer the fees accumulating to the distribution module.

Role Holders: Yield treasury Multisig

  • Collecting and distributing accrued fees from vault or bond withdrawals.

FEE_RATE_SETTER_ROLE

The FEE_RATE_SETTER_ROLE plays a crucial role in managing the fee rates within the system.

Role Holders: Yield treasury Multisig

  • Alters the usualX, burn and treasury fee rate in basis points.

UNWRAP_CAP_ALLOCATOR_ROLE

the UNWRAP_CAP_ALLOCATOR_ROLE can update the unwrap USD0++ amount of a user

Role Holders: Usual unwrap cap Multisig

USUAL_***_MINTCAP_ALLOCATOR

Roles like USUAL_USDC_MINTCAP_ALLOCATOR, USUAL_M_MINTCAP_ALLOCATOR or USUAL_USDTB_MINTCAP_ALLOCATOR allows to set the mintcap for the corresponding tokens.

Role Holders: Usual mint allocator Multisig

  • set the maximum amount of token that can be minted.

WrappedDollarVault

  • VAULT_PAUSER_ROLE

    • can call pause

  • VAULT_UNPAUSER_ROLE

    • can call unpause

  • VAULT_SET_ROUTER_ROLE

    • can call setRouter

  • VAULT_HARVESTER_ROLE

    • can call harvest

  • VAULT_SET_FEE_ROLE

    • can call setWithdrawFeeRateBps

    • can call setHarvestFeeRateBps

YieldModule

  • YIELD_MODULE_SUPER_ADMIN_ROLE

    • can call removeTreasury

    • can call addTreasury

    • can call removeYieldSource

  • YIELD_MODULE_TOKENOMICS_OPERATOR_ROLE

    • can call addYieldSourceWithFeed

    • can call addYieldSourceWithWeeklyInterest

  • YIELD_MODULE_UPDATER_ROLE

    • can call updateInterestRate

    • can call updateFeed

  • YIELD_MODULE_P90_INTEREST_ROLE

    • can call setP90InterestRate

  • YIELD_MODULE_MAX_DATA_AGE_ROLE

    • can call setMaxDataAge

TokenMapping

  • DEFAULT_ADMIN_ROLE

    • can call addUsd0Rwa

DaoCollateral.sol

  • DEFAULT_ADMIN_ROLE

    • can call activateCBR

    • can call deactivateCBR

    • can call setRedeemFee

    • can call redeemDao

    • can call unpause

    • can call unpauseRedeem

    • can call unpauseSwap

  • PAUSING_CONTRACTS_ROLE

    • can call pause

    • can call pauseSwap

    • can call pauseRedeem

  • NONCE_THRESHOLD_SETTER_ROLE

    • can call setNonceThreshold

  • INTENT_MATCHING_ROLE

    • can call swapRWAtoStbcIntent

DistributionModule.sol

  • DEFAULT_ADMIN_ROLE

    • can call unpause

  • PAUSING_CONTRACTS_ROLE

    • can call pause

  • DISTRIBUTION_OPERATOR_ROLE

    • can call distributeUsualToBuckets

    • can call queueOffChainUsualDistribution

    • can call resetOffChainDistributionQueue

  • DISTRIBUTION_ALLOCATOR_ROLE

    • can call setBucketsDistribution

    • can call setGamma

    • can call setRateMin

    • can call setD

    • can call setM0

  • DISTRIBUTION_CHALLENGER_ROLE

    • can call challengeDistribution

  • DEFAULT_ADMIN_ROLE

    • can call unpause

  • PAUSING_CONTRACTS_ROLE

    • can call pause

  • BLACKLIST_ROLE

    • can call blacklist

    • can call unBlacklist

  • PAUSING_CONTRACTS_ROLE

    • can call pause

  • USD0_MINT

    • can call mint

  • USD0_BURN

    • can call burn

    • can call burnFrom

  • REDIRECTION_ADMIN_ROLE

    • can call acceptRedirectedOffChainDistribution

    • can call removeRedirectedOffChainDistribution

    • can call cancelInitiatedRedirectedOffChainDistribution

    • can call redirectOffChainDistribution

  • FEE_RATE_SETTER_ROLE

    • can call setFeeRates

L2Usd0PP.sol

  • DEFAULT_ADMIN_ROLE

    • can call unpause

  • PAUSING_CONTRACTS_ROLE

    • can call pause

  • PAUSING_CONTRACTS_ROLE

    • can call pause

  • USD0_MINT

    • can call mint

  • USD0_BURN

    • can call burn

    • can call burnFrom

AbstractContract.sol

  • DEFAULT_ADMIN_ROLE

    • can call setMaxDepegThreshold

ClassicalOracle.sol

  • DEFAULT_ADMIN_ROLE

    • can call initializeTokenOracle

UsualOracle.sol

  • DEFAULT_ADMIN_ROLE

    • can call initializeTokenOracle

RegistryAccess.sol

  • DEFAULT_ADMIN_ROLE

    • can call setRoleAdmin

RegistryContract.sol

  • DEFAULT_ADMIN_ROLE

    • can call setContract

SwapperEngine.sol

  • DEFAULT_ADMIN_ROLE

    • can call unpause

    • can call updateMinimumUSDCAmountProvided

  • PAUSING_CONTRACTS_ROLE

    • can call pause

  • DEFAULT_ADMIN_ROLE

    • can call blacklist

  • PAUSING_CONTRACTS_ROLE

    • can call pause

  • USD0_BURN

    • can call burn

    • can call burnFrom

  • USD0_MINT

    • can call mint

  • BLACKLIST_ROLE

    • can call blacklist

    • can call unBlacklist

USD0pp.sol

  • DEFAULT_ADMIN_ROLE

    • can call unpause

    • can call emergencyWithdraw

  • PAUSING_CONTRACTS_ROLE

    • can call pause

  • PAUSING_CONTRACTS_ROLE

    • can call pause

  • EARLY_BOND_UNLOCK_ROLE

    • can call allocateEarlyUnlockBalance

    • can call setupEarlyUnlockPeriod

  • PEG_MAINTAINER_ROLE

    • can call triggerPARMechanismCurvepool

    • can call unwrapPegMaintainer

  • FLOOR_PRICE_UPDATER_ROLE

    • can call updateFloorPrice

  • USD0PP_USUAL_DISTRIBUTION_ROLE

    • can call setUsualDistributionPerUsd0pp

  • USD0PP_DURATION_COST_FACTOR_ROLE

    • can call setDurationCostFactor

  • USD0PP_TREASURY_ALLOCATION_RATE_ROLE

    • can call setTreasuryAllocationRate

  • USD0PP_USUAL_BURN_TARGET_REDEMPTION_ROLE

    • can call setTargetRedemptionRate

  • FEE_SWEEPER_ROLE

    • can call sweepFees

Usual.sol

  • DEFAULT_ADMIN_ROLE

    • can call unpause

  • PAUSING_CONTRACTS_ROLE

    • can call pause

  • BLACKLIST_ROLE

    • can call blacklist

    • can call unBlacklist

  • USUAL_MINT

    • can call mint

  • USUAL_BURN

    • can call burn

    • can call burnFrom

UsualS.sol

  • DEFAULT_ADMIN_ROLE

    • can call unpause

  • PAUSING_CONTRACTS_ROLE

    • can call pause

  • BLACKLIST_ROLE

    • can call blacklist

    • can call unBlacklist

  • USUALS_BURN

    • can call burn

    • can call burnFrom

USUALSP.sol

  • DEFAULT_ADMIN_ROLE

    • can call unpause

  • PAUSING_CONTRACTS_ROLE

    • can call pause

  • USUALSP_OPERATOR_ROLE

    • can call allocate

    • can call removeOriginalAllocation

    • can call stakeUsualS

UsualX.sol

  • DEFAULT_ADMIN_ROLE

    • can call unpause

  • PAUSING_CONTRACTS_ROLE

    • can call pause

  • BLACKLIST_ROLE

    • can call blacklist

    • can call unBlacklist

  • WHITELIST_ROLE

    • can call whitelist

    • can call unWhitelist

  • WITHDRAW_FEE_UPDATER_ROLE

    • can call updateWithdrawFee

  • FEE_SWEEPER_ROLE

    • can call sweepFees

USUALM.sol

The USUALM contract includes specific roles designed to manage particular functionalities and maintain the security and efficiency of the platform.

  • USUAL_M_UNPAUSE

    • can call unpause

  • USUAL_M_PAUSE

    • can call pause

  • BLACKLIST_ROLE

    • can call blacklist

    • can call unblacklist

  • USUAL_M_MINTCAP_ALLOCATOR

    • can call setMintCap

  • USUAL_M_UNWRAP

    • can call unwrap


ETH0 Role Management

MINT_CAP_OPERATOR

The MINT_CAP_OPERATOR role is pivotal in controlling the minting activities for specific tokens. Holders of this role are empowered to adjust the cap on the amount of new tokens that can be minted within a certain period, ensuring that the minting process remains within defined limits to maintain token stability and prevent inflationary pressures.

Role Holders: Token Governance Multisig

  • Update mintCap

  • Monitor compliance with minting policies

  • Enforce minting restrictions if caps are breached

BLACKLIST_ROLE

The BLACKLIST_ROLE exists as a security mechanism to protect the protocol from malicious actors, comply with regulatory requirements, and ensure rapid response to security incidents. This role has the authority to restrict specific addresses from participating in token transfers and protocol operations across multiple core contracts including L2USD0, L2USD0PP, USD0PP, USD0, USUAL, USUALS, and USUALX.

Role Holders: Usual Multisig

  • Blacklist/Unblacklist (ETH0)

ETH0_MINT

The ETH0_MINT role exists as a critical control mechanism for managing the supply of ETH0 tokens in the system. This role has the authority to mint new ETH0 tokens across multiple contracts including ETH0, but only when there is sufficient backing in the treasury. The role is typically assigned to the DAO Collateral contract to ensure automated and secure minting operations.

Role Holders: DAO Collateral Contract

  • Mint (ETH0)

ETH0_BURN

The ETH0_BURN role exists as a critical control mechanism for managing the supply of ETH0 tokens in the system. This role has the authority to burn ETH0 tokens across multiple contracts including ETH0, ensuring proper supply management and redemption functionality. The role is typically assigned to the DAO Collateral contract to enable automated burning operations during redemptions and swaps.

Role Holders: DAO Collateral Contract

  • Burn (ETH0)

  • Burn from (ETH0)

DaoCollateral.sol

  • DEFAULT_ADMIN_ROLE

    • can call activateCBR

    • can call deactivateCBR

    • can call setRedeemFee

    • can call redeemDao

  • PAUSING_CONTRACTS_ROLE

    • can call pause

    • can call pauseSwap

    • can call pauseRedeem

  • UNPAUSING_CONTRACTS_ROLE

    • can call unpause

    • can call unpauseRedeem

    • can call unpauseSwap

  • NONCE_THRESHOLD_SETTER_ROLE

    • can call setNonceThreshold

Last updated

Was this helpful?