get_receipt_verification
Read the exact stored row an independent verifier needs to check one of this account’s receipt proofs.
| Field | Meaning |
|---|---|
| Side effects | None. This is a read-only call; it does not prove, sign, submit, or change state. |
| Next step | Pass the row unchanged, with your independently known expected Pakt root and the get_portfolio approver key, to the published pakt-verifier.wasm. |
Arguments
| Argument | Type | Required |
|---|---|---|
pakt_root | string | yes |
receipt_id | string | yes |
Exact bounds, accepted values, and nested fields are in Full JSON Schema below.
Example
selectedPakt is the root that decided the receipt and signed is the propose_execution result. Keep the response as raw JSON text: nonce is a full-range u64 integer that a JavaScript Number rounds.
With an authenticated MCP client:
await client.callTool({
name: "get_receipt_verification",
arguments: {
pakt_root: selectedPakt.pakt_root,
receipt_id: signed.receipt_id
},
});Returns
Important fields in the decoded result; this is not a complete response schema.
| Field | Meaning |
|---|---|
canonical_pakt_ssz_hex / pakt_root_hex | The approved Pakt; the verifier checks it hashes to the root you expect. |
receipt_json / attestation_bytes_hex / nonce / history_commitment_hex / verdict | Stored proof inputs checked against the proof’s committed journal. |
authorization | Provider authorization evidence, or null for refusals and decision-only services. |
expected_request_domain / expected_principal_hex / expected_account_id_hex | This account’s request scope, bound into decision-only services evidence. |
For error handling and retry rules, see Statuses and Errors.
Read the stored proof-verification row for one receipt owned by the authenticated account under the exact Pakt root that decided it: canonical Pakt SSZ, committed nonce (a JSON integer up to u64; parse it without rounding), history commitment, verdict, evidence artifact, succinct proof receipt, any provider authorization evidence, and the account's request domain, principal, and account id. It is the same row the dashboard's in-browser verifier consumes; pass it with an independently known expected_pakt_root_hex and expected_approver_public_key_hex (from get_portfolio) to the published pakt-verifier WASM. A receipt that belongs to another account or another root, or does not exist, returns not_found. Verification proves the policy decision and its binding to the approved Pakt; it does not prove submission, settlement, fills, or the truth of provider data. Read-only: it never proves, signs, submits, or changes state.
From tools/list, MCP protocol revision 2026-07-28.
{
"additionalProperties": false,
"properties": {
"pakt_root": {
"description": "The Pakt root that decided the receipt.",
"maxLength": 64,
"minLength": 64,
"pattern": "^[0-9a-f]{64}$",
"type": "string"
},
"receipt_id": {
"description": "The receipt_id returned by propose_execution.",
"maxLength": 81,
"minLength": 67,
"pattern": "^(hl-[0-9a-f]{64}|gateway-(approval|order)-[0-9a-f]{64}|service-[0-9a-f]{64})$",
"type": "string"
}
},
"required": [
"pakt_root",
"receipt_id"
],
"type": "object"
}