{
  "candidateCommitAuthority": "external-conformance-envelope-v1",
  "constants": {
    "accountabilityRuleSchemaHash": "0x6b336d367a70ce5b691cac5f5914d084375d594df4046b2c759cdaf835be8fea",
    "maxChallengeWindow": "2592000",
    "objectiveEvidenceSchemaHash": "0x193783e20da7ca4f4cdbde9b81349699958222dfbb7de2cf977de3897255e12a",
    "privacyExclusionsHash": "0xb82b125017c65a2e448f5a9cb1d9143dd5246787ca1ea647def021250472f2fa",
    "zeroAddress": "0x0000000000000000000000000000000000000000",
    "zeroBytes32": "0x0000000000000000000000000000000000000000000000000000000000000000"
  },
  "eip712": {
    "domain": {
      "name": "Vaultfire",
      "version": "3.0.0"
    },
    "domainType": "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)",
    "replayKeys": [
      "chainId",
      "verifyingContract",
      "signer",
      "nonce"
    ],
    "types": {
      "accountabilityTerms": "Terms(uint256 bondId,address aiCompany,address counterparty,uint256 companyStake,address stakeAsset,bytes32 missionHash,bytes32 objectiveBreachRulesHash,uint8 objectiveRuleClass,uint16 objectiveRuleSchemaVersion,bytes32 flourishRewardRulesHash,uint256 rewardProgramId,uint64 activePeriodStart,uint64 activePeriodEnd,uint64 challengeWindow,uint96 nonce,uint256 chainId,string protocolVersion)",
      "mutualSettlement": "MutualSettlement(address bond,uint256 chainId,uint256 bondId,bytes32 termsHash,uint256 partyAAmount,uint256 partyBAmount,uint96 nonce,uint64 deadline)",
      "objectiveEvidence": "ObjectiveEvidence(address bond,uint256 chainId,uint256 bondId,bytes32 termsHash,bytes32 ruleHash,address canonicalSource,bytes32 canonicalSourceId,bytes32 obligationId,uint64 requiredBy,uint64 recordedAt,uint64 observedAt,uint96 nonce,uint64 signatureDeadline)",
      "partnershipTerms": "Terms(uint256 bondId,address partyA,address partyB,uint256 partyAStake,uint256 partyBStake,address stakeAsset,bytes32 partnershipType,bytes32 breachConditionsHash,uint8 objectiveRuleClass,uint16 objectiveRuleSchemaVersion,bytes32 flourishRewardConditionsHash,uint256 rewardProgramId,uint64 proposalDeadline,uint64 activePeriodStart,uint64 activePeriodEnd,uint64 challengeWindow,uint96 nonce,uint256 chainId,string protocolVersion)",
      "typedResolution": "TypedResolution(address bond,uint256 chainId,uint256 bondId,bytes32 termsHash,bytes32 ruleHash,bytes32 evidenceHash,bytes32 challengeHash,bool evidenceValid,uint96 nonce,uint64 deadline)"
    }
  },
  "generatedV3ApiRoutes": [
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "contracts",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/contracts",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "contract",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/contracts/{name}",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "bond-party",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/bonds",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "bond",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/bonds/{bondId}",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "dispute",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/disputes/{disputeId}",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "evidence",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/evidence/{evidenceHash}",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "task",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/tasks/{taskId}",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "mandate",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/mandates/{mandateHash}",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "mandate-compat",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/mandate/{mandateHash}",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "governance-proposal",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/governance/proposals/{proposalId}",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "pull-credit",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/pull-credits",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "migration",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/migration/dispositions",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "status",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/protocol/status",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "solvency",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/protocol/solvency",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "x402-discovery",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/x402/discovery",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "x402-challenge-status",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/x402/challenge-status",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "x402-challenge",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/x402/challenges/{challengeId}",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "x402-receipt",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/x402/receipts/{requestId}",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "solana-health",
      "idempotencyRule": "none",
      "method": "GET",
      "path": "/api/v3/solana/health",
      "privacy": "public"
    },
    {
      "contractStatus": "read-only",
      "dataSource": "computed",
      "finality": "soft",
      "id": "retired-partnership-write",
      "idempotencyRule": "none",
      "method": "POST",
      "path": "/api/v3/x402/actions/create-partnership-bond",
      "privacy": "restricted"
    }
  ],
  "protocolVersion": "3.0.0",
  "schema": "vaultfire.v3.open.interface-snapshot.v1",
  "schemaVersion": "1.0.0",
  "sdkDeployments": [
    {
      "abiIdentity": "0x0c18d05c868716fad4bfc1fcfad2da51c83f247de06a7e3871dcece768a9526f",
      "canonicalSignatures": [
        "DOMAIN_SEPARATOR()",
        "FLOURISHING_NON_CONTROL_BOUNDARY()",
        "activate(uint256)",
        "advanceObjectiveEvidence(uint256)",
        "bondOf(uint256)",
        "cancelBeforeActivation(uint256)",
        "consensus()",
        "createBond((uint256,address,address,uint256,address,bytes32,bytes32,uint8,uint16,bytes32,uint256,uint64,uint64,uint64,uint96,uint256,string),(address,bytes32,bytes32,bytes32,uint64,uint64,uint64,uint64,uint256,bytes32,bytes32,bytes32,bytes32,uint8,uint8),(address[],address[]),bytes,bytes)",
        "createBond((uint256,address,address,uint256,address,bytes32,bytes32,uint8,uint16,bytes32,uint256,uint64,uint64,uint64,uint96,uint256,string),bytes,bytes)",
        "creditAssets(address)",
        "creditLiabilities(address)",
        "creditOf(address,address)",
        "disputeRegistry()",
        "enforcementOf(uint256)",
        "enforcementStateOf(uint256)",
        "expireUnactivated(uint256)",
        "expireUnfunded(uint256)",
        "forceExit(uint256)",
        "fundNative(uint256)",
        "hashEnforcementConfig((address,bytes32,bytes32,bytes32,uint64,uint64,uint64,uint64,uint256,bytes32,bytes32,bytes32,bytes32,uint8,uint8))",
        "hashObjectiveEvidence((address,uint256,uint256,bytes32,bytes32,address,bytes32,bytes32,uint64,uint64,uint64,uint96,uint64))",
        "hashTerms((uint256,address,address,uint256,address,bytes32,bytes32,uint8,uint16,bytes32,uint256,uint64,uint64,uint64,uint96,uint256,string))",
        "isCreditSolvent(address)",
        "markExpired(uint256)",
        "maxAggregateNativeLiability()",
        "maxBondNativePrincipal()",
        "nativeLiability()",
        "nextBondId()",
        "nonceUsed(address,uint96)",
        "owner()",
        "pause()",
        "paused()",
        "pilotController()",
        "submitObjectiveEvidence((address,uint256,uint256,bytes32,bytes32,address,bytes32,bytes32,uint64,uint64,uint64,uint96,uint64),address[],bytes[])",
        "unpause()",
        "withdrawCredit(address)"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "sdkName": "accountabilityBond",
      "signatureCount": 36,
      "solidityModule": "AccountabilityBondV3Safe"
    },
    {
      "abiIdentity": "0x954aeee609e92a621e726dcae77be193085651626941d582ca2f7f3b7c073d8c",
      "canonicalSignatures": [
        "DOMAIN_SEPARATOR()",
        "FLOURISHING_MISSION()",
        "FLOURISHING_NON_CONTROL_BOUNDARY()",
        "MUTUAL_SETTLEMENT_TYPEHASH()",
        "PROTOCOL_VERSION_HASH()",
        "SETTLEMENT_OUTCOME()",
        "TERMS_TYPEHASH()",
        "activate(uint256)",
        "advanceToFinalizable(uint256)",
        "authorizedRespondent(uint256,address)",
        "bondOf(uint256)",
        "cancelBeforeActivation(uint256)",
        "cancelStalledSettlement(uint256)",
        "challengeSettlement(uint256,uint256)",
        "consensus()",
        "createBond((uint256,address,address,uint256,uint256,address,bytes32,bytes32,uint8,uint16,bytes32,uint256,uint64,uint64,uint64,uint64,uint96,uint256,string),bytes,bytes)",
        "creditAssets(address)",
        "creditLiabilities(address)",
        "creditOf(address,address)",
        "disputePayoutCap(uint256)",
        "disputePayoutSource(uint256)",
        "disputeRegistry()",
        "disputeSubject(uint256)",
        "expireUnactivated(uint256)",
        "expireUnfunded(uint256)",
        "forceExit(uint256)",
        "freezeSettlement(uint256,uint96,(uint256,uint256,uint256))",
        "fundNative(uint256)",
        "hashMutualSettlement((address,uint256,uint256,bytes32,uint256,uint256,uint96,uint64))",
        "hashTerms((uint256,address,address,uint256,uint256,address,bytes32,bytes32,uint8,uint16,bytes32,uint256,uint64,uint64,uint64,uint64,uint96,uint256,string))",
        "isAuthorizedChallenger(uint256,address)",
        "isCreditSolvent(address)",
        "markExpired(uint256)",
        "maxAggregateNativeLiability()",
        "maxBondNativePrincipal()",
        "maxPartyNativePrincipal()",
        "mutualSettlementNonceUsed(uint256,uint96)",
        "nativeLiability()",
        "nextBondId()",
        "nonceUsed(address,uint96)",
        "owner()",
        "pause()",
        "paused()",
        "pilotController()",
        "releaseDisputePayout(uint256,address,uint256)",
        "requestSettlement(uint256)",
        "resolveChallenge(uint256)",
        "rewardProgram()",
        "settle(uint256)",
        "settleByMutualConsent((address,uint256,uint256,bytes32,uint256,uint256,uint96,uint64),bytes,bytes)",
        "settlementChallengeContext(uint256)",
        "settlementSnapshot(uint256,(uint256,uint256,uint256))",
        "skimSurplus(address,address,uint256)",
        "unpause()",
        "withdrawCredit(address)"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "sdkName": "partnershipBond",
      "signatureCount": 55,
      "solidityModule": "PartnershipBondV3Safe"
    },
    {
      "abiIdentity": "0xcf81d69fed252f21bfd7661ff53868aa81b9ce1a4a1c89edbec9eaabffa7ad0a",
      "canonicalSignatures": [
        "CANONICAL_POLICY_SHA256()",
        "MAX_GUARDIAN_PAUSE_TARGETS()",
        "MAX_GUARDIAN_ROTATION_DELAY()",
        "MAX_PROPOSAL_DATA_LENGTH()",
        "MAX_SIGNERS()",
        "MAX_TIMELOCK_SECONDS()",
        "PROPOSAL_LIFETIME()",
        "acceptGuardian()",
        "addGuardianPauseTarget(address)",
        "callPolicy(address,bytes4)",
        "cancel(uint256)",
        "cancelGuardianRotation()",
        "cancellationConfirmations(uint256)",
        "cancellationConfirmed(uint256,address)",
        "canonicalRuntimeCodehash(address)",
        "confirm(uint256)",
        "confirmed(uint256,address)",
        "constructorPinnedPolicyTarget(address)",
        "execute(uint256)",
        "governanceConfigVersion()",
        "governancePolicyCommitment()",
        "guardian()",
        "guardianPause(address)",
        "guardianPauseTargetCount()",
        "guardianRotationDelay()",
        "isGovernanceCallAllowed(address,uint256,bytes)",
        "isGuardianPauseTarget(address)",
        "isSigner(address)",
        "minimumTimelockSeconds()",
        "pendingGuardian()",
        "pendingGuardianAcceptAfter()",
        "pinCanonicalAddress(address,bytes32)",
        "policyCommitment()",
        "policyVersion()",
        "proposalCount()",
        "proposalPolicyCommitment(uint256)",
        "proposals(uint256)",
        "propose(address,uint256,bytes)",
        "proposeGuardian(address)",
        "setCallPolicy(address,bytes4,bool,uint96,bytes32)",
        "setSigners(address[],uint256)",
        "setTimelock(uint256)",
        "signers(uint256)",
        "threshold()",
        "timelockSeconds()"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "sdkName": "governance",
      "signatureCount": 45,
      "solidityModule": "MultisigGovernanceV3"
    },
    {
      "abiIdentity": "0xe31e9d196bf5a37c328313f688b0d6eff881847e6c46437c1fc617faff8e80e3",
      "canonicalSignatures": [
        "DOMAIN_SEPARATOR()",
        "EXECUTION_DOMAIN()",
        "GOVERNANCE_POLICY_MODULE_ID()",
        "MANDATE_TYPEHASH()",
        "MAX_ALLOWED_ACTIONS()",
        "MAX_ALLOWED_CONTRACTS()",
        "MAX_ALLOWED_SELECTORS()",
        "MAX_PROHIBITED_ACTIONS()",
        "PROTOCOL_VERSION()",
        "allowedModules(address)",
        "consume((uint256,address,uint256,address,uint256,address,address,bytes32[],bytes32[],address[],bytes4[],address,uint256,uint256,bytes32,bytes32,uint64,uint64,uint96,uint256,string),bytes32,address,bytes4,uint256,address)",
        "consumeExecution(bytes,bytes32,address,bytes4,uint256,address,bytes32,bytes32,bytes32,uint256)",
        "hashMandate((uint256,address,uint256,address,uint256,address,address,bytes32[],bytes32[],address[],bytes4[],address,uint256,uint256,bytes32,bytes32,uint64,uint64,uint96,uint256,string))",
        "identityRegistry()",
        "identityRegistryCodehash()",
        "isActive(bytes32)",
        "mandateForNonce(address,uint96)",
        "owner()",
        "registerMandate((uint256,address,uint256,address,uint256,address,address,bytes32[],bytes32[],address[],bytes4[],address,uint256,uint256,bytes32,bytes32,uint64,uint64,uint96,uint256,string),bytes)",
        "requiredExecutionAdapterCodehash()",
        "revokeMandate(bytes32)",
        "revokeMandate(bytes32,address)",
        "setModuleAuthorization(address,bool)",
        "state(bytes32)"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "sdkName": "mandateRegistry",
      "signatureCount": 24,
      "solidityModule": "MandateRegistryV3"
    }
  ],
  "sdkReadRoutes": [
    {
      "disposition": "adapter-required",
      "route": "bonds"
    },
    {
      "disposition": "adapter-required",
      "route": "pullCredits"
    },
    {
      "disposition": "adapter-required",
      "route": "solvency"
    },
    {
      "disposition": "adapter-required",
      "route": "mandates"
    },
    {
      "disposition": "unavailable",
      "route": "capabilities"
    },
    {
      "disposition": "retired",
      "route": "taskEscrow"
    },
    {
      "disposition": "adapter-required",
      "route": "governance"
    },
    {
      "disposition": "unavailable",
      "route": "x402.status"
    },
    {
      "disposition": "unavailable",
      "route": "x402.discovery"
    },
    {
      "disposition": "unavailable",
      "route": "x402.challenge"
    },
    {
      "disposition": "unavailable",
      "route": "x402.receipt"
    }
  ],
  "sdkWriteMethods": [
    {
      "canonicalSignatures": [
        "activate(uint256)",
        "advanceObjectiveEvidence(uint256)",
        "cancelBeforeActivation(uint256)",
        "createBond((uint256,address,address,uint256,address,bytes32,bytes32,uint8,uint16,bytes32,uint256,uint64,uint64,uint64,uint96,uint256,string),(address,bytes32,bytes32,bytes32,uint64,uint64,uint64,uint64,uint256,bytes32,bytes32,bytes32,bytes32,uint8,uint8),(address[],address[]),bytes,bytes)",
        "expireUnactivated(uint256)",
        "expireUnfunded(uint256)",
        "forceExit(uint256)",
        "fundNative(uint256)",
        "markExpired(uint256)",
        "submitObjectiveEvidence((address,uint256,uint256,bytes32,bytes32,address,bytes32,bytes32,uint64,uint64,uint64,uint96,uint64),address[],bytes[])",
        "withdrawCredit(address)"
      ],
      "methodCount": 11,
      "sdkName": "accountabilityBond"
    },
    {
      "canonicalSignatures": [
        "activate(uint256)",
        "cancelBeforeActivation(uint256)",
        "createBond((uint256,address,address,uint256,uint256,address,bytes32,bytes32,uint8,uint16,bytes32,uint256,uint64,uint64,uint64,uint64,uint96,uint256,string),bytes,bytes)",
        "expireUnactivated(uint256)",
        "expireUnfunded(uint256)",
        "forceExit(uint256)",
        "fundNative(uint256)",
        "markExpired(uint256)",
        "settleByMutualConsent((address,uint256,uint256,bytes32,uint256,uint256,uint96,uint64),bytes,bytes)",
        "withdrawCredit(address)"
      ],
      "methodCount": 10,
      "sdkName": "partnershipBond"
    },
    {
      "canonicalSignatures": [
        "acceptGuardian()",
        "cancel(uint256)",
        "cancelGuardianRotation()",
        "confirm(uint256)",
        "execute(uint256)",
        "guardianPause(address)",
        "propose(address,uint256,bytes)",
        "proposeGuardian(address)"
      ],
      "methodCount": 8,
      "sdkName": "governance"
    },
    {
      "canonicalSignatures": [
        "consumeExecution(bytes,bytes32,address,bytes4,uint256,address,bytes32,bytes32,bytes32,uint256)",
        "registerMandate((uint256,address,uint256,address,uint256,address,address,bytes32[],bytes32[],address[],bytes4[],address,uint256,uint256,bytes32,bytes32,uint64,uint64,uint96,uint256,string),bytes)",
        "revokeMandate(bytes32)",
        "revokeMandate(bytes32,address)"
      ],
      "methodCount": 4,
      "sdkName": "mandateRegistry"
    }
  ],
  "sdkWritePolicy": {
    "canonicalAddressPinning": "only-self-append-only-codehash-bound",
    "canonicalPolicyMutationSignature": "setCallPolicy(address,bytes4,bool,uint96,bytes32)",
    "configurationWritesExposed": false,
    "excludedGovernanceConfigurationSignatures": [
      "addGuardianPauseTarget(address)",
      "pinCanonicalAddress(address,bytes32)",
      "setCallPolicy(address,bytes4,bool,uint96,bytes32)",
      "setSigners(address[],uint256)",
      "setTimelock(uint256)"
    ]
  },
  "stateMachine": {
    "accountabilityTimeout": {
      "acceptedLiabilityTimeout": "settle-if-current-breach-otherwise-full-refund",
      "boundary": "activePeriodEnd",
      "callableWhilePaused": true,
      "canonicalRevalidation": "same-timestamp-before-settlement",
      "genericDisputeSelectors": "retired"
    },
    "ordinals": [
      "Uninitialized",
      "Proposed",
      "Accepted",
      "Funded",
      "Active",
      "SettlementRequested",
      "Finalizable",
      "Challenged",
      "SettlementFrozen",
      "Settled",
      "Cancelled",
      "Expired",
      "ForceExited"
    ],
    "terminal": [
      "Settled",
      "Cancelled",
      "ForceExited"
    ],
    "transitions": [
      "Uninitialized>Proposed",
      "Proposed>Accepted",
      "Proposed>Expired",
      "Proposed>Cancelled",
      "Accepted>Funded",
      "Accepted>Cancelled",
      "Accepted>Expired",
      "Funded>Active",
      "Funded>Cancelled",
      "Funded>Expired",
      "Active>SettlementRequested",
      "Active>Expired",
      "SettlementRequested>Finalizable",
      "SettlementRequested>Challenged",
      "SettlementRequested>Cancelled",
      "SettlementRequested>Expired",
      "Finalizable>SettlementFrozen",
      "Finalizable>Cancelled",
      "Finalizable>Expired",
      "SettlementFrozen>Settled",
      "SettlementFrozen>Cancelled",
      "SettlementFrozen>Expired",
      "Challenged>Cancelled",
      "Challenged>SettlementFrozen",
      "Expired>ForceExited"
    ]
  },
  "supportedSourceModules": [
    {
      "allowedProtectedDecisions": [],
      "boundaryRule": "objective attestation utility only; no supported protected-decision consumer",
      "capabilityTags": [
        "objective-protocol"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "ThresholdConsensusV3",
      "path": "v3-src/contracts/consensus/ThresholdConsensusV3.sol",
      "sha256": "9c4b70400ea2623a5e2854292669a7a5e0e428cf0c8e9d9294f0db9066d08c88",
      "supportStatus": "supported-source"
    },
    {
      "allowedProtectedDecisions": [],
      "boundaryRule": "deployment-only factory; exact initcode and runtime hashes enforced",
      "capabilityTags": [
        "objective-protocol"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "AccountabilityBondFactoryV3",
      "path": "v3-src/contracts/bonds/AccountabilityBondFactoryV3.sol",
      "sha256": "d1d9ab0900787d52cef71d3fc8816b109a93ceb521281da69800080177dc1982",
      "supportStatus": "supported-source"
    },
    {
      "allowedProtectedDecisions": [
        "custody",
        "slashing",
        "settlement"
      ],
      "boundaryRule": "codehash-pinned canonical on-chain deadline fact; deterministic pre-agreed slash",
      "capabilityTags": [
        "objective-protocol"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "AccountabilityBondV3Safe",
      "path": "v3-src/contracts/bonds/AccountabilityBondV3Safe.sol",
      "sha256": "fffa87569e1afbc74301eccb099815a27b2954586e13f05b8c8e766a096ccffa",
      "supportStatus": "supported-source"
    },
    {
      "allowedProtectedDecisions": [],
      "boundaryRule": "deployment-only factory; coordinator and child runtime pinned",
      "capabilityTags": [
        "objective-protocol"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "PartnershipBondFactoryV3",
      "path": "v3-src/contracts/bonds/PartnershipBondFactoryV3.sol",
      "sha256": "cc821a05781f80268ea0019a82a69e0422b62b95408d86431989157722fae105",
      "supportStatus": "supported-source"
    },
    {
      "allowedProtectedDecisions": [
        "custody",
        "settlement"
      ],
      "boundaryRule": "mutual participant authorization and deterministic timeout recovery only",
      "capabilityTags": [
        "objective-protocol"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "PartnershipBondV3Safe",
      "path": "v3-src/contracts/bonds/PartnershipBondV3Safe.sol",
      "sha256": "31104305610ac94e9c1213a12ce164f36e5ad80fb053988a2a159f6cdd5ecfe3",
      "supportStatus": "supported-source"
    },
    {
      "allowedProtectedDecisions": [
        "access"
      ],
      "boundaryRule": "exact factory/child codehash validation and controller registration",
      "capabilityTags": [
        "objective-protocol"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "SafeBondFactoryV3",
      "path": "v3-src/contracts/bonds/SafeBondFactoryV3.sol",
      "sha256": "7139ef1f9f6445419beb7d6305fffce2538e6f37c2b56851484c9bd638c55d4a",
      "supportStatus": "supported-source"
    },
    {
      "allowedProtectedDecisions": [],
      "boundaryRule": "informational typed attestations only; no supported protected-decision consumer",
      "capabilityTags": [
        "objective-protocol"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "EvidenceRegistryV3",
      "path": "v3-src/contracts/evidence/EvidenceRegistryV3.sol",
      "sha256": "3ae142ed5f23954175bb63ae30405e9903d533d16509def9d9807b8bc87b26af",
      "supportStatus": "supported-source"
    },
    {
      "allowedProtectedDecisions": [
        "custody",
        "access",
        "eligibility",
        "pricing",
        "slashing",
        "settlement",
        "disputes",
        "routing"
      ],
      "boundaryRule": "default-deny target/selector/value policy, committed policy updates, timelock, and proposal expiry",
      "capabilityTags": [
        "objective-protocol"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "MultisigGovernanceV3",
      "path": "v3-src/contracts/governance/MultisigGovernanceV3.sol",
      "sha256": "993a66ca97ce77b6b240d8ed607e26d9755f86ecdf0361dffd70951d83ac8cfe",
      "supportStatus": "supported-source"
    },
    {
      "allowedProtectedDecisions": [],
      "boundaryRule": "codehash-pinned read-only identity adapter; no protected-decision grant",
      "capabilityTags": [
        "objective-protocol"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "ERC8004IdentityAdapterV3",
      "path": "v3-src/contracts/identity/ERC8004IdentityAdapterV3.sol",
      "sha256": "b448004372964a434392c566d1b51434afe9f93920c21360b6f878a1be765abf",
      "supportStatus": "supported-source"
    },
    {
      "allowedProtectedDecisions": [
        "custody",
        "access",
        "routing"
      ],
      "boundaryRule": "principal-signed finite mandate with exact target, selector, value and execution binding",
      "capabilityTags": [
        "objective-protocol"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "MandateExecutionAdapterV3",
      "path": "v3-src/contracts/mandate/MandateExecutionAdapterV3.sol",
      "sha256": "2a1aea1c66a45f845e8a128d596b8525ea882f7289d42e89d483a5d8ac444943",
      "supportStatus": "supported-source"
    },
    {
      "allowedProtectedDecisions": [
        "custody",
        "access",
        "routing"
      ],
      "boundaryRule": "non-empty sorted target/selector scope and finite spend/rate caps",
      "capabilityTags": [
        "objective-protocol"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "MandateRegistryV3",
      "path": "v3-src/contracts/mandate/MandateRegistryV3.sol",
      "sha256": "c6665d816d1f1f84cb8ec6514a3b2e7914fb97d0408ce3865998f4e592784607",
      "supportStatus": "supported-source"
    },
    {
      "allowedProtectedDecisions": [
        "custody",
        "access"
      ],
      "boundaryRule": "bounded allowlist, deployment gate, allocation caps, and guardian coverage",
      "capabilityTags": [
        "objective-protocol"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "BasePilotAccessControllerV3",
      "path": "v3-src/contracts/pilot/BasePilotAccessControllerV3.sol",
      "sha256": "1aa6fed226bdc948e3693fe57c2d2a1df8a448345a08dfec2376b95c57891f28",
      "supportStatus": "supported-source"
    },
    {
      "allowedProtectedDecisions": [],
      "boundaryRule": "informational-only and source-isolated from supported protected decisions",
      "capabilityTags": [
        "reputation"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "StreetCredV3",
      "path": "v3-src/contracts/reputation/StreetCredV3.sol",
      "sha256": "622aa350e3b82bb6ef9e3892e621d98f7b0a884a0b103fd09e64779dfb8ce461",
      "supportStatus": "supported-source"
    },
    {
      "allowedProtectedDecisions": [
        "custody",
        "pricing"
      ],
      "boundaryRule": "ERC-4626 deterministic accounting and explicit asset custody",
      "capabilityTags": [
        "objective-protocol"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "VaultfireBIPVaultV3",
      "path": "v3-src/contracts/vault/VaultfireBIPVaultV3.sol",
      "sha256": "e5976db15565979b24f7bc158d2e5bc384fb4f687fb0c129448648f4d872e877",
      "supportStatus": "supported-source"
    },
    {
      "allowedProtectedDecisions": [
        "slashing"
      ],
      "boundaryRule": "exact non-proxy append-only self-authenticated action timestamp source; runtime codehash is protocol-pinned",
      "capabilityTags": [
        "objective-protocol"
      ],
      "deploymentStatus": "not-deployed-not-authorized",
      "module": "AccountabilityCanonicalSourceV3",
      "path": "v3-src/contracts/bonds/AccountabilityCanonicalSourceV3.sol",
      "sha256": "3f921a5d1a6cf3ff179afa1258bffd5b9a8125fe30c4bb72e0ea0f3565d45bc0",
      "supportStatus": "supported-source"
    }
  ],
  "truth": {
    "audited": false,
    "authorized": false,
    "deployed": false,
    "endorsed": false
  }
}
