# Vaultfire V3 — Prompt Completion Matrix

- **Integrated review commit:** `468fe16c02252622790c96cbce8071d6573f0e63`
- **Readiness:** not pilot-ready; not mainnet-ready.
- **Classification:** **Implemented** means source/tests/artifacts exist;
  **Partial** means a known evidence, integration, or operational gap remains;
  **Blocker** means an external decision or production prerequisite is absent.

| Major requirement | Status | Implemented files / current evidence | Remaining boundary or blocker |
| --- | --- | --- | --- |
| Keep V3 additive and preserve V2 | Implemented | `baseline/deployments.json`; `baseline/V2_COMPATIBILITY_MATRIX.md`; `baseline/MIGRATION_PLAN.md` | No V2 upgrade or V2 fund/admin action occurred. |
| Freeze V2 bytecode | Implemented | `ci/check_v2_bytecode_manifest.py`; `ci/manifests/v2-bytecode-manifest.json` | 134 frozen observations are not a new live-chain collection. |
| Provide V2 ABI provenance | Partial / release-blocking | `baseline/build_v2_abi_package.py`; `baseline/check_v2_abi_package.py`; `baseline/V2_ABI_PROVENANCE.md`; `tests/test_v2_abi_package.py` | 35/36 names are provenance-backed; `VaultfireTrustAttestation` still lacks an authoritative ABI and strict mode fails. |
| Preserve V2 response behavior | Partial | `baseline/schemas/v2/route-response-fixtures.json`; `pr7/compat/build-v2-fixtures.py` | 1 exact fixture; 131 response fixtures intentionally unresolved. |
| Align V2 routes | Implemented with bounded detail | `baseline/schemas/v2/route-source-method-evidence.json`; `pr7/generated/v2-inventory-alignment.json`; `pr7/tests/api/v2-registry-alignment.spec.ts` | 132/132 V2 paths are aligned; 50 extracted paths are method-only, not fully operationally specified. |
| Generate x402/Bazaar metadata | Implemented static package | `pr7/generated/route-registry.json`; `coinbase-bazaar-v2.json`; `bazaar-readiness.json`; `pr7/tests/x402/bazaar-discovery.spec.ts` | 147 routes, 77 candidates, 0 static blocks, 29 Solana options. Publication, validation, settlement, and indexing are not evidenced. |
| Keep protocol/Bazaar/x402 versions distinct | Implemented | `pr7/BAZAAR_READINESS.md`; `pr7/tests/x402/bazaar-discovery.spec.ts`; `FINAL_REPORT.md` section 5 | Vaultfire contracts V3, Bazaar metadata v2, and x402 rail v2 must not be conflated. |
| Require live Bazaar evidence fail-closed | Implemented control / readiness blocker | `pr7/registry/validate_bazaar_readiness.py`; `pr7/evidence/bazaar-live-evidence.example.json` | No owner-provided public validation, settlement, accepted extension response, or indexing evidence exists. |
| Implement V3 contracts | Implemented | `v3-src/contracts/**`; `pr8/audit/AUDIT_SCOPE.md` | V3 is not deployed; no public V3 addresses are present. |
| Enforce native bond caps in contract | Implemented | `PartnershipBondV3Safe.sol`; `AccountabilityBondV3Safe.sol`; `SafeBondFactoryV3.sol`; specialized factories; `v3-src/test/bonds/BondNativeCapsV3.t.sol` | Immutable native caps are enforced and the tiny Base profile is recorded; independent review and deployed-constructor verification remain blocked. |
| Preserve aggregate liability through pull-payment credits | Implemented | Bond contracts above; `BondNativeCapsV3.t.sol`; `pr8/pilot/BASE_V3_OWNER_DECISIONS_REQUIRED.md` | Capacity releases only after withdrawal. Deployment verification remains blocked. |
| Exercise V3 safety in Foundry | Implemented | `v3-src/test/**`; current checkpoint | 121 RPC-free tests passed. Independent audit is still required. |
| Maintain solvency and stateful invariant coverage | Implemented | `v3-src/test/invariants/**`; `c3cd46a`; `468fe16` | Current build includes the replacement solvency invariant; audit/fork/deployed-state evidence remains separate. |
| Enforce loop bounds and static analysis | Implemented | `ci/check_loop_bounds.py`; `ci/manifests/v3-loop-bounds.json`; `ci/run_slither_gate.py`; `slither.config.json` | Slither has zero non-baselined findings; this is not an audit. |
| Verify deterministic build and size | Implemented | `ci/check_v3_reproducible_build.py`; `ci/manifests/v3-build-manifest.json`; current checkpoint | Build checkpoints A/B: 123 artifacts each with exact equal manifests. Sizes: 18,396 B / 16,929 B / 1,561 B. No deployed-bytecode comparison exists. |
| Test PR7 API/SDK/indexer/x402/Bazaar package | Implemented | `pr7/api/**`; `pr7/sdk/**`; `pr7/indexer/**`; `pr7/tests/**` | 46/46 current tests passed; package tests do not prove a live facilitator, API, or indexer. |
| Fail closed on V3 status/solvency | Implemented | `pr7/api/v3/protocol-status.ts`; `protocol-solvency.ts`; `pr7/compat/v3-envelope.ts` | No live V3 readers/deployments or liability plans; status remains degraded. |
| Provide unsigned migration/proposal tooling | Implemented | `pr8/migration/safe_payload_generator.py`; `pr8/migration/README.md`; `pr8/pilot/deployment_manifest.py` | 17/17 manifest/payload tests passed. Tooling is offline/unsigned and must not become a production authorization. |
| Keep migration voluntary and rollback additive | Implemented plan | `pr8/ui/migration-app/**`; `pr8/runbooks/INCIDENT_RUNBOOK.md` | UI is not deployed; real migration and rollback operations remain unexecuted. |
| Provide Base deployment/rollback fork gate | Implemented with partial multi-chain coverage | `ci/fork-gates.sh`; `v3-src/test/fork/base/BasePilotDeploymentRollbackV3.t.sol`; `BASE_FORK_GATE_RESULTS.md` | Official Base-mainnet fork simulation passed. Availability: Base executed; Avalanche, Arbitrum, and Polygon skipped due absent RPCs. No broadcast occurred. |
| Keep V3 address inventory empty until verified | Blocker enforced | `baseline/deployments.json`; `pr8/pilot/base_v3_deployment_manifest.json`; `pr9/website/generated/website-addresses.generated.ts` | Public V3 addresses remain absent; website money movement must remain blocked. |
| Enforce default-off website actions | Implemented package / deployment blocker | `pr9/website/src/version-flags.ts`; `v3-action-gate.ts`; `pr9/website/tests/**` | 36/36 tests passed. Production vendored website mirror is not wired or deployed. |
| Keep pilot gate fail-closed | Implemented control / blocker | `pr8/pilot/check_pilot_gate.py`; `pr8/pilot/pilot_gate_evidence.json` | `pilotReady: false`; addresses and owner roles remain unset; cap review plus audit/ops/deployment evidence remain absent. |
| Document multisig-only governance transport | Implemented plan | `pr8/governance/MULTISIG_TIMELOCK_PLAN.md`; `pr8/migration/README.md`; `bc18934` | Signers, guardian, treasury, attesters, adjudicators, and actual owner are not chosen or deployed. |
| Prepare audit, bounty, and operations | Partial / external blocker | `pr8/audit/AUDIT_SCOPE.md`; `pr8/audit/SECURITY.md`; monitoring and incident runbooks | No independent audit, ratified live bounty, monitored on-call service, or rehearsal evidence. |
| Preserve no-deploy boundary | Implemented | `ci/fork-gates.sh`; fork simulation; unsigned manifest/payload tooling | Explicit authorized deployment approval remains absent. |
| Authorize pilot or mainnet | **Blocked** | `FINAL_REPORT.md` section 10; `pr8/pilot/pilot_gate_evidence.json` | All external blockers above must be resolved with attributable evidence. |

## Required interpretation

Passing static/package/fork checks is implementation and pre-deployment
evidence only. It never converts V3 source, Bazaar metadata, or x402 payment
metadata into a deployed, owner-approved, pilot-ready, or mainnet-ready system.
