Balances never move. The multiplier carries the yield.
Every LUSG balance is fixed. What changes is the token's multiplier, so a wallet that reads ERC-8056 shows dollars, while DeFi sees a plain ERC-20 whose price is the multiplier.
Treasury's public data
Daily bank-discount bill rates for 4 to 52 weeks from home.treasury.gov, and every outstanding bill by CUSIP from TreasuryDirect.
BillOracle
Holds the 7 rates and 52 bills. priceOf(cusip) interpolates each bill's rate by days to maturity, then prices it the way Treasury quotes bills.
LusgClock
Keeps the books: each bill accretes from cost to face. Anyone can call tick() each minute; check() compares market and amortized value daily.
LUSG on B20
The clock holds only OPERATOR_ROLE and calls updateUIMultiplier. Allowlist, blocklist, seize, pause and the supply cap are native B20.
Three real bills, each growing to par.
A $5.92M test basket, bought at the oracle's prices on 3 November 2026: one bill near each of 4, 13 and 26 weeks. Each accretes in a straight line from its cost to $100 at maturity.
| CUSIP | Matures | Days to maturity | Face | Amortized now | Oracle price |
|---|---|---|---|---|---|
| loading | |||||
| Basket | - | - | - | - | |
Every claim on this page can be checked on-chain.
Successes are live transactions on Vibenet. Refusals were checked as calls from the same wallet against live state, decoded to the B20 error.
What we learned, and where we'd value guidance.
Found while building
- Seizure is off by default.
SEIZE_EXEMPT_POLICYstarts as always-allow, so every wallet was exempt andseizeWithMemoreverted. We bound it to a treasury-only list. - One pending step at a time. A tick that lands before the last step takes effect is a no-op, which suits a per-minute clock.
- Exact oracle pricing. Rounding the interpolated rate first cost up to $0.26 per $1M on a 92-day bill. The oracle now prices from the exact fraction.
- Cost of the clock. At 63,434 gas a step, per-minute updates would cost about $1.25 a day on Base mainnet at 0.006 gwei.
- Redemptions need a buffer. A redeemer is owed their share of the bills' accrual, which their own subscription doesn't cover. The desk pays from a treasury-funded cash buffer, as a fund's custodian would.
Questions
- Cadence. Is 1,440 scheduled
updateUIMultipliercalls a day a pattern Base is comfortable with for a yield-bearing B20 asset? - Display. Which wallets and indexers read ERC-8056
balanceOfUItoday? - Denim. With the transfer-executor policy enforced on every path, what should an allowlisted token expect from routers and pools?
- Seize default. Is always-allow for
SEIZE_EXEMPT_POLICYintended, and should issuers bind it at creation? - Oracle. For per-bill prices, is the path Chainlink DataLink with Tradeweb, or is an open oracle from Treasury's public data useful to the ecosystem?
Oracle v1. 3 signers, 2 must agree; staleness and jump limits.
Safe roles. 2-of-3 Safe, a pause guardian, a timelock on admin.
USDC desk. Port this desk to Circle's test USDC, with daily limits.
Maturity roll. A bill matures during testing and is reinvested.
Auto-pause. A gap above 0.5% pauses mint and redeem.
App and review. Staging app with mock KYC, then review.