The first stablecoin backed by tokenized equities, with liquidation-free leverage. Powered entirely by xStocks.
Paragon splits tokenized equities (xStocks) into two complementary financial primitives:
- paraUSD — a stablecoin pegged to $1, backed by a diversified basket of tokenized equities
- Leveraged tokens (paraSPY, paraQQQ, ...) — per-stock leveraged exposure with no liquidation, no funding rates, and no active position management
One vault. One stablecoin. Multiple leveraged tokens. All powered by xStocks as the reserve asset.
All deposited xStocks go into a single shared multi-collateral vault. The vault maintains internal sub-pools — one per supported xStock — each tracking its own collateral, paraUSD debt, and leveraged token supply.
The core invariant:
Pool TVL = paraUSD Supply × $1 + Σ(paraToken Supply × paraToken Price)
- When xStock prices rise → paraUSD stays at $1, extra value flows to leveraged tokens (amplified gains)
- When xStock prices fall → leveraged tokens absorb the loss, protecting paraUSD's peg (no liquidation — holders can ride it out)
Leverage per sub-pool is dynamic (target 3x, range 2x–5x) and adjusts automatically based on price movements and user activity.
| Action | What Happens | Effect on Leverage |
|---|---|---|
| Standard Mint | Deposit xStock → receive paraUSD + leveraged token (dynamic 50/50 split targeting 3x) | Pushes toward 3x |
| Leverage-Only Mint | Deposit xStock → receive only leveraged token | Decreases leverage (2x floor enforced) |
| Stable-Only Mint | Deposit xStock → receive only paraUSD | Increases leverage |
| paraToken Redeem | Burn leveraged tokens → receive xStock at current value | Changes leverage for remaining holders |
| paraUSD Redeem | Burn paraUSD → receive $1 worth of xStock (peg enforcement via arbitrage) | Increases leverage |
| Balanced Redeem | Return both tokens in correct ratio → receive xStock | Clean round-trip |
Paragon uses dynamic fees to keep each sub-pool's leverage within the 2x–5x target range. Actions pushing leverage in the wrong direction get expensive; actions pushing it the right way get cheap.
| Parameter | Value | Description |
|---|---|---|
| Base fee | 0.5% (50 bps) | Starting fee in healthy conditions |
| Max fee | 5% (500 bps) | Upper bound after leverage penalties and CR multiplier |
| Max CR multiplier | 3x | Mode 1 can scale fees up to 3x as system collateral weakens |
| Mode 3 bounty | 1%–10% | Treasury-funded reward for beneficial actions in deep stress |
Leverage too high (approaching 5x):
Standard mint: HIGH (creates more paraUSD → harmful)
Leverage-only mint: LOW (adds leveraged capital → helpful)
paraUSD redeem: LOW (removes paraUSD → helpful)
paraToken redeem: HIGH (removes leveraged capital → harmful)
Healthy range (2x–5x):
All fees: BASE RATE (0.5%)
Leverage too low (approaching 2x):
Standard mint: LOW (creates paraUSD → helpful)
Leverage-only mint: HIGH/BLOCKED (would push leverage lower)
paraUSD redeem: HIGH (removes paraUSD → harmful)
paraToken redeem: LOW (removes leveraged capital → helpful)
| Recipient | Share | Purpose |
|---|---|---|
| Stability pool stakers | 70% | Yield for staked paraUSD holders |
| Treasury | 30% | Crisis buffer for recapitalization |
paraUSD holders can stake in the stability pool to earn yield from protocol fees. Stakers receive sParaUSD (ERC-4626 receipt token) representing their pro-rata share.
| Parameter | Value |
|---|---|
| Staker yield share | 70% of all protocol fees |
| Stake lock-up | 4 days (resets per stake) |
| Exhausted threshold | 100 paraUSD |
Risk: During Stability Mode 2 (CR < 115%), staked paraUSD may be converted to leveraged tokens to restore the collateral ratio. This is a pre-agreed risk/reward tradeoff, not liquidation.
The protocol uses a three-tier system based on the system-wide collateral ratio (CR):
System CR = Total Pool TVL / Total paraUSD Supply × 100%
| Mode | CR Range | Response |
|---|---|---|
| Normal | ≥ 125% | Base fees, normal operation |
| Mode 1 — Fee Controls | 115%–125% | Fees scale up to 3x via continuous CR multiplier |
| Mode 2 — Stability Pool Drawdown | 105%–115% | Staked paraUSD converted to leveraged tokens (burns paraUSD supply + adds leveraged capital) |
| Mode 3 — Treasury Recapitalization | < 105% | Treasury bounties for beneficial actions; direct market buys as last resort |
The worst single-day NASDAQ 100 drop in modern history was ~12%. With a 125% CR threshold, Paragon has a significantly larger safety margin than crypto-native protocols like Hylo (SOL collateral, 150% threshold, worst-case 1-day drop of ~33%).
| Metric | Hylo (SOL) | Paragon (SPY/QQQ) |
|---|---|---|
| 1-day 99.9% VaR | -32.95% | -8.59% |
| Mathematical min CR | 149.2% | 109.4% |
| Actual CR threshold | 150% | 125% |
| Safety buffer | ~0.8pp | ~15.6pp |
- CoinGecko tracks xStock secondary market prices 24/7 (covers weekends/off-hours when traditional markets are closed)
- A keeper bot pushes prices on-chain every 60 seconds
- 72-hour staleness threshold — all mint/redeem operations halt if the keeper stops updating
- Oracle interface is abstracted (
IPriceOracle) — upgradeable to Pyth/Chainlink on mainnet with a one-line adapter swap
All contracts are deployed on Ink Sepolia (Chain ID: 763373).
Explorer: https://explorer-sepolia.inkonchain.com
| Contract | Address | Explorer |
|---|---|---|
| SPYx | 0x87182C7DB0733c82A748D8160a9F69C8b00dB603 |
View |
| QQQx | 0x393970983E53B22a6CD6Ba44862f6df3356F5336 |
View |
| Contract | Address | Explorer |
|---|---|---|
| SPY Oracle | 0xAef2ebC293d35f8987bC7D888A6D631eFe92a923 |
View |
| QQQ Oracle | 0x38A05A2D3dD05F4234F2ed43Ba60F3FaeC31b3D4 |
View |
| Contract | Address | Explorer |
|---|---|---|
| Vault | 0x2d8B75B6843f342809F12F1d9bc5Cb55faFe6259 |
View |
| paraUSD | 0x2E49C550bb58161627a19EE8F652dDB67244dfaC |
View |
| Stability Pool | 0x95e43D87aAdDDb819217FfD8D0910CE977C03E65 |
View |
| sParaUSD | 0x13Ae5252F3fA4Da8dF1654645E14BcF9b0F0B221 |
View |
| Contract | Address | Explorer |
|---|---|---|
| paraSPY | 0x1b9d0D4D5432AA77864840e0D134e34289d8E712 |
View |
| paraQQQ | 0xC40e6273b445064A9895655a73608bfa8752386f |
View |
| Contract | Role |
|---|---|
Vault.sol |
Holds all xStocks. Sub-pool accounting, minting, redeeming, leverage enforcement |
ParaUSD.sol |
Shared ERC-20 stablecoin, only vault can mint/burn |
LeveragedAssetToken.sol |
Base for per-stock leveraged tokens (paraSPY, paraQQQ) |
FeeCalculator.sol |
Dynamic fee engine — asymmetric quadratic curves around 3x optimal |
StabilityPool.sol |
paraUSD staking, fee distribution, Mode 2 conversions |
StabilityPoolShare.sol |
sParaUSD receipt token (ERC-4626) |
CoinGeckoOracleAdapter.sol |
On-chain oracle fed by keeper bot |
MockXStock.sol |
Testnet tokens replicating Backed Finance's shares-based rebasing |
- Framework: Next.js (App Router) + TailwindCSS + shadcn/ui
- Wallet: Privy auth + Wagmi + Viem
- Pages: Markets overview, individual market detail with simulator, portfolio P&L tracker, stability pool staking (earn), system dashboard, docs
| Route | Description |
|---|---|
/ |
Homepage — TVL, protocol overview |
/markets |
All markets — TVL, price, leverage, CR per asset |
/market/[id] |
Individual market — chart, mint/redeem actions, leverage simulator |
/portfolio |
User positions and P&L |
/earn |
Stability pool — stake paraUSD, view APY and fees earned |
/dashboard |
System-wide monitoring |
/docs |
Protocol documentation and contract reference |
# Frontend
cd client
cp .env.example .env.local # fill in Privy key, Supabase, etc.
bun install && bun run dev
# Contracts
cd contracts
forge install
cp .env.example .env # fill in PRIVATE_KEY
make build
make test
make deploy-ink-sepolia