Protocol Safety

A description of the various protocol safety measures spread out across all components, presented here in a unified view.

Rate Limits for Redemptions, and Loan Origination

The protocol implements rate limiting mechanisms for redemptions and loan originations, as well as various controls for settings such as: min/max interest settings for loans/redemptions, and a redemption timeout fee. These mechanisms help manage system risk and prevent sudden large-scale actions that could destabilize the protocol.

In particular, the rate limits allow the creation of a much more fine grained 'protocol usage' metric, which can feed useful fee data into the oracles (which themselves provide fee recommendations back to the protocol core).

Redemption Rate Limits

  1. Redemption Points: The system uses a point-based system to limit redemptions.

    • There's a maximum number of redemption points (maxRedemptionPoints).

    • Available redemption points regenerate over time up to the maximum.

  2. Regeneration:

    • Points regenerate at a set rate per minute (redemptionRegenerationRate).

    • The current available points can be calculated using redemptionPointsAt()

  3. Consumption:

    • Redemptions consume these points.

    • If a redemption would exceed available points, it's rejected.

    • 1 redemption point is equal to one nominal USDx, regardless of market price.

  4. Cooldown and Grace Period:

    • There's a cooldown period between redemptions (redemptionCooldownPeriod).

    • A grace period (redemptionGracePeriod) allows redemptions shortly after the cooldown without penalty.

    • Redemptions after the grace period incur a timeout fee (redemptionsTimeoutFeePct).

    • Once a redemption is queued, it must be executed after the cooldown period, or else there would be no penalty for repeating redemption attempts.

Loan Origination Rate Limits

  1. Loan Points: Similar to redemptions, loan originations use a point-based system.

    • Maximum loan points (maxLoanPoints) set the upper limit.

    • Available loan points regenerate over time.

  2. Regeneration:

    • Points regenerate at a set rate per minute (loanRegenerationRate).

    • Current available points can be calculated using loanPointsAt().

  3. Consumption:

    • Loan originations consume these points.

    • If a loan would exceed available points, it's rejected.

    • 1 loan point is equal to one nominal USDx, regardless of market price.

  4. Cooldown and Grace Period:

    • There's a cooldown period between loan origination and claiming(loanCooldownPeriod).

    • During the loan cooldown period, issued USDx is held in escrow, and can only be unlocked following the lockup period.

    • During the lockup, if a users position fails to meet the minimum (or critical in the case of recovery mode) collateral ratio, then the claim functionality becomes a 'Self Liquidate' action. Triggering self liquidation will result in all funds being returned to the loan issuance contract, for later burning or fee collection.

    • A grace period (loanGracePeriod) is present to prevent funds becoming blocked in a users account. Before the grace period, only the originator can claim/liquidate, but after the grace period, fee stakers have an incentive to claim/liquidate on their behalf.

Administrative Controls on a per Collateral Type Basis

  1. Debt Cap: a maximum debt cap for each collateral type can be set. This is distinct from the loan points, because it acts as an absolute cap on debt rather than a rate limiting cap.

  2. Collateral Requirements:

    • Minimum Collateral Ratio (MCR) and Critical Collateral Ratio (CCR) can be set.

    • These control the minimum collateralization levels for positions, and the threshold after which recovery mode kicks in.

  3. Fee Settings:

    • minimum and maximum fees for both borrowing and redemptions.

    • A base rate system allows for dynamic fee adjustments, which is independent of explicit fee settings.

  4. Collateral Lifecycle Management:

    • Collateral types go through stages: commissioning, active, decommissioned, and sunset.

    • The commissioning period is a 3 day window.

    • Each stage has different restrictions and capabilities.

      • Commissioning: Staged, but not active.

      • Active: Normal operation

      • Decommissioned: 3 month window during which debt can only be drawn down. This gives users a chance to gracefully exit positions

      • Sunset: Deactiviated. In this case, collateral still in the system is considered orphaned, and can be collected by the protocol Guardian.

  5. Point System Management:

    • Adjustments for max points, regeneration rates, and available points for both redemptions and loans.

These rate limiting mechanisms allow for fine-tuned management of the system's risk and liquidity, helping to ensure stability and prevent potential exploits or sudden liquidity crises.

Loan Clawbacks for Bad Debt

As part of the protection measures put in place to facilitate the inclusion of more volatile assets, USDx features a loan clawback mechanism which prevents price manipulation which aims to secure a higher than 'fair' value for collateral deposited for the purposes of loan origination.

  1. Escrow Period: When a user borrows USDx against their collateral, the borrowed amount may be subject to an escrow period. During this time, the stablecoins are held in escrow rather than being immediately available to the borrower.

  2. Cooldown Requirement: The system enforces a "loan cooldown" period, which is the minimum duration the borrowed USDx must remain in escrow.

  3. Claiming Process: After the cooldown period expires, borrowers can initiate a claim to access their borrowed USDx. However, the success of this claim depends on several factors: a. Recovery Mode: If the system is in Recovery Mode (a state triggered by low collateralization ratios), claims must satisfy the current CCR (Critical Collateral Ratio setting). b. When not in recovery mode, the Individual Collateralization Ratio (ICR): The borrower's position must maintain a healthy collateralization ratio to successfully claim the escrowed stablecoins. USDx generated against a liquidatable position are NOT claimable. c. Grace Period: There's a short grace period after the cooldown expires during which only the original borrower can claim the escrowed stablecoins. After this period, anyone can claim/clawback the funds.

  4. Clawback Conditions: If a borrower's position becomes undercollateralized or if market conditions deteriorate significantly, the protocol may "claw back" the escrowed USDx. In this case: a. The escrowed USDx are not released to the borrower. b. Instead, they are redirected to the protocol's contracts.

  5. Reward Distribution: Any clawed-back USDX that are not burned may be distributed as rewards/fee income to ORX stakers at the discretion of the protocol guardian.

Last updated