verify nothing here is on our word

Every number, reproducible

Sixty-nine checks run, thirty-three of them against BNB Chain as it stands. No private key, no archive node, nothing broadcast. If a number on this site is wrong, this is how you catch it.

# the whole suite
forge build && bash scripts/test.sh

  13 passed   offline: schema, factory guards, launch validation, v2.2 baseline
  13 passed   forked:  authorization, guards, receive stipend
   2 passed   forked:  receive gas budget (rule 005)
  33 passed   live:    build / harvest / automatic settlement
   8 passed   vault UI: ABI currency and i18n coverage
             sizes:   all within limit
the method why not a fork

The position checks run as one atomic call

Exercising the position takes about fifty seconds of wall clock through Venus and PancakeSwap. BNB Chain's public nodes prune state after roughly ninety-six seconds and there is no free archive node, so a forked suite dies partway through with missing trie node. Confirmed against both a direct fork and a local anvil cache.

So those checks run as a single eth_call with the probe's bytecode injected by state override. That form is not a fallback — it is better in three specific ways.

Why it beats a fork here

  • Runs against current state, not a historical snapshot.
  • Atomic, so mid-run drift cannot pollute it. A fork against a load-balanced RPC can — five calls in a row spanned 19 blocks.
  • Needs nothing but a public node. No archive, no key.
coverage what the 69 cover

What is actually asserted

AreaChecksExamples
Build12Leverage in band, health above the floor, cost under 1%, receive() under the gas cap — at three sizes.
Harvest10Frees the gain and no more, 60/40 exact, health holds, a second harvest is refused.
Settlement11Buys a real slot from the trigger service, refuses impostors and replays, fits the 2M callback cap.
Authorization13Trigger sender, request id, self-only calls, initialize once, the 2,300-gas stipend guard.
Factory & schema13Portal-only creation, launch validation, beacon ownership, every schema name resolves to a real selector.
receive() gas2The cold and warm paths against Flap's 1,000,000 cap, and that it never reverts.
Vault UI8Generated ABI is current, both locales cover the same keys.
once deployed read it directly

Three calls that answer everything

# what the treasury is worth, right now
cast call $VAULT "nav()(uint256)" --rpc-url https://bsc-dataseed.bnbchain.org

# how far the position is from liquidation (10000 = liquidated)
cast call $VAULT "healthBps()(uint256)" --rpc-url https://bsc-dataseed.bnbchain.org

# what the next wake will do, and when
cast call $VAULT "pendingAction()(uint8)" --rpc-url https://bsc-dataseed.bnbchain.org
cast call $VAULT "nextSettlementIn()(uint256)" --rpc-url https://bsc-dataseed.bnbchain.org

None of these depends on anyone publishing anything. They read Venus and the trigger service directly, in whatever block you call them.

Not deployed yet

Nothing has been broadcast to any network. When it is, the addresses appear here and on the vault page.

The vault