LUSG · LIUM Short-Term US Government Treasuries · B20

US Treasury bills on Base, accruing every minute.

LUSG is a B20 token backed by a ladder of real, outstanding US Treasury bills. Buy it with test dollars, watch it accrue, and redeem it back. A contract steps its value on-chain every minute along the bills' amortized value, and checks it daily against Treasury's own bill rates.

Holder
$0.000000
on-chain balance -next step -
1Walletnot connected
2Test funds-
You receive-
Price per LUSG-
Desk liquidity for redemptions-

Vibenet only: your first buy adds you to LUSG's KYC allowlist instantly, standing in for a real KYC check. The sanctions blocklist still applies.

┌─ LAST STEPS · ONE PER MINUTE ─┐
-pace, annualised --
connecting
Basket value
-
amortized cost, now
LUSG supply
-
1 LUSG = $1.00 at launch
Multiplier
-
ERC-8056 UI multiplier
Market check
-
-
Treasury rates
-
as of, daily bill rates
Last step
-
scheduled by the keeper
How it works

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.

01 · SOURCE

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.

02 · PRICE

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.

03 · VALUE

LusgClock

Keeps the books: each bill accretes from cost to face. Anyone can call tick() each minute; check() compares market and amortized value daily.

04 · TOKEN

LUSG on B20

The clock holds only OPERATOR_ROLE and calls updateUIMultiplier. Allowlist, blocklist, seize, pause and the supply cap are native B20.

Absolute, not cumulative.Each step is the basket's value divided by supply, so a missed minute only holds the value still, and the next tick catches up.
Permissionless, not trustless of data.A keeper can delay a step but never set its value. The value comes from the bill lots and the oracle's posted rates.
Buy and redeem at the basket's value.LusgDesk books your dollars as cash in the clock before it mints, and withdraws them after it burns, so no trade moves the price for other holders.
Compiled with Solar.BillOracle, LusgClock and LusgDesk are compiled with Solar v0.3.0, Paradigm's Rust Solidity compiler, through Foundry.
The ladder

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.

┌─ LADDER ─┐
CUSIPMaturesDays to maturityFaceAmortized nowOracle price
loading
Basket----
Proof

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.

Unit tests, compiled with Solar25/25
Live compliance tests12/12
Gap after a forced 3-point rate jump−86 bps
Gas per minute step63,434
    For review

    What we learned, and where we'd value guidance.

    Found while building

    1. Seizure is off by default. SEIZE_EXEMPT_POLICY starts as always-allow, so every wallet was exempt and seizeWithMemo reverted. We bound it to a treasury-only list.
    2. 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.
    3. 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.
    4. 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.
    5. 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

    1. Cadence. Is 1,440 scheduled updateUIMultiplier calls a day a pattern Base is comfortable with for a yield-bearing B20 asset?
    2. Display. Which wallets and indexers read ERC-8056 balanceOfUI today?
    3. Denim. With the transfer-executor policy enforced on every path, what should an allowlisted token expect from routers and pools?
    4. Seize default. Is always-allow for SEIZE_EXEMPT_POLICY intended, and should issuers bind it at creation?
    5. 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?
    LUSG token
    LusgClock
    BillOracle
    LusgDesk
    USDV (Vibenet faucet dollar)