Findings and open questions.
Building LUSG surfaced behaviour worth knowing for anyone issuing a yield-bearing B20 asset. The questions after them are where we would most value the Base team's guidance before Base Sepolia.
Found while building
| # | Finding | What we did |
|---|---|---|
| F1 | SEIZE_EXEMPT_POLICY defaults to always-allow, so every wallet is exempt and seizure reverts AccountNotSeizable | Bound it to a treasury-only list at creation |
| F2 | One pending multiplier update at a time, no minimum notice, no event at the flip | A per-minute clock that no-ops while a step is pending; indexers read state by time |
| F3 | Rounding the interpolated bill rate before pricing cost up to $0.26 per $1M on a 92-day bill | The oracle prices from the exact fraction |
| F4 | A redeemer is owed their share of accrual, which their subscription alone doesn't cover | A treasury-funded liquidity buffer at the desk |
| F5 | A per-minute tick() costs 63,434 gas: about $1.25 a day on Base mainnet | Kept the minute cadence; it is 0.2% of yield |
| F6 | Foundry can't simulate B20 precompiles | Deploy with cast, simulate with eth_call, test the logic against mocks |
| F7 | Vibenet's public RPC rate-limits per request; the faucet allows one request per IP per 10 s | Batched reads; the app waits out the faucet's cooldown |
| F8 | No open per-bill T-bill price exists on chain | BillOracle from Treasury's public data |
Questions for the Base team
- Cadence. Is scheduling 1,440
updateUIMultipliercalls a day a pattern Base is comfortable with for a yield-bearing B20 asset, or is there a preferred way to express continuous accrual? - Display. Which wallets and indexers read ERC-8056
balanceOfUItoday, and is that where Base expects yield-bearing assets to show their value? - Denim. With the transfer-executor policy enforced on every transfer path, what should an allowlisted token expect from routers, pools and smart wallets?
- Seize default. Is always-allow for
SEIZE_EXEMPT_POLICYintended, and should issuers always bind it at creation? - Bill prices. For per-bill prices, is the recommended path Chainlink DataLink with Tradeweb, or would an open oracle from Treasury's public data be useful to the ecosystem?
- Testing precompiles. Is there a supported way to run B20 precompiles locally (a Base build of Foundry or anvil) for integration tests?
- Vibenet and Sepolia. How long does Vibenet state persist, and is Base Sepolia the right next step for a regulated asset's public test?