User Journey
Introduction to the User Journey
The USDAO Borrowing Protocol is a platform for issuing stablecoin (USDAO) by locking collateral (RP). This documentation outlines the user experience at each stage, focusing on actions, interactions, and expected outcomes.
User Types
The protocol primarily serves two types of users:
Borrowers: Users who create Vaults to lock RP and borrow USDAO.
Liquidators: Users who monitor and liquidate under-collateralized Vaults for a reward.
User Journey Stages
Stage 1: Accessing the Protocol
Action: The user visits the USDAO platform interface (via dApp or web interface).
Requirement: Connect an Ethereum wallet (e.g., MetaMask) to interact with the protocol.
Outcome: The connected wallet is recognized, displaying the user’s Vault status (if any).
Stage 2: Creating a Vault
Action: The user initiates the creation of a Vault.
Process:
Specify the amount of RP to lock as collateral.
Specify the desired USDAO amount (ensuring the collateralization ratio exceeds 110%).
Provide the maximum acceptable fee percentage.
Function Call:
openVault(uint _maxFeePercentage, uint _USDAOAmount, uint256 _rptnIn, address _upperHint, address _lowerHint)
Outcome: A Vault is created, and the USDAO tokens are issued to the user’s wallet.
Stage 3: Managing the Vault
Add Collateral: Increase RP collateral to improve the collateralization ratio.
Function Call:
addRPTN(uint256 _rptnIn, address _upperHint, address _lowerHint)
Withdraw Collateral: Remove excess collateral if the collateralization ratio remains above the minimum.
Function Call:
withdrawRPTN(uint _collWithdrawal, address _upperHint, address _lowerHint)
Borrow More USDAO: Increase the debt if the collateralization ratio permits.
Function Call:
withdrawUSDAO(uint _maxFeePercentage, uint _USDAOAmount, address _upperHint, address _lowerHint)
Repay USDAO: Reduce or clear the Vault’s debt.
Function Call:
repayUSDAO(uint _USDAOAmount, address _upperHint, address _lowerHint)
Outcome: Users maintain or adjust their Vault to suit financial goals while avoiding liquidation.
Stage 4: Liquidation Risk and Monitoring
Risk Awareness: The platform informs users if their Vault approaches the minimum collateralization ratio (110%).
Real-Time Updates: The RP:USD price is updated through the oracle, affecting Vault health.
Function Call for ICR Check:
getCurrentICR(address _user, uint _price)
Outcome: Users proactively add collateral or repay debt to avoid liquidation.
Stage 5: Liquidation (for Liquidators)
Monitoring: Liquidators monitor under-collateralized Vaults.
Action: Call liquidation functions to claim rewards.
liquidate(address _borrower)
– Liquidates a single under-collateralized Vault.batchLiquidateVaults(address[] calldata _VaultArray)
– Liquidates multiple Vaults in one transaction.
Reward: Liquidators receive 200 USDAO plus 0.5% of the Vault’s collateral for each liquidation.
Stage 6: Recovery Mode
Trigger: Recovery Mode activates when the total collateralization ratio (TCR) drops below 125%.
Restrictions: Borrowers cannot reduce their collateralization ratio further.
Incentives: Recovery Mode encourages users to add collateral or repay debt to restore system stability.
User Interface Flow
Home Dashboard: Displays key metrics like TCR, user Vault status, and recent activity.
Vault Management: Easy access to functions for adding collateral, withdrawing collateral, borrowing, and repaying USDAO.
Liquidation Monitoring: Tools for liquidators to track vulnerable Vaults.
Notifications: Real-time alerts for critical events such as collateral price changes or approaching liquidation thresholds.
Expected User Behaviors
Borrowers are expected to monitor their Vaults and maintain a healthy collateralization ratio.
Liquidators play a critical role in maintaining protocol stability by acting on liquidation opportunities.
Users should understand gas costs and plan transactions during low network congestion for cost-efficiency.
Last updated