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

Operations.

What has to run for LUSG to stay live, how to run it, and what it costs. Every step is a script in the repository; keys stay in a gitignored .env.

What runs, and how often

JobCadenceCommandIf it stops
Minute stepEvery minute./script/keeper.shThe value holds still, then catches up on the next tick
Oracle rates and market checkOnce a day, after Treasury posts./script/daily_check.shPrices go stale 4 days after their data date; the check shows stale
Bill listWeekly, after auctionspython3 -I script/oracle_post.pyNew bills can't be priced until listed
Settle matured billsAt each maturitycast send $CLOCK "settleMatured()"Matured lots still count at face; only the books are tidier

Costs

ItemGasVibenet, 1 gweiBase mainnet, 0.006 gwei
One tick()63,4340.000063 ETH~$0.00087
A day of ticks (1,440)91.3M~0.09 ETH~$1.25
A day's oracle post~70,0000.00007 ETH~$0.001

Vibenet's gas price is about 170 times Base mainnet's, so a keeper wallet funded from the faucet (0.1 ETH) lasts about a day there.

From scratch

  1. ./script/01_policies.sh: KYC allowlist, sanctions blocklist, the combined holder policy, the treasury-only seize-exempt list.
  2. ./script/02_deploy.sh: BillOracle and LusgClock with Solar, then LUSG by createB20 with every role, the cap and the policies. It simulates the call first.
  3. python3 -I script/oracle_post.py: Treasury's latest bill rates and every outstanding bill.
  4. python3 -I script/ladder_and_mint.py: buys a 4/13/26-week ladder at oracle prices after checking each price by hand, then mints at $1.00.
  5. ./script/03_desk.sh: LusgDesk, made the clock's manager, a minter and burner, and the allowlist's admin; the cap is raised.
  6. ./script/keeper.sh, then ./script/compliance_tests.sh and ./script/daily_check.sh.

Tooling notes