This site is a beta. Nothing is deployed to a network and no figure here is a real balance.

Skip to main content
POTUSFI
All docs

USDG & the pool

One pool, two sides, and the order a loss is absorbed in.

Spec: README Sections 7-10, 24, 51; ADR 0002

POTUSFI lends USDG, the dollar stablecoin already circulating on Robinhood Chain, instead of issuing one of its own. That is ADR 0002, and it supersedes the CDP design of ADR 0001: there is no protocol stablecoin, no controller, no peg module. What a borrower draws is the same dollar every other venue on the chain uses, and it came from a lender who put it in.

Two sides of one pool

Lenders ──supplyBase──▶ POTUSComet ◀──repay── Borrowers
       ◀─withdrawBase─    (USDG)    ──borrow──▶
                            │
                   collateral: Stock Tokens

A lender's claim and a borrower's debt are both principal times an index that only rises. On every accrual the borrow rate is read off the curve at the current utilisation; the supply rate is the borrow rate times utilisation times one minus the reserve factor; the gap between the two is the pool's reserve.

The rate curve

UtilisationBorrow rate (starting values)
0%2% — the base
80% — the kink10%: base plus a 10%-per-unit slope
100%30%: the slope above the kink is 100% per unit

Reserves and losses

Reserves are not a counter. They are what the pool holds plus what borrowers owe minus what lenders are owed, so they cannot drift from the truth — and a bad-debt write-off shows up in them immediately, as a negative number, until the treasury or the insurance reserve funds the gap.

  • Seized collateral pays the debt down first.
  • The insurance reserve covers what the collateral could not.
  • The pool's own accrued reserves absorb what is left.
  • Only then do lenders carry it, in proportion, through the supply index.

Units

USDG has six decimals; the risk engine values collateral in eighteen. Every debt is kept in USDG's own decimals and the market carries one conversion factor, baseScale, that the liquidation engine and the auction read from it rather than computing their own. A test that forgot the conversion would pass at 18 decimals and fail at 6 — which is why every fixture in the suite lends a six-decimal mock.