{
  "tool_id": "art-390-tip20-memo-commitment-validator",
  "tool_version": "1.0.0",
  "display_name": "TIP-20 Memo/Commitment Validator",
  "mcp_name": "validate_tip20_memo_commitment",
  "mandate_type": "compliance_mandate",
  "wave": 65,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-390-tip20-memo-commitment-validator.html",
  "description": "Validates a TIP-20 TransferWithMemo's 32-byte memo as a hash-or-locator commitment: checks length/hex form, recomputes the SHA-256 commitment over a supplied off-chain payload or a templated invoice-ID locator, and reports whether the memo matches. Integrity-only -- distinct from screen_tip20_transfer_batch (art-38, AML/Travel Rule screening of a transfer batch). Calculator only, zero egress.",
  "input_schema_ref": "chaingraph/art-390-tip20-memo-commitment-validator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:2e6765cb6fedbe96e56bc75b47196c2e7243c367d754267127df2711a012aee4","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FQFh+UdGDk46UMqi6IHFDZxH5Dy4OrJPvX80xLJZtGIlTBBfU0Tyf9kmEcEKEIzhTcawZ33Wu6G7uYNXsPodEBjmfBCmpfbFW9X4fNJ1i36MB88XWMqOtphBsYWj+S95L/VuznSPy/CeLTHkBSIvIRQGhNW/UUihWdim4jsvASsSYQvnk+ShTQ0PZNwZj6+2wc6pfTng6cpdbCyxlGMLdy13f/Hkvpr9ZDwaFx2iGCE8+w1HWhQ5LF1PCUz3KC8gGfOYmZjmh2x6tQGT709zmxKSbdDYnJ+W75ChNvI0wCEurhmhIKaYd7YScdNtoFcGjT/P8yeG3xPI/VxJv/7x5A==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:2e6765cb6fedbe96e56bc75b47196c2e7243c367d754267127df2711a012aee4",
      "output": {}
    }
  }
}
