How a box works
The box
A box is an isolated lending market with exactly one collateral, a tokenized stock, and one loan asset, USDG. It is an ERC-4626 vault for lenders and a collateralized debt position for borrowers, in one contract, with six parameters fixed at stacking: the collateral, the loan asset, the oracle module, the rate module, the loan-to-value, and the liquidation bonus.
There is no owner, no fee, no reserve factor, no pause, no proxy, no governance. A box that needs changing is a box that should not have been stacked with those numbers; stack another. The yard is the factory and the list, and it never touches a box after stacking it.
Lending
Deposit USDG, receive box shares. Shares carry 18 decimals whatever the loan asset carries, and that decimal gap doubles as the virtual offset that makes an inflation attack on an empty box cost a million times more than it could win. Interest accrues to the second and is reflected in every view before it is booked, so a lender arriving after a quiet week buys in at the price that includes that week.
You can withdraw up to the cash in the box. What is lent out is earning and comes back as it is repaid, and the rate curve above the kink is what makes borrowers bring it back.
Borrowing
Post the stock, borrow USDG up to collateral × price × LLTV. Collateral is held in raw token units; the Chainlink feed prices one token with the issuer’s dividend multiplier already in it, so a dividend or a split changes nothing the box has to know about. Repay any amount, or all of it to the wei. Take collateral out as long as the position stays above the line.
Liquidation
Below the line, anyone may repay up to the whole debt and receive repaid × bonus ÷ price of collateral. There is no close factor: an underwater position can be closed in one call. If the collateral cannot cover the repayment plus the bonus, all of it is seized, the repayment is scaled to what it is worth, and the remaining debt is written off against this box’s lenders in the same transaction.
That last sentence is the product. The loss lands where the risk was chosen, immediately, in the open. The box beside it has a different collateral, different lenders and a different book, and it never finds out.
Stale prices
Equity feeds on this chain publish through the session and then hold: Friday’s last print is the answer all weekend, with a timestamp that does not move. A box accepts a print up to four days old and acts on it. Older than that, exactly three things freeze: borrowing, removing collateral, and liquidating. Lending, withdrawing, repaying and adding collateral never need a price, and interest does not stop.
A box does not carry a trading calendar. The lender’s protection against the Monday gap is the box’s loan-to-value, chosen box by box: an index at 80%, a mega-cap at 70%, a name that moves 10% in a session at 55%, GME at 45%. A different opinion is a different box.
The curve
The first boxes run on one rate module: 0% at empty, 4% a year at the 80% kink, 64% at full. Cheap money while there is cash to spare; a rate nobody keeps paying for long once there is not. Supply rate is the borrow rate times utilization, and all of it goes to lenders.
What can go wrong
- A gap larger than the loan-to-value’s cushion leaves the box’s lenders with the difference. That is the risk being priced, box by box.
- The issuer can pause or burn a tokenized stock. A paused collateral cannot be seized or withdrawn until it is unpaused; the box’s dollars are unaffected.
- A Chainlink feed can be retired. A box on a dead feed freezes borrowing and liquidation forever; lenders can still withdraw as loans are repaid. Stack a new box on the new feed.
- Cash can be fully lent. Withdrawals wait for repayments; the curve above the kink is the only pressure, and it is strong.
- The contracts are new and unaudited. Nothing here is advice.
Modules
An oracle module answers price() → (uint256 price, bool fresh): loan base units per collateral base unit, scaled by 1e36, and whether the box may act on it. A rate module answers borrowRate(cash, debt) → uint256, per second, WAD. Write either, stack a box on it, and the yard lists it beside the others.
| first boxes | LLTV | bonus | max print age |
|---|---|---|---|
| SPY S&P 500 ETF | 80% | 5% | 4 days |
| QQQ Nasdaq-100 ETF | 80% | 5% | 4 days |
| NVDA NVIDIA | 70% | 6% | 4 days |
| AAPL Apple | 70% | 6% | 4 days |
| MSFT Microsoft | 70% | 6% | 4 days |
| AMZN Amazon | 70% | 6% | 4 days |
| GOOGL Alphabet | 70% | 6% | 4 days |
| META Meta | 70% | 6% | 4 days |
| AMD AMD | 60% | 7% | 4 days |
| INTC Intel | 60% | 7% | 4 days |
| TSLA Tesla | 55% | 8% | 4 days |
| COIN Coinbase | 55% | 8% | 4 days |
| GME GameStop | 45% | 10% | 4 days |