Proof

Check every claim yourself.

Four facts you can check from the chain and the repo, the attacks we ran against the contract, and what these checks cannot show.

Access keys
0
vault.foundling.near
Vault code hash
9ab6b6…5a8a
sha256 of the deployed code
Strategy WASM hash
b15a66…a142
Pinned in the vault
Commitment
80493d…43e1
Hash of the sealed parameters
Parameters
Revealed
Anyone can replay the rules

Live vault · vault.foundling.near · as of block #224593688

Four facts, four commands.

Each command reads public state with the NEAR CLI or the tools in the repo. None of them needs a key.

  • Keys

    Access keys on the vault account

    near account list-keys vault.foundling.near network-config mainnet now

    Now: 0 access keys

  • Code

    Deployed contract code

    The reproducible build runs in Docker, at the commit that built this vault.

    cd contracts/vault && cargo near build reproducible-wasm && shasum -a 256 target/near/foundling_vault.wasm

    Now: sha256 9ab6b6d62d627f403f5aa8719cc420fea16dc67ceeffb250d21c09aee5aa5a8a

  • Strategy

    Strategy WASM the vault pins

    To rebuild it from source, run strategy/build.sh at the commit that built this binary.

    The pinned binary
    curl -sL 'https://raw.githubusercontent.com/zakyirsyaad/sp1a-wasm/79a27502738a8413792378c2ab6cc5e6a5f41d28/foundling-strategy-risk-manager.wasm' | shasum -a 256

    Now: wasm_hash b15a66b4b07a45a1d5f6fd4ca00c870a4d68b58c862f8795fff8702e316da142

  • Commitment

    Sealed parameters

    Reads the revealed parameters and salt from the vault and prints PASS commitment when they open this hash.

    python3 verify.py --live --vault vault.foundling.near --network mainnet

    Now: commitment 80493d3259005a95b9c327b9491f48b18c5d84d82650a9dfc361493c5cf243e1

Attack Lab

Sandbox results. These run against a local node, not the live vault.

All attacks and logs
AttackExpectedSandbox
over-capRejected(OVER_CAP)Pass
dripRejected(OVER_EPOCH_CAP) on the decision that crosses the limitPass
replayNONCE_MISMATCH, EXPIRED, FROZEN, or CycleFailed; no tradePass
bad-routeNo way out: Decision v1 has no route, asset or recipient field; extra agent fields are ignored and trades only go through the registered pool (I9); an unknown action is CycleFailed(MALFORMED)Pass
stale-priceRejected(PRICE_UNAVAILABLE) (or PRICE_STALE with a mocked publish_time)Pass
headline-injectionOne SellRisk lands, bounded by the wNEAR book; the same SellRisk inside the cooldown is refused COOLDOWN before it reaches OutLayer; after the cooldown the same amount finds an empty book, Rejected(OVER_BOOK); once the book is refilled the next sell lands once more and the total sold equals the total bought; a further refill that takes the rolling buy window past its epoch limit is Rejected(OVER_EPOCH_CAP). This is vault-side containment of an already-poisoned decision; the advisor itself is not exercisedPass
kill-agentNo new cycle from any account but the keeper; in-kind redeem still worksPass
governor-loosenThe method does not exist or is refused; a keeper rotation is only scheduled and the guardian can cancel itPass
double-redeemNo double payment; the balance becomes claimablePass
forged-callerNOT_KEEPER for keeper-only methods; the SDK refuses #[private] callbacks (Method <name> is private); ft_on_transfer from another contract refunds the full amount; state does not changePass
freeze-raceFROZEN; no new trade; redeem still worksPass
inflated-navRejected(OVER_ABS_CAP) by the absolute cap (I13)Pass
deflated-sellRejected(OVER_ABS_CAP) by cap_wnear and cap_sell_bpsPass
never-flatThe vault goes back to flat (wnear_book ≤ dust_wnear) and the deposit is mintedPass
setup-spamAt most one per target; the vault's NEAR does not drop below near_reservePass
advance-raceOne resend only (the Probing lock); the Rhea balance matches rhea_balPass

Pass means the contract refused the attack or the exit still worked. A result shows once its proof is committed from the reproducible build.

Ran on vault build sha256 b8fbbf8ee047cb370d052261cd48f0e0a5965eba9cd2843ed6ebd82e5559aa2b. That is not the code this vault reports, so these results describe the tested build.

What these checks cannot show.

A check proves what it checks. These are the questions it leaves open.

  • That the strategy is correct or makes money.

    Attestation shows which code ran, not that it is good.

  • That replay proves execution.

    It checks the rules against the recorded inputs.

  • That the contract has no bugs.

    There is no third-party audit and no upgrade path.

  • That trades stay private.

    Trades are visible on chain and slowly reveal the rules.

See the proof for each cycle.

Every cycle in the app shows its checks: pass, skip or fail, and why.

Open cycles

The files in proofs/ are a synthetic fixture. They test the checker, not this vault.