pawUSDC — Technical Specification
Token Type: ERC-20 Symbol: pawUSDC Backing Asset: USDC (1:1+ USDC) Exchange Rate: Variable, accrues yield Primary Role: Lending pool LP token and settlement asset for UBS system-wide borrowing
🧮 Minting Logic
Users deposit native USDC into the protocol.
Receive 1:1 pawUSDC at time of mint/depends on the exchange rate.
Global Exchange Rate starts at 1.00 and increases with net yield.
Exchange Rate is stored and updated per epoch block.
ExchangeRate = TotalBackingUSDC / TotalSupply_pawUSDC
📈 Yield Accrual & Backing Growth
pawUSDC increases in value as yield flows into its backing pool.
Yield Sources:
Borrowing Interest
pawUSDC Backing
70% of all UBS borrow interest flows here
Liquidation Fees
pawUSDC Backing
70% of liquidation fee from vault positions
Redemption Fees
pawUSDC Backing
100% of pawUSDC redemption fees (e.g. 0.25%)
Other
pawUSDC Backing
Partner incentives routed to LP pool or other sources...
🏦 Lending Pool Characteristics
pawUSDC represents shares in a centralized USDC pool used across MeowFi UBS.
Pool Stats (exposed on UI/on-chain):
Total Supplied USDC
Total Borrowed
Utilization Ratio
Lending APY (derived from interest flows)
Exchange Rate (USDC / pawUSDC)
🔐 Risk Parameters & Controls
LTV Model:
Default LTV: 70%
Liquidation Threshold: 71%
Liquidation Penalty: Defined per vault
Collateral Management:
Collateral accepted: NFT Receipts, LP tokens
Collateral value derived via Oracle + Vault Yield
Supports top-up / withdrawal of collateral
Health Factor updated dynamically per position
🧮 Oracle Integration
pawUSDC requires redemption-rate oracle support for integrations and pricing:
Oracle Format: getExchangeRate() on-chain + REST endpoint
Supported: Pyth (WIP), Switchboard (simulated or crate-based)
Oracle Price = ExchangeRate * 1e18 (scaled)
💸 Redemption Logic
Users may redeem pawUSDC → USDC at current Exchange Rate
Redemption Fee = 0.25% (configurable)
Redeemable: USDC_out = pawUSDC_amount × ExchangeRate × (1 - 0.0025)
All redemption fees go to pawUSDC backing
⚙️ Withdraw Controls
To prevent liquidity crunches:
Withdraw limits apply based on Utilization Ratio
Max withdrawal per txn capped if pool >80% utilized
Admin override possible for emergency withdrawal disable
🔐 Caps & Safeguards
Per-Vault Max Borrow Caps prevent one vault from draining the entire USDC pool
Global Borrow Cap ensures no overexposure
Reserve Factor: Defined per vault/pool, e.g., 5-10% retained for redemptions
🔍 Dev Tooling
Contract: PawUSDC.sol (ERC-20 + custom rate logic)
View Functions:
getExchangeRate()
getUtilizationRate()
getBackingBalance()
getTotalBorrowed()
Events:
Minted(address, amount)
Redeemed(address, amount)
ExchangeRateUpdated(uint256)
🧠 Notes
pawUSDC is an appreciating asset and not pegged to 1 USDC but starts at 1:1 and only increases in value
There is no rebasing; all value accrual is via exchange rate mechanics
Lending interest = dynamic; always derivable via protocol performance
Liquidity providers are never diluted; value tracks real-time earnings
Last updated