{
  "formatVersion": 1,
  "package": "@midnight-ntwrk/credential-compact",
  "sourceRoot": "packages/core/compact/src",
  "entrypoints": [
    {
      "export": "./credentials.compact",
      "source": "credentials.compact"
    },
    {
      "export": "./credentials/composable.compact",
      "source": "credentials/composable.compact"
    }
  ],
  "circuits": [
    {
      "id": "schema-reference-validation",
      "source": "credentials/types.compact",
      "symbol": "assertValidSchemaRef",
      "classification": "supported",
      "operation": "validate-schema-reference",
      "evidence": {
        "positive": ["positive/schema-reference-v1"],
        "negative": ["negative/reject-empty-package-id"]
      }
    },
    {
      "id": "schema-reference-matching",
      "source": "credentials/types.compact",
      "symbol": "assertMatchingSchemaRefs",
      "classification": "supported",
      "operation": "match-schema-references",
      "evidence": {
        "positive": ["positive/matching-schema-reference-v1"],
        "negative": ["negative/reject-schema-package-mismatch"]
      }
    },
    {
      "id": "verification-method-reference-validation",
      "source": "credentials/types.compact",
      "symbol": "assertValidVerificationMethodRef",
      "classification": "supported",
      "operation": "validate-verification-method-reference",
      "evidence": {
        "positive": ["positive/valid-verification-method-reference"],
        "negative": ["negative/reject-empty-verification-method-controller"]
      }
    },
    {
      "id": "raw-signature-verification",
      "source": "credentials/proofs.compact",
      "symbol": "verifySignature",
      "classification": "low-level"
    },
    {
      "id": "issuance-context-tag",
      "source": "credentials/proofs.compact",
      "symbol": "issuanceContextTag",
      "classification": "supported",
      "operation": "derive-proof-context-tags",
      "evidence": {
        "positive": ["vectors/issuance-context-tag-v1"]
      }
    },
    {
      "id": "presentation-context-tag",
      "source": "credentials/proofs.compact",
      "symbol": "presentationContextTag",
      "classification": "supported",
      "operation": "derive-proof-context-tags",
      "evidence": {
        "positive": ["vectors/presentation-context-tag-v1"]
      }
    },
    {
      "id": "signer-authorization-context-tag",
      "source": "credentials/proofs.compact",
      "symbol": "signerAuthorizationContextTag",
      "classification": "supported",
      "operation": "derive-proof-context-tags",
      "evidence": {
        "positive": ["vectors/signer-authorization-context-tag-v1"]
      }
    },
    {
      "id": "verifier-request-context-tag",
      "source": "credentials/proofs.compact",
      "symbol": "verifierRequestContextTag",
      "classification": "supported",
      "operation": "derive-proof-context-tags",
      "evidence": {
        "positive": ["vectors/verifier-request-context-tag-v1"]
      }
    },
    {
      "id": "issuance-proof-payload-root",
      "source": "credentials/proofs.compact",
      "symbol": "issuanceProofPayloadRoot",
      "classification": "low-level"
    },
    {
      "id": "presentation-proof-payload-root",
      "source": "credentials/proofs.compact",
      "symbol": "presentationProofPayloadRoot",
      "classification": "low-level"
    },
    {
      "id": "issuance-proof-challenge",
      "source": "credentials/proofs.compact",
      "symbol": "issuanceProofChallenge",
      "classification": "low-level"
    },
    {
      "id": "presentation-proof-challenge",
      "source": "credentials/proofs.compact",
      "symbol": "presentationProofChallenge",
      "classification": "low-level"
    },
    {
      "id": "signer-authorization-proof-challenge",
      "source": "credentials/proofs.compact",
      "symbol": "signerAuthorizationProofChallenge",
      "classification": "low-level"
    },
    {
      "id": "verifier-request-proof-challenge",
      "source": "credentials/proofs.compact",
      "symbol": "verifierRequestProofChallenge",
      "classification": "low-level"
    },
    {
      "id": "issuance-context-proof-validation",
      "source": "credentials/proofs.compact",
      "symbol": "assertValidIssuanceContextProof",
      "classification": "supported",
      "operation": "verify-context-proof",
      "evidence": {
        "positive": ["positive/active-issuer-assertion-method"],
        "negative": ["negative/reject-invalid-issuer-signature"]
      }
    },
    {
      "id": "presentation-context-proof-validation",
      "source": "credentials/proofs.compact",
      "symbol": "assertValidPresentationContextProof",
      "classification": "low-level"
    },
    {
      "id": "signer-authorization-context-proof-validation",
      "source": "credentials/proofs.compact",
      "symbol": "assertValidSignerAuthorizationContextProof",
      "classification": "supported",
      "operation": "verify-context-proof",
      "evidence": {
        "positive": ["positive/authority-signed-active-issuer"],
        "negative": ["negative/reject-authorization-proof-challenge-substitution"]
      }
    },
    {
      "id": "verifier-request-context-proof-validation",
      "source": "credentials/proofs.compact",
      "symbol": "assertValidVerifierRequestContextProof",
      "classification": "supported",
      "operation": "verify-verifier-request-proof",
      "evidence": {
        "positive": ["positive/active-verifier-authentication"],
        "negative": ["negative/reject-invalid-verifier-request-signature"]
      }
    },
    {
      "id": "authorized-signer-descriptor-validation",
      "source": "credentials/signer-authorization.compact",
      "symbol": "assertValidAuthorizedSignerDescriptor",
      "classification": "supported",
      "operation": "validate-authorized-signer-descriptor",
      "evidence": {
        "positive": ["positive/active-issuer-assertion-method"],
        "negative": ["negative/reject-unsupported-version"]
      }
    },
    {
      "id": "authorized-signer-descriptor-root",
      "source": "credentials/signer-authorization.compact",
      "symbol": "authorizedSignerDescriptorRoot",
      "classification": "low-level"
    },
    {
      "id": "issuer-scope-commitment",
      "source": "credentials/signer-authorization.compact",
      "symbol": "issuerScopeCommitment",
      "classification": "low-level"
    },
    {
      "id": "proof-signer-authorization-matching",
      "source": "credentials/signer-authorization.compact",
      "symbol": "assertProofSignerMatchesAuthorization",
      "classification": "low-level"
    },
    {
      "id": "authorized-issuer-descriptor-validation",
      "source": "credentials/signer-authorization.compact",
      "symbol": "assertAuthorizedIssuerDescriptor",
      "classification": "low-level"
    },
    {
      "id": "authorized-verifier-proof-validation",
      "source": "credentials/signer-authorization.compact",
      "symbol": "assertAuthorizedVerifierProof",
      "classification": "supported",
      "operation": "bind-authorized-verifier-proof",
      "evidence": {
        "positive": ["positive/active-verifier-authentication"],
        "negative": ["negative/reject-verifier-role-substitution"]
      }
    },
    {
      "id": "signer-authorization-authority-validation",
      "source": "credentials/signer-authorization.compact",
      "symbol": "assertValidSignerAuthorizationAuthority",
      "classification": "low-level"
    },
    {
      "id": "signer-authorization-decision-root",
      "source": "credentials/signer-authorization.compact",
      "symbol": "signerAuthorizationDecisionRoot",
      "classification": "low-level"
    },
    {
      "id": "signer-authorization-proof-validation",
      "source": "credentials/signer-authorization.compact",
      "symbol": "assertValidSignerAuthorizationProof",
      "classification": "supported",
      "operation": "verify-signer-authorization-proof",
      "evidence": {
        "positive": ["positive/authority-signed-active-issuer"],
        "negative": ["negative/reject-authorization-proof-sequence-substitution"]
      }
    },
    {
      "id": "signer-authorization-update-validation",
      "source": "credentials/signer-authorization.compact",
      "symbol": "assertValidSignerAuthorizationUpdate",
      "classification": "supported",
      "operation": "validate-signer-authorization-update",
      "evidence": {
        "positive": ["updates/accept-active-to-suspended-update"],
        "negative": ["negative/reject-update-sequence-replay"]
      }
    },
    {
      "id": "status-registry-reference-validation",
      "source": "credentials/status-bindings.compact",
      "symbol": "assertValidStatusRegistryRef",
      "classification": "supported",
      "operation": "validate-status-registry-reference",
      "evidence": {
        "positive": ["positive/validate-status-registry-reference"],
        "negative": ["negative/reject-empty-registry-id-from-registry-validation"]
      }
    },
    {
      "id": "registry-bound-status-validation",
      "source": "credentials/status-bindings.compact",
      "symbol": "assertValidRegistryBoundStatusBinding",
      "classification": "supported",
      "operation": "validate-registry-bound-status-binding",
      "evidence": {
        "positive": ["positive/validate-registry-bound-status"],
        "negative": ["negative/reject-empty-status-handle-from-binding-validation"]
      }
    },
    {
      "id": "registry-bound-status-root",
      "source": "credentials/status-bindings.compact",
      "symbol": "registryBoundStatusBindingRoot",
      "classification": "supported",
      "operation": "derive-registry-bound-status-binding-root",
      "evidence": {
        "positive": ["positive/derive-registry-bound-status-root"]
      }
    },
    {
      "id": "explicit-holder-binding-validation",
      "source": "credentials/holder-bindings.compact",
      "symbol": "assertValidExplicitHolderBinding",
      "classification": "supported",
      "operation": "validate-explicit-holder-binding",
      "evidence": {
        "positive": ["positive/validate-explicit-holder-binding"],
        "negative": ["negative/reject-empty-holder-controller"]
      }
    },
    {
      "id": "explicit-holder-binding-matching",
      "source": "credentials/holder-bindings.compact",
      "symbol": "assertMatchingExplicitHolderBindings",
      "classification": "supported",
      "operation": "match-explicit-holder-bindings",
      "evidence": {
        "positive": ["positive/match-credential-presentation-holder-bindings"],
        "negative": ["negative/reject-presentation-holder-controller-substitution"]
      }
    },
    {
      "id": "explicit-holder-proof-matching",
      "source": "credentials/holder-bindings.compact",
      "symbol": "assertProofMatchesExplicitHolderBinding",
      "classification": "supported",
      "operation": "bind-presentation-proof-reference",
      "evidence": {
        "positive": ["positive/bind-presentation-proof-signer"],
        "negative": ["negative/reject-proof-holder-controller-substitution"]
      }
    },
    {
      "id": "credential-body-root",
      "source": "credentials/vc.compact",
      "symbol": "credentialBodyRoot",
      "classification": "low-level"
    },
    {
      "id": "credential-envelope-validation",
      "source": "credentials/vc.compact",
      "symbol": "assertValidCredentialEnvelope",
      "classification": "supported",
      "operation": "validate-credential-envelope",
      "evidence": {
        "positive": ["positive/valid-credential-with-expiration"],
        "negative": ["negative/reject-unsupported-credential-version"]
      }
    },
    {
      "id": "credential-proof-validation",
      "source": "credentials/vc.compact",
      "symbol": "assertValidCredentialProof",
      "classification": "supported",
      "operation": "verify-credential-proof-for-body-root",
      "evidence": {
        "positive": ["positive/verify-derived-credential-body-root"],
        "negative": ["negative/reject-invalid-credential-proof-signature"]
      }
    },
    {
      "id": "precomputed-credential-root-proof-validation",
      "source": "credentials/vc.compact",
      "symbol": "assertValidCredentialProofForBodyRoot",
      "classification": "supported",
      "operation": "verify-credential-proof-for-body-root",
      "evidence": {
        "positive": ["positive/verify-canonical-credential-body-root"],
        "negative": ["negative/reject-substituted-credential-body-root"]
      }
    },
    {
      "id": "authorized-credential-issuer-proof-validation",
      "source": "credentials/vc.compact",
      "symbol": "assertAuthorizedIssuerProof",
      "classification": "supported",
      "operation": "bind-authorized-issuer-proof",
      "evidence": {
        "positive": ["positive/active-issuer-assertion-method"],
        "negative": ["negative/reject-invalid-issuer-signature"]
      }
    },
    {
      "id": "presentation-body-root",
      "source": "credentials/vp.compact",
      "symbol": "presentationBodyRoot",
      "classification": "low-level"
    },
    {
      "id": "presentation-envelope-validation",
      "source": "credentials/vp.compact",
      "symbol": "assertValidPresentationEnvelope",
      "classification": "supported",
      "operation": "validate-presentation-envelope",
      "evidence": {
        "positive": ["positive/valid-presentation-envelope"],
        "negative": ["negative/reject-unsupported-presentation-version"]
      }
    },
    {
      "id": "explicit-holder-presentation-proof-validation",
      "source": "credentials/vp.compact",
      "symbol": "assertValidPresentationProof",
      "classification": "supported",
      "operation": "verify-presentation-proof",
      "evidence": {
        "positive": ["positive/verify-presentation-proof-from-canonical-body"],
        "negative": ["negative/reject-presentation-different-holder"]
      }
    },
    {
      "id": "credential-presentation-matching",
      "source": "credentials/relations.compact",
      "symbol": "assertMatchingCredentialPresentation",
      "classification": "supported",
      "operation": "bind-credential-presentation",
      "evidence": {
        "positive": ["positive/matching-credential-presentation"],
        "negative": ["negative/reject-presentation-claim-root-substitution"]
      }
    }
  ]
}
