Skip to content

Redemption

The redemption system provides two execution paths based on AssetReserve liquidity availability, ensuring users maintain continuous access to their collateral.

RedemptionFlow

NUSD redemption process flow

Instant Redemption

The primary redemption path, executed when AssetReserve holds sufficient collateral to immediately fulfill requests.

Process Flow

Initiation

User calls redeem() on Router.sol with parameters:

  • NUSD amount to redeem
  • Desired collateral asset
  • Beneficiary address

Liquidity Verification

  • Router queries AssetReserve liquidity status
  • Executes quoteRedemption() to validate collateral availability
  • Routes to appropriate Redeemer contract upon confirmation

Valuation & Calculation

The Redeemer contract performs:

  • Fair market value determination for NUSD-to-collateral conversion
  • Output calculation considering:
    • Slippage protection: order.collateralAmount as minimum output
    • Rate limiting: Enforces maxRedeemPerBlock constraints

NUSD Burning

  • Redeemer executes burn() on NUSD.sol contract
  • User's NUSD removed from total supply
  • Transaction atomically reduces circulating NUSD

Collateral Release

  • Router calls processRedemption() on AssetReserve
  • Collateral transfers to beneficiary address

Queued Redemption

Alternative path activated when requested collateral temporarily exceeds available AssetReserve liquidity.

Process Flow

Initiation & Liquidity Assessment

  • User initiates standard redemption via Router.sol
  • Router detects insufficient collateral for immediate execution

Request Queuing

  • User's NUSD transferred to Router contract for custody
  • Router generates redemption Order with:
    • Unique request ID (auto-incremented)
    • Status: PENDING
    • Storage in redemptionRequests mapping

Keeper Monitoring

Authorized keepers (REDEMPTION_KEEPER_ROLE) monitor and execute:

  • Track AssetReserve liquidity replenishment
  • Identify serviceable pending requests
  • Call serveRedemptionRequest() with request ID

Deferred Execution

Upon keeper activation:

  • Router retrieves queued Order details
  • Executes standard redemption flow using custodied NUSD
  • Redeemer performs oracle valuation and burning
  • AssetReserve releases collateral to original beneficiary
  • Updates request status to COMPLETED

System Guarantees

This dual-path architecture ensures:

  • Liquidity Efficiency: Instant redemptions when possible
  • Redemption Certainty: Queued system guarantees eventual execution
  • Transparency: All pending requests tracked onchain
  • Protocol Stability: Rate limits prevent liquidity runs

The system prioritizes user experience while maintaining protocol solvency, creating a robust redemption infrastructure that adapts to varying liquidity conditions.

The content on this page is for general informational and illustrative purposes only and does not constitute legal, tax, or investment advice. Information may be incomplete, outdated, or subject to change without notice. No reliance should be placed on the accuracy or completeness of any material presented. Past performance is not indicative of future results. Always consult your own legal, tax, and financial advisors before making any decisions.