LUSG docsLIUM FINANCE Vibenet live · Base Sepolia next Open the app →
Contents
Review

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

#FindingWhat we did
F1SEIZE_EXEMPT_POLICY defaults to always-allow, so every wallet is exempt and seizure reverts AccountNotSeizableBound it to a treasury-only list at creation
F2One pending multiplier update at a time, no minimum notice, no event at the flipA per-minute clock that no-ops while a step is pending; indexers read state by time
F3Rounding the interpolated bill rate before pricing cost up to $0.26 per $1M on a 92-day billThe oracle prices from the exact fraction
F4A redeemer is owed their share of accrual, which their subscription alone doesn't coverA treasury-funded liquidity buffer at the desk
F5A per-minute tick() costs 63,434 gas: about $1.25 a day on Base mainnetKept the minute cadence; it is 0.2% of yield
F6Foundry can't simulate B20 precompilesDeploy with cast, simulate with eth_call, test the logic against mocks
F7Vibenet's public RPC rate-limits per request; the faucet allows one request per IP per 10 sBatched reads; the app waits out the faucet's cooldown
F8No open per-bill T-bill price exists on chainBillOracle from Treasury's public data

Questions for the Base team

  1. Cadence. Is scheduling 1,440 updateUIMultiplier calls a day a pattern Base is comfortable with for a yield-bearing B20 asset, or is there a preferred way to express continuous accrual?
  2. Display. Which wallets and indexers read ERC-8056 balanceOfUI today, and is that where Base expects yield-bearing assets to show their value?
  3. Denim. With the transfer-executor policy enforced on every transfer path, what should an allowlisted token expect from routers, pools and smart wallets?
  4. Seize default. Is always-allow for SEIZE_EXEMPT_POLICY intended, and should issuers always bind it at creation?
  5. 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?
  6. Testing precompiles. Is there a supported way to run B20 precompiles locally (a Base build of Foundry or anvil) for integration tests?
  7. Vibenet and Sepolia. How long does Vibenet state persist, and is Base Sepolia the right next step for a regulated asset's public test?