# USDB Peg

**USDB** is a USD-pegged stablecoin issued by **Bucket**.\
The peg targets **$1** and is supported on-chain by two components that work with open markets:

* **Peg Stability Module (PSM)** — a trustless 1:1 conversion rail between USDB and supported stablecoins, subject to a PSM fee.
* **Market arbitrage** — traders buy/sell across venues to close any price gap around $1.

***

### Peg Stability Module (PSM)

**What it does**

* Enables **1:1 conversions** between USDB and supported stablecoins.
* A **PSM fee** applies.

**Supported assets and fees**

<table><thead><tr><th width="260.60546875">Direction</th><th>Asset</th><th>Fee</th></tr></thead><tbody><tr><td>PSM IN (stablecoin -> USDB)</td><td>USDC</td><td>0%</td></tr><tr><td>PSM IN (stablecoin -> USDB)</td><td>suiUSDT</td><td>0.05%</td></tr><tr><td>PSM OUT (USDB -> stablecoin)</td><td>USDC, suiUSDT</td><td>0.30%</td></tr></tbody></table>

***

### Price Stability & Arbitrage

Let:

* `price_usdb` = USDB market price (USD) on DEX
* `fee_in` = PSM IN fee
* `fee_out` = PSM OUT fee

#### Scenario A — Upward depeg (USDB > $1)

1. Acquire USDB near $1 via **PSM IN** using a supported stablecoin.
2. Sell USDB on the market at `price_usdb > 1`.
3. **Gross spread per USDB**\
   Spread\_up ≈ `price_usdb` - (1 + `fee_in`)
4. **Break-even check**\
   `price_usdb` > 1 + `fee_in` + (gas + slippage)
5. As selling pressure increases, `price_usdb` converges toward $1.

#### Scenario B — Downward depeg (USDB < $1)

1. Buy USDB on the market at `price_usdb < 1`.
2. Exit via **PSM OUT** to a supported stablecoin at \~$1 minus `fee_out`.
3. **Gross spread per USDB**\
   Spread\_down ≈ (1 - `fee_out`) - `price_usdb`
4. **Break-even check**\
   `price_usdb` < 1 - `fee_out` - (gas + slippage)
5. As buying pressure increases, `price_usdb` converges toward $1.

### Flash-mint assisted arbitrage&#x20;

For capital efficiency, advanced users can use **Flash Mint** to source and retire USDB within one transaction, pairing the opposite leg through PSM or market liquidity to capture `Spread_up` or `Spread_down` as above.
