{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "vaultfire.base-mainnet-bonds-only-manifest.v2.schema.json",
  "title": "Vaultfire Base Mainnet Bonds-only Pre-deployment Manifest",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema",
    "schemaVersion",
    "status",
    "chain",
    "scope",
    "v2Compatibility",
    "missionPolicy",
    "integrity",
    "provenance",
    "compiler",
    "caps",
    "roles",
    "governance",
    "expectedAddresses",
    "addressDerivation",
    "deployments",
    "guardianPauseFlow",
    "factoryConfiguration",
    "runtimeIdentity",
    "childBondPolicy",
    "evidence",
    "approval",
    "postDeployAssertions"
  ],
  "properties": {
    "schema": {
      "const": "vaultfire.base-mainnet-bonds-only-manifest.v2"
    },
    "schemaVersion": {
      "const": "2.0.0"
    },
    "status": {
      "enum": [
        "pre-deployment-review",
        "finalization-candidate"
      ]
    },
    "chain": {
      "const": {
        "name": "base",
        "chainId": 8453
      }
    },
    "scope": {
      "type": "object"
    },
    "v2Compatibility": {
      "const": {
        "preserved": true,
        "defaultLiveSurface": "V2",
        "v3PaymentRoutesEnabled": false,
        "integrations": {
          "erc8004IdentityRegistryV2": "0xa7BD20bf5De63df949cA5Be2F20835978eCba81A",
          "missionEnforcementV2": "0xBc4208A7A59af3B7E438d3308C3dc0d299d739a7"
        }
      }
    },
    "missionPolicy": {
      "const": {
        "priorities": [
          "morals-over-metrics",
          "privacy-over-surveillance",
          "freedom-over-control"
        ],
        "economicObjective": "human-thriving-more-profitable-than-extraction",
        "surveillanceRequired": false,
        "metricsAffectEligibility": false,
        "metricsAffectPrincipal": false,
        "metricsAffectSlashing": false,
        "flourishingMeasurements": {
          "optional": true,
          "privacyMinimized": true,
          "custodial": false,
          "slashable": false,
          "principalLinked": false,
          "breachAdjudicationLinked": false
        }
      }
    },
    "integrity": {
      "type": "object",
      "required": [
        "canonicalization",
        "schemaVersionSha256",
        "manifestPayloadSha256"
      ]
    },
    "provenance": {
      "type": "object",
      "required": [
        "sourceCommit",
        "sourceTree",
        "contractsTree",
        "evidenceCommit",
        "evidenceTree",
        "sourceArchiveSha256",
        "evidenceArchiveSha256",
        "reviewerBundleSha256",
        "validationArchiveSha256"
      ]
    },
    "compiler": {
      "const": {
        "solc": "0.8.24",
        "viaIR": true,
        "optimizer": {
          "enabled": true,
          "runs": 200
        },
        "evmVersion": "paris",
        "bytecodeHash": "none"
      }
    },
    "caps": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "globalWei",
        "perPositionWei",
        "partnershipPartyWei",
        "partnershipBondWei",
        "partnershipAggregateWei",
        "accountabilityBondWei",
        "accountabilityAggregateWei"
      ]
    },
    "roles": {
      "type": "object"
    },
    "governance": {
      "const": {
        "threshold": 3,
        "signerCount": 5,
        "timelockSeconds": 86400,
        "minimumTimelockSeconds": 86400,
        "guardianRotationDelaySeconds": 86400
      }
    },
    "expectedAddresses": {
      "type": "object"
    },
    "addressDerivation": {
      "const": {
        "method": "CREATE/deployer-nonce",
        "deployer": null,
        "startingNonce": null,
        "salt": null
      }
    },
    "deployments": {
      "type": "array",
      "minItems": 7,
      "maxItems": 7
    },
    "factoryConfiguration": {
      "const": {
        "method": "post-deploy-governance-proposal",
        "target": "$expectedAddresses.bondFactory",
        "signature": "configureFactories(address,address)",
        "arguments": [
          "$expectedAddresses.partnershipFactory",
          "$expectedAddresses.accountabilityFactory"
        ],
        "directCallForbidden": true,
        "requiredBeforeDeployEnablement": true
      }
    },
    "runtimeIdentity": {
      "const": {
        "method": "immutable-patched-runtime-code-keccak256",
        "expectedPartnershipFactoryRuntimeCodeHash": null,
        "expectedAccountabilityFactoryRuntimeCodeHash": null,
        "expectedPartnershipBondRuntimeCodeHash": null,
        "expectedAccountabilityBondRuntimeCodeHash": null,
        "pinnedBy": "SafeBondFactoryV3-constructor"
      }
    },
    "guardianPauseFlow": {
      "type": "object"
    },
    "evidence": {
      "type": "object"
    },
    "approval": {
      "const": {
        "explicitMainnetApproval": false,
        "approvalEvidence": null,
        "deploymentAuthorized": false
      }
    },
    "postDeployAssertions": {
      "type": "array"
    },
    "childBondPolicy": {
      "const": {
        "rewardProgramArgument": "address(0)",
        "rewardTerms": "disabled",
        "maximumBondWei": "20000000000000000",
        "exactlyOneActiveAllowlistedPartner": true
      }
    }
  }
}
