openapi: 3.2.0 info: title: HiveMorph v0.1 Verify API description: 'Polymorphic agent runtime — single shape (Merchant), single supermodel (W2 MERCHANT). Three gates: NEED + YIELD + CLEAN-MONEY.' version: 0.1.0 tags: - name: Verify paths: /v1/xcalibur/verify/v2/attest: post: tags: - Verify summary: Attest description: 'Corpus-attestation ensemble endpoint. Validates Merkle membership + external PQ signature + runs cross-family ensemble (ML-DSA-65 reference, ML-DSA-65 deterministic, SLH-DSA-SHA2-128s, Ed25519). Returns signed XCALIBUR VERIFY v2 receipt. Verdict PASS requires unanimity across all ensemble candidates.' operationId: attest_v1_xcalibur_verify_v2_attest_post requestBody: content: application/json: schema: $ref: '#/components/schemas/hivemorph__xcalibur__verify_v2_routes__AttestRequest' required: true responses: '200': description: Successful Response content: application/json: schema: additionalProperties: true type: object title: Response Attest V1 Xcalibur Verify V2 Attest Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/xcalibur/verify/v2/health: get: tags: - Verify summary: Health description: Health check — does not load heavy PQ libraries. operationId: health_v1_xcalibur_verify_v2_health_get responses: '200': description: Successful Response content: application/json: schema: additionalProperties: true type: object title: Response Health V1 Xcalibur Verify V2 Health Get components: schemas: HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError hivemorph__xcalibur__verify_v2_routes__AttestRequest: properties: chunk: type: string minLength: 1 title: Chunk description: The data chunk to attest, as a UTF-8 string (hex-encode binary). corpus_root: type: string title: Corpus Root description: Expected Merkle root (hex) of the corpus. expected_path: items: additionalProperties: type: string type: object type: array title: Expected Path description: 'Merkle inclusion path. Each element: {"sibling": "", "position": "left"|"right"}. Empty list means leaf IS the root (single-element corpus).' signature_hex: type: string title: Signature Hex description: Signer's PQ signature over chunk (hex). signer_pubkey_hex: type: string title: Signer Pubkey Hex description: Signer's PQ public key (hex). alg: type: string title: Alg description: 'PQ signature algorithm used by signer. Default: ML-DSA-65.' default: ML-DSA-65 run_slhdsa: type: boolean title: Run Slhdsa description: Include SLH-DSA cross-family witness in ensemble (slower but stronger). default: true type: object required: - chunk - corpus_root - signature_hex - signer_pubkey_hex title: AttestRequest ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError