Reproduce
Run it yourself, and get the same number.
Nothing on this site is a figure we are asking you to take on trust. These are the commands, and this is what they print.
Nothing is deployed. No address exists on any chain.
There is no factory address, no vault address and no mine address, on mainnet or on any testnet. No transaction has been broadcast. What exists is source, a test suite, the measurements on these pages — and a deploy script that has not been run.
Every number in this section came out of a run.
The 86 tests are 62 local suites and 24 that fork BSC mainnet: they register the factory on the real VaultPortal, launch a real taxed token through it, buy on the bonding curve and dispatch real tax. Nothing on that path is mocked.
Both totals come from a run with BSC_RPC_URL and ARCHIVE_RPC pointed at a BSC archive endpoint. Without the second, two tests skip and the run is 84 passed and 2 skipped instead. The commands, and what each one printed, are on the audit page.
A green test is not evidence that a guard exists. For each of the 26 guards, the guard was deleted from the source, the test that claims to catch it was run, and the run was required to fail. The first pass found three tests that stayed green with their guard gone; all three were defects in the tests, and all three were fixed.
Source: README.md, RULES.md, FACTORY.md
The commands, and what they actually print.
There is no offline subset. A bare forge test does not run the local suites alone: test/FlapBSCFixture.sol reads the endpoint with vm.envOr("BSC_RPC_URL", "https://bsc-dataseed.bnbchain.org"), so with the variable unset it still forks BSC mainnet through that public default and runs the fork suites. The 62 local tests are the ones that come back from --no-match-path.
Two variables, both pointing at a BSC archive endpoint. BSC_RPC_URL chooses what the fork suites fork from. ARCHIVE_RPC is separate: the two tests in Commission.mainnet.t.sol need their own launch and check that variable before they run. With it unset they skip: the same 86 tests report 84 passed, 0 failed, 2 skipped, and “0 skipped” is not true of that run. Every total on this page is from a run with both set.
No public BSC endpoint serves archive state — seven were probed and history older than roughly two minutes is pruned on all of them. The fork suites are still not pinned to a block, so a run is self-consistent rather than reproducible across runs; FORK_BLOCK pins them for anyone with an archive node.
Run on this pass — the last line of each run, verbatim
$ARCHIVE is a BSC archive endpoint. The third run is the second one with ARCHIVE_RPC removed — the same 86 tests, two of them skipped, which is exactly what “0 skipped” depends on. Contract sizes below come from forge build --sizes on the same tree.
Six fields, each bounded for a reason.
The launch payload is decoded only after its length and its address padding have been checked, so malformed input from the portal lands on the same literal error surface as anything else instead of a bare decode revert.
Three things are rejected before the token exists: a non-native quote asset, a vault share of zero, and both tax rates being zero.
The factory itself holds two creation-code deployers rather than embedding both contracts, because a factory carrying both would exceed the EIP-170 limit. Each deployer creates a proxy and initialises it in the same transaction, so no uninitialised proxy ever exists for someone else to claim.
| Field | Bounds | Why |
|---|---|---|
| deposit | > 0, up to uint128 max | the mine can always give it back |
| notice | 1 to 30 days | quit-to-refund wait |
| periodBlocks | 200 to 1,000,000, ×200 | every period holds whole puzzle windows |
| targetShift | 8 to 48 | genesis difficulty is 2**n expected hashes |
| difficultyStep | 100,000 to 1,000,000,000 | each block removes target/step, permanently |
| project | non-zero | snapshotted when a period is first funded |
Source: FACTORY.md — launch parameters the factory accepts