Skip to main content
Glama

Get Proof or Receipt by Hash

proof.get_by_hash
Read-onlyIdempotent

Retrieve one retained proof payload, signed receipt, or lifecycle-only status using exactly one known hash (proof or receipt hash, CID, snapshot digest, or submission UUID) or jobId (submission UUID). Looks up bounded process-local records without re-running Groth16 proof verification; receipt provenance may be checked against the current dataset, and missing payloads cannot be reconstructed. Use proof.list to discover indexed proof hashes and proof.verify to cryptographically verify supplied proof inputs. Live L402 Satoshi settlement: a configured NWC wallet issues the exact-priced Lightning invoice; paid execution requires confirmed incoming settlement and an invoice-bound payment proof. Handle HTTP 402, pay explicitly, then retry the identical request with Authorization: L402 :. Invoice creation alone is not payment; unavailable verification does not authorize execution.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hashNoRequired when jobId is absent: proof/receipt 64-hex hash (optional 0x), decimal snapshot digest, IPFS CID, or UUID submission job ID; unknown identifiers return 404. Constraints: pattern: ^(?:(?:0x)?[0-9a-fA-F]{64}|Qm[1-9A-HJ-NP-Za-km-z]{44}|b[a-z2-7]{20,}|\d{1,77}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$. Example: "0xabababababababababababababababababababababababababababababababab".
jobIdNoUUID returned by proof.submit (e.g. '123e4567-e89b-42d3-a456-426614174000'); use instead of hash, never together. Constraints: format: uuid. Example: "123e4567-e89b-42d3-a456-426614174000".

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hashYesCanonical proof or receipt hash. CID lookups return the matching receipt hash. Example: "0xabababababababababababababababababababababababababababababababab".
kindYesDistinguishes ZK proofs, signed receipts, and lifecycle-only status. Constraints: allowed values: zk-proof, dataset-receipt, context-receipt, zk-proof-status. Example: "zk-proof".
jobIdNoSubmission job identifier when an exact submitted proof payload is retained. Constraints: format: uuid. Example: "123e4567-e89b-42d3-a456-426614174000".
statusYesCurrent indexed lifecycle status. Constraints: allowed values: verified, cached, pending, invalid. Example: "verified".
otsProofNoBase64 serialized .ots proof for the bound dataset root bytes when a calendar receipt is available. Constraints: format: byte. Example: "AQID".
otsStatusNoCalendar-only or independently Bitcoin-verified status of the bound OTS receipt. Constraints: allowed values: pending_calendar, bitcoin_block_attested. Example: "pending_calendar".
timestampYesOriginal submission, verification, or receipt creation time. Constraints: format: date-time. Example: "2026-09-27T21:00:00.000Z".
meshQuorumNoWhether current mesh quorum is met for lifecycle-only lookups. Example: false.
proofPayloadNoExact retained proof input or signed receipt; do not infer missing snapshot data from a submitted proof.
attestationCountNoNIP-78 attestation count for lifecycle-only lookups. Constraints: minimum: 0. Example: 0.
provenanceVerifiedYesWhether this exact signed receipt binds the currently validated dataset strata chain; does not imply Bitcoin OTS confirmation. Example: false.
provenanceMerkleRootNoMerkle root bound in the signed receipt when the current dataset chain matches. Constraints: pattern: ^[0-9a-f]{64}$. Example: "abababababababababababababababababababababababababababababababab".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / description
      Previous value: -"Look up a proof hash, signed receipt hash or CID, decimal snapshot digest, or proof submission job ID. Unknown identifiers return HTTP 404 before payment."New value: +"Supply exactly one of hash or jobId to retrieve an exact retained proof/receipt or lifecycle state. Unknown identifiers return HTTP 404 before payment."
    • changedInput schema / properties / hash / description
      Previous value: -"Cryptographic hash, snapshot digest, IPFS CID, or submission job ID to query. Constraints: pattern: ^(?:(?:0x)?[0-9a-fA-F]{64}|Qm[1-9A-HJ-NP-Za-km-z]{44}|b[a-z2-7]{20,}|\\d{1,77}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$. Example: \"0xabababababababababababababababababababababababababababababababab\"."New value: +"Required when jobId is absent: proof/receipt 64-hex hash (optional 0x), decimal snapshot digest, IPFS CID, or UUID submission job ID; unknown identifiers return 404. Constraints: pattern: ^(?:(?:0x)?[0-9a-fA-F]{64}|Qm[1-9A-HJ-NP-Za-km-z]{44}|b[a-z2-7]{20,}|\\d{1,77}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$. Example: \"0xabababababababababababababababababababababababababababababababab\"."
    • changedInput schema / properties / jobId / description
      Previous value: -"UUID returned by proof.submit; use instead of hash. Constraints: format: uuid. Example: \"123e4567-e89b-42d3-a456-426614174000\"."New value: +"UUID returned by proof.submit (e.g. '123e4567-e89b-42d3-a456-426614174000'); use instead of hash, never together. Constraints: format: uuid. Example: \"123e4567-e89b-42d3-a456-426614174000\"."
  2. Changed6 schema fields changed
    • changedOutput schema / examples
      Previous value: -[
      -  {
      -    "hash": "0xabababababababababababababababababababababababababababababababab",
      -    "kind": "zk-proof",
      -    "proofPayload": {
      -      "proof": {
      -        "pi_a": [
      -          "1"
      -        ]
      -      },
      -      "publicSignals": [
      -        "1",
      -        "2",
      -        "3",
      -        "4",
      -        "5"
      -      ]
      -    },
      -    "status": "verified",
      -    "timestamp": "2026-09-27T21:00:00.000Z"
      -  }
      -]New value: +[
      +  {
      +    "hash": "0xabababababababababababababababababababababababababababababababab",
      +    "kind": "zk-proof",
      +    "proofPayload": {
      +      "proof": {
      +        "pi_a": [
      +          "1"
      +        ]
      +      },
      +      "publicSignals": [
      +        "1",
      +        "2",
      +        "3",
      +        "4",
      +        "5"
      +      ]
      +    },
      +    "provenanceVerified": false,
      +    "status": "verified",
      +    "timestamp": "2026-09-27T21:00:00.000Z"
      +  }
      +]
    • addedOutput schema / properties / otsProof
      Added value: +{
      +  "description": "Base64 serialized .ots proof for the bound dataset root bytes when a calendar receipt is available. Constraints: format: byte. Example: \"AQID\".",
      +  "example": "AQID",
      +  "examples": [
      +    "AQID"
      +  ],
      +  "format": "byte",
      +  "type": "string"
      +}
    • addedOutput schema / properties / otsStatus
      Added value: +{
      +  "description": "Calendar-only or independently Bitcoin-verified status of the bound OTS receipt. Constraints: allowed values: pending_calendar, bitcoin_block_attested. Example: \"pending_calendar\".",
      +  "enum": [
      +    "pending_calendar",
      +    "bitcoin_block_attested"
      +  ],
      +  "example": "pending_calendar",
      +  "examples": [
      +    "pending_calendar"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / provenanceMerkleRoot
      Added value: +{
      +  "description": "Merkle root bound in the signed receipt when the current dataset chain matches. Constraints: pattern: ^[0-9a-f]{64}$. Example: \"abababababababababababababababababababababababababababababababab\".",
      +  "example": "abababababababababababababababababababababababababababababababab",
      +  "examples": [
      +    "abababababababababababababababababababababababababababababababab"
      +  ],
      +  "pattern": "^[0-9a-f]{64}$",
      +  "type": "string"
      +}
    • addedOutput schema / properties / provenanceVerified
      Added value: +{
      +  "description": "Whether this exact signed receipt binds the currently validated dataset strata chain; does not imply Bitcoin OTS confirmation. Example: false.",
      +  "example": false,
      +  "examples": [
      +    false
      +  ],
      +  "type": "boolean"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "kind",
      -  "hash",
      -  "status",
      -  "timestamp"
      -]New value: +[
      +  "kind",
      +  "hash",
      +  "status",
      +  "timestamp",
      +  "provenanceVerified"
      +]
  3. Changed13 schema fields changed
    • changedInput schema / description
      Previous value: -"Look up a retained proof by SHA-256 proof hash, or a signed dataset anchor by receipt hash or exact CID. Unknown or evicted payloads return HTTP 404 before payment."New value: +"Look up a proof hash, signed receipt hash or CID, decimal snapshot digest, or proof submission job ID. Unknown identifiers return HTTP 404 before payment."
    • addedInput schema / oneOf
      Added value: +[
      +  {
      +    "required": [
      +      "hash"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "jobId"
      +    ]
      +  }
      +]
    • changedInput schema / properties / hash / description
      Previous value: -"Cryptographic hash or IPFS CID of the target proof or receipt. Constraints: pattern: ^(?:(?:0x)?[0-9a-fA-F]{64}|Qm[1-9A-HJ-NP-Za-km-z]{44}|b[a-z2-7]{20,})$. Example: \"0xabababababababababababababababababababababababababababababababab\"."New value: +"Cryptographic hash, snapshot digest, IPFS CID, or submission job ID to query. Constraints: pattern: ^(?:(?:0x)?[0-9a-fA-F]{64}|Qm[1-9A-HJ-NP-Za-km-z]{44}|b[a-z2-7]{20,}|\\d{1,77}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$. Example: \"0xabababababababababababababababababababababababababababababababab\"."
    • changedInput schema / properties / hash / pattern
      Previous value: -"^(?:(?:0x)?[0-9a-fA-F]{64}|Qm[1-9A-HJ-NP-Za-km-z]{44}|b[a-z2-7]{20,})$"New value: +"^(?:(?:0x)?[0-9a-fA-F]{64}|Qm[1-9A-HJ-NP-Za-km-z]{44}|b[a-z2-7]{20,}|\\d{1,77}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • addedInput schema / properties / jobId
      Added value: +{
      +  "description": "UUID returned by proof.submit; use instead of hash. Constraints: format: uuid. Example: \"123e4567-e89b-42d3-a456-426614174000\".",
      +  "example": "123e4567-e89b-42d3-a456-426614174000",
      +  "examples": [
      +    "123e4567-e89b-42d3-a456-426614174000"
      +  ],
      +  "format": "uuid",
      +  "type": "string"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "hash"
      -]
    • changedOutput schema / description
      Previous value: -"A payload retained in bounded process memory. Submitted proof coordinates and signals do not imply the original signed snapshot is archived; verification lookups include their original data. Signed dataset anchors are receipts, not ZK proofs."New value: +"Exact retained proof or signed receipt, or lifecycle-only status when the original payload is unavailable. No payload is reconstructed from a digest."
    • addedOutput schema / properties / attestationCount
      Added value: +{
      +  "description": "NIP-78 attestation count for lifecycle-only lookups. Constraints: minimum: 0. Example: 0.",
      +  "example": 0,
      +  "examples": [
      +    0
      +  ],
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / jobId
      Added value: +{
      +  "description": "Submission job identifier when an exact submitted proof payload is retained. Constraints: format: uuid. Example: \"123e4567-e89b-42d3-a456-426614174000\".",
      +  "example": "123e4567-e89b-42d3-a456-426614174000",
      +  "examples": [
      +    "123e4567-e89b-42d3-a456-426614174000"
      +  ],
      +  "format": "uuid",
      +  "type": "string"
      +}
    • changedOutput schema / properties / kind / description
      Previous value: -"Distinguishes a ZK proof from a signed Bitcoin-tip dataset receipt. Constraints: allowed values: zk-proof, dataset-receipt. Example: \"zk-proof\"."New value: +"Distinguishes ZK proofs, signed receipts, and lifecycle-only status. Constraints: allowed values: zk-proof, dataset-receipt, context-receipt, zk-proof-status. Example: \"zk-proof\"."
    • changedOutput schema / properties / kind / enum
      Previous value: -[
      -  "zk-proof",
      -  "dataset-receipt"
      -]New value: +[
      +  "zk-proof",
      +  "dataset-receipt",
      +  "context-receipt",
      +  "zk-proof-status"
      +]
    • addedOutput schema / properties / meshQuorum
      Added value: +{
      +  "description": "Whether current mesh quorum is met for lifecycle-only lookups. Example: false.",
      +  "example": false,
      +  "examples": [
      +    false
      +  ],
      +  "type": "boolean"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "kind",
      -  "hash",
      -  "status",
      -  "timestamp",
      -  "proofPayload"
      -]New value: +[
      +  "kind",
      +  "hash",
      +  "status",
      +  "timestamp"
      +]
  4. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources