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:

Source
Accrues To
Description

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