Paboxo

Parameters

Every parameter and total the Math pages use, per market, as read on mainnet with the block each was read at, and the illustrative inputs of the worked examples.

Every live value the Math pages use, as read on mainnet, with the block it was read at. Further down are the illustrative inputs the worked examples share.

Mainnet

As read on mainnet 4663 on 12 October 2026 at block 86868761 (18:00:51 UTC), the day of the deployment (block 86793701). Parameters and totals are from the same block. These are settings, not constants: the protocol owner can change any of them without notice. Re-read the contracts before relying on a number.

Per market

NVDA / USDGSPY / USDGWETH / USDG
LTV (router.ltv)60%70%75%
Liquidation threshold (IsHealthy)65%75%80%
Liquidation bonus8%6%5%
liquidationProtocolShare0%0%0%
LT × (1 + bonus) — bad-debt line0.7020.7950.840
Base / kink / max rate0.5% / 8% / 100%samesame
Optimal / max utilisation80% / 90%samesame
Reserve factor, stored → reserveFactor(router)0 → 10%0 → 10%0 → 10%
Creator fee, stored → effective1 → off (1e-18)1 → off1 → off
Borrow cap0 (uncapped)00
windDownfalsefalsefalse
Fresh required for borrow / liquidationyes / yesyes / yesyes / yes
Earn vault cap (markets(pool))unlimited (type(uint256).max)unlimitedunlimited
Oracle price (TokenDataStream, Fresh)$226.43$781.39$2,513.51

The rate curve and max utilisation in this table are the launch values; each market has had its own curve, and a max utilisation of 100%, since the Safe's transaction nonce 4.

Market totals

NVDA / USDGSPY / USDGWETH / USDG
totalSupplyAssets0.0000010.0000010.000001
totalBorrowAssets000
totalReserveAssets000
Borrow APR (calculateBorrowRate)0.5% (the base rate, at 0% utilisation)samesame

All amounts in USDG. Each market held 1 base unit, supplied by the Earn vault, and nobody had borrowed yet.

Protocol-wide

Protocol borrow fee, USDG (getProtocolFee, stored 0)0.1%, paid to the 2-of-4 Safe (factory.protocol())
minAmountSupplyLiquidity(USDG)0.000001 USDG (1 base unit)
Adapter maxAgeInSession / maxAgeHard (all four)26 hours / 97 hours (93,600 s / 349,200 s)
TokenDataStream defaultMaxPriceAge97 hours (349,200 s)
Calendar weekly windowSat 01:00 → Mon 01:00 UTC (EST basis), autoDst on, 21 holiday closures
Admin rolesthe protocol Safe (2-of-4) alone since 4 November 2026; a pauser key holds only PAUSER_ROLE on each lending pool (pause, never unpause)
Close factor closeFactorMinBase() (18 Oct, block 91904058)$10: a partial liquidation must leave at least $5 of debt and $5 of collateral (net of the protocol's share of the bonus); when reaching the target would leave less, the whole position may go. Target health factor 1.05, whole debt at 0.95 or below — see close factor

Earn vault

totalAssets()0.000003 USDG — the three 1-base-unit market seeds
totalSupply()0.000003 peUSDG (3e12 raw, 18 decimals)
Idle USDG0
Supply queueempty — pull allocation
Withdraw queueNVDA → SPY → WETH
performanceFee0 (recipient unset); MAX_PERFORMANCE_FEE 0.5e18 (50%)
Deposit cap0 (uncapped)

Every percentage above is stored in WAD, 101810^{18} = 100%: 60% is 600000000000000000.

Re-read on 19 October 2026

Re-read at block 92690105 (14:36:43 UTC): every rate, risk, fee, cap and freshness setting above was unchanged (the calendar and the admin roles were not re-read). Oracle prices had moved, as they do.

After the vault-wide utilisation upgrade, 20 October 2026

The upgrade executed from the protocol Safe at block 93416112. Read at block 93419456 (11:33:27 UTC): the rate curve, max utilisation and reserve factor were unchanged on all three markets (0.5% / 8% / 100%, kink 80%, max 90%, stored 0 → 10%). The vault and the markets:

totalAssets()2,211.321464 USDG
Idle USDG2,161.320702
totalSupply()2,211.320691380952698037 peUSDG
liquidAssets()2,161.320704 USDG
WETH/USDG totalBorrowAssets / totalSupplyAssets / totalReserveAssets50.000840 / 50.000757 / 0.000083 USDG
NVDA/USDG, SPY/USDGthe 1-base-unit seed each, no debt
utilizationTotals() (BB, AA, pending interest included)50.000843 / 2,211.321464 USDG
utilization() = utilizationOf(router), every market22611294143271555 (2.2611%)
calculateBorrowRate(router), every market7119808825931708 (0.7120%)
maxBorrowable(), every market1,940.188474 USDG
feeHighWaterMark1000000050476191755697597 (1.00000005 USDG per peUSDG)

SPCX/USDG and TSLA/USDG, 22 October 2026

Two markets listed on 22 October 2026. Read at block 94915008 (06:45:47 UTC), parameters and totals from the same block:

SPCX / USDGTSLA / USDG
LTV (router.ltv)45%45%
Liquidation threshold (IsHealthy)50%50%
Liquidation bonus10%10%
liquidationProtocolShare0%0%
LT × (1 + bonus) — bad-debt line0.5500.550
Base / kink / max rate0.5% / 8% / 100%same
Optimal / max utilisation80% / 90%same
Reserve factor, stored → reserveFactor(router)0 → 10%0 → 10%
Creator fee, stored → effective1 → off (1e-18)1 → off
Borrow cap150,000 USDG (150000000000)150,000 USDG
windDownfalsefalse
Fresh required for borrow / liquidationyes / yesyes / yes
Earn vault cap (markets(pool))unlimited (type(uint256).max)unlimited
Adapter maxAgeInSession / maxAgeHard26 hours / 97 hours, bound to the market calendarsame
Oracle price (TokenDataStream, Fresh)$156.15$367.68
totalSupplyAssets100 USDG, the vault's seed100 USDG
totalBorrowAssets / totalReserveAssets0 / 00 / 0

The rate curve and max utilisation here are the launch values, since replaced by per-market curves.

At the same block the three launch markets' rate, risk, fee, cap and freshness settings were unchanged, and the vault read:

totalAssets()4,480.378347 USDG
Idle USDG4,230.375971
totalSupply()4,480.373269917025879913 peUSDG
liquidAssets()4,430.375973 USDG
Supply queueempty — pull allocation
Withdraw queueNVDA → SPY → WETH → SPCX → TSLA
utilizationTotals() (BB, AA, pending interest included)50.002633 / 4,480.378347 USDG
utilization() = utilizationOf(router), every market11160356838222154 (1.1160%)
calculateBorrowRate(router), every market6046283453583326 (0.6046%)
maxBorrowable(), every market3,982.337879 USDG — the utilisation limit binds, below either borrow cap

Per-market rate curves, Safe transaction nonce 4

The protocol Safe (transaction nonce 4) called setLendingPoolRateCurve(router, base, rateAtOptimal, optimalU, maxU, maxRate) on the interest rate model once per market. Read at block 96027397 (23 Oct 2026). The last two rows are read at block 97359729 (25 Oct 2026), after the listing seeds went back to the vault (status), vault utilisation 10890794453828460 (1.0891%):

SPY / USDGWETH / USDGNVDA / USDGTSLA / USDGSPCX / USDG
Base rate0.5%0.5%1%1%1.5%
Rate at the kink6%7%9%12%14%
Kink (optimal utilisation)80%80%80%80%80%
Max utilisation100%100%100%100%100%
Max rate100%100%100%100%100%
Reserve factor, reserveFactor(router)10%10%10%10%10%
Borrow cap0 (uncapped)00150,000 USDG150,000 USDG
calculateBorrowRate(router)5748742118700706 (0.5749%)5884877049373562 (0.5885%)11089079445382846 (1.1089%)11497484237401413 (1.1497%)16701686633410696 (1.6702%)
maxBorrowable()4,541.375475 USDG4,541.375475 USDG4,541.375475 USDG4,541.375475 USDG4,541.375475 USDG

Before it, every market ran the launch curve: 0.5% / 8% / 100%, kink 80%, max utilisation 90%. The reserve factors and borrow caps did not change. Utilisation is still one vault-wide figure every market reads, so at the same utilisation each market now charges its own rate.

MSFT/USDG and AAPL/USDG, 27 October 2026

Two markets listed on 27 October 2026 (MSFT/USDG at block 99090794, AAPL/USDG at block 99091161), both with NVDA/USDG's settings. Read at block 99393260 (16:47:02 UTC):

MSFT / USDGAAPL / USDG
LTV (router.ltv)60%60%
Liquidation threshold (IsHealthy)65%65%
Liquidation bonus8%8%
liquidationProtocolShare0%0%
LT × (1 + bonus) — bad-debt line0.7020.702
Base / kink rate / kink / max utilisation / max rate1% / 9% / 80% / 100% / 100%same
Reserve factor, stored → reserveFactor(router)0 → 10%0 → 10%
Creator fee, stored → effective1 → off (1e-18)1 → off
Borrow cap0 (uncapped)0
windDownfalsefalse
Fresh required for borrow / liquidationyes / yesyes / yes
Earn vault cap (markets(pool))unlimited (type(uint256).max)unlimited
Adapter maxAgeInSession / maxAgeHard26 hours / 97 hours, bound to the market calendarsame
Oracle price (TokenDataStream, Fresh)$534.86$346.83
calculateBorrowRate(router)11089143389562440 (1.1089%), at vault utilisation 1.0891%same

QQQ/USDG, GOOGL/USDG and AMD/USDG, 13 November 2026

Three markets listed on 13 November 2026 by one protocol Safe transaction (Safe nonce 17, block 113188124). Read at block 113204091 (08:06:21 UTC):

QQQ / USDGGOOGL / USDGAMD / USDG
LTV (router.ltv)65%60%45%
Liquidation threshold (IsHealthy)70%65%50%
Liquidation bonus7%8%10%
liquidationProtocolShare0%0%0%
LT × (1 + bonus) — bad-debt line0.7490.7020.550
Base / kink rate / kink0.5% / 7% / 80%1% / 9% / 80%1.5% / 14% / 80%
Max utilisation / max rate100% / 100%samesame
Reserve factor, stored → reserveFactor(router)0 → 10%0 → 10%0 → 10%
Creator fee, stored → effective1 → off (1e-18)1 → off1 → off
Borrow cap0 (uncapped)00
windDownfalsefalsefalse
Fresh required for borrow / liquidationyes / yesyes / yesyes / yes
Earn vault cap (markets(pool))unlimited (type(uint256).max)unlimitedunlimited
Adapter maxAgeInSession / maxAgeHard26 hours / 97 hours, bound to the market calendarsamesame
Oracle price (TokenDataStream, Fresh)$686.49$299.99$578.41
totalSupplyAssets0.000001 USDG, the 1-base-unit seed0.000001 USDG0.000001 USDG
totalBorrowAssets / totalReserveAssets0 / 00 / 00 / 0
calculateBorrowRate(router)5888520570730766 (0.5889%)11093563779360942 (1.1094%)16708693405251473 (1.6709%)

At the same block the vault's utilisation was 10935637793609429 (1.0936%), from utilizationTotals() of 53.031247 / 4,849.395359 USDG; its withdraw queue was NVDA → SPY → WETH → SPCX → TSLA → MSFT → AAPL → NVDA LP → SPY LP → QQQ → GOOGL → AMD, its supply queue empty, and maxBorrowable() was 4,796.364111 USDG on all ten markets.

Constants

Fixed in the contracts' source rather than set:

MAX_BORROW_FEE10%
Year used by the rate model31,536,000 s
MAX_RATE / MAX_RESERVE_FACTOR (rate-model setter bounds)1,000% / 50%

Illustrative inputs

Mainnet's only debt, about 50 USDG on WETH/USDG since 19 October 2026 (read at block 93419456), is too small to show the rounding, so a worked example that needs debt does not use a live market. Those examples use the inputs below instead. The risk parameters and the price are mainnet's; the rate curve is the launch curve every market shared until the per-market curves; the amounts are made up, round, and not a reading of the chain.

ValueSource
MarketNVDA / USDG
LTV / liquidation threshold / bonus60% / 65% / 8%mainnet
Rate curve, max utilisation, reserve factor0.5% / 8% / 100%, kink 80%; 100%; 10%launch curve; mainnet's max utilisation and reserve factor
NVDA price$226.43088402 (22643088402)mainnet, block 86868761
Supply SS100,000 USDG — the vault's only market, no idle USDG, so the vault's AAillustrative
Borrow assets BB20,010 USDGillustrative
Borrow shares TBS\text{TBS}20000000000illustrative
Time since the last accrual7 days (604,800 s)illustrative
A Position20 NVDA collateral, 2400000000 borrow sharesillustrative

Addresses for every contract above are on contracts.

On this page