> For the complete documentation index, see [llms.txt](https://docs.mydiscocats.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mydiscocats.com/infrastructure/pawusdc/pawusdc-technical-specification.md).

# 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
