# 大表哥 / Big Cousin: Flap handoff

Two bound packages for the Flap audit round: the Vault **UI** source package and
the **contracts** source package.

Assembled 2026-08-21. Nothing here is deployed anywhere.

## What to do with it

| Step | File |
|---|---|
| 1. Upload the Mini App to the Artifact Workbench | `ui/flappy-cuz.zip` |
| 2. Take the contracts into the audit round | `contracts/bigcousin-flap-contracts-audit-2026-08-20.zip` |

Do not hand-assemble either zip. The Workbench rejects packages without the
`flap-vault-package.json` marker, so `ui/flappy-cuz.zip` must be uploaded exactly
as shipped here.

## Checksums

Verify before use:

    shasum -a 256 -c SHA256SUMS

## 1. UI source package

`ui/flappy-cuz.zip`, built from flap-vault-ui-template 0.1.29 against a clean
checkout synced to origin/main.

| Command | Result |
|---|---|
| `yarn vault:check flappy-cuz`   | PASSED, 0 blocking, 1 manual-review warning |
| `yarn vault:e2e flappy-cuz`     | PASSED, 17 checks, 0 issues |
| `yarn vault:package flappy-cuz` | PASSED |
| `yarn vault:verify-package`     | PASSED (marker, file list, metadata, hashes) |

All four ran in one pass with no source edits between them. E2E covered PC, iPad
and H5 across default, internal-market, dex-listed, wrong-network,
WebGL2-fallback, reduced-motion and context-loss. The evidence, including every
screenshot the harness took, is in `ui/e2e-report/`.

The one warning is the expected `manual-review/mini-app-3d`, the standard
`three-r3f-v1` review of performance tiers, asset provenance and fallback. It is
expected for any package that ships local 3D art.

Full detail, including the deliberate behaviour differences from the website and
the two host-chrome fixes: `ui/HANDOFF.md`.

### Binding is audit-stage and must be rebound before production

    chainId 56
    tokenAddresses: 0x9adc2f9dbc4578808f0cdb30d51b5199ff4b8888   ("TEST ONLY" / TEST)

**$大表哥 has no contract address yet.** The manifest binds to a real deployed
TEST token purely as Workbench and E2E proof, because
`tokenAddresses` must be a real deployed ERC20 ending in 7777 or 8888 and the
contract explicitly forbids substituting a plausible-looking placeholder.

Once the real token exists, apply the final production binding in Workbench, or
regenerate the package with the real token and rerun the same four commands.
Suggested `caRestrictionMode`: `reserved`.

## 2. Contracts source package

`contracts/bigcousin-flap-contracts-audit-2026-08-20.zip`

| Contract | Runtime | EIP-170 margin | Role |
|---|---|---|---|
| `BigCousinVaultUpgradeable` | 15,131 B | 9,445 B | Flap tax vault, splits QQQB 30/70 |
| `BigCousinVaultBeaconFactory` | 8,010 B | 16,566 B | BeaconProxy factory via VaultPortal |
| `FlappyCuzTreasury` | 10,667 B | 13,909 B | Holds game QQQB, pays signed receipts |

Verification as shipped:

    43 unit tests passed; 0 failed
     2 BSC mainnet-fork integration tests passed; 0 failed
    45 total; 0 failed

The fork test runs the real VaultPortal path against the live, enabled QQQB
quote token (`0x205812CdBed920aFf76C6580abD681a46D11efc7`): 7777 creation,
factory-created vault, transfer-plus-wake QQQB routing, curve buy, tax dispatch,
the 30/70 split landing in both treasuries, DEX graduation, post-DEX sell and
dispatch, then a signed payout of real tax-derived QQQB to a player wallet.

Rebuild:

    cd contracts
    forge build --sizes
    forge test --no-match-path "test/*mainnet*"
    forge test --match-path "test/*mainnet*" --fork-url https://bsc-dataseed.bnbchain.org

Scope, money flow and trust model: `contracts/AUDIT-SCOPE.md`.
Rule-by-rule compliance evidence: `contracts/FLAP-SPEC-CHECK.md`.

## Open items on our side

These are ours to close, not Flap's, but they affect the audit:

1. `code-auditor` has not yet run. Per our own standing rule, anything touching
   real funds passes it before deploy. This submission is source-only.
2. Immutable-once-set values still to be decided: the two treasury addresses,
   the owner key for `FlappyCuzTreasury`, and `maxClaimPerRun` /
   `maxDailyPerWallet` sized against the balance actually held.
3. Where the 70% remainder ultimately goes. Right now it is a single address.
4. The points-to-QQQB rate the signer applies, which is deliberately off-chain.
