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 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.
What is actually asserted
| Area | Checks | Examples |
|---|---|---|
| Build | 12 | Leverage in band, health above the floor, cost under 1%, receive() under the gas cap — at three sizes. |
| Harvest | 10 | Frees the gain and no more, 60/40 exact, health holds, a second harvest is refused. |
| Settlement | 11 | Buys a real slot from the trigger service, refuses impostors and replays, fits the 2M callback cap. |
| Authorization | 13 | Trigger sender, request id, self-only calls, initialize once, the 2,300-gas stipend guard. |
| Factory & schema | 13 | Portal-only creation, launch validation, beacon ownership, every schema name resolves to a real selector. |
| receive() gas | 2 | The cold and warm paths against Flap's 1,000,000 cap, and that it never reverts. |
| Vault UI | 8 | Generated ABI is current, both locales cover the same keys. |
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