{
  "id": "checkpoint-handoff-check",
  "name": "Checkpoint handoff consistency check",
  "description": "Compare a checkpoint with a proposed resume packet: workflow/consumer/revision, JSON state digest, required artifact manifests, exact stream cursors and pending-effect receipts. Reports reconciliation blockers; never restores or dispatches anything.",
  "category": "workflow-assurance",
  "priceUsd": "0.01",
  "pricingStatus": "proposed-unverified",
  "pricing": {
    "unit": "one successful operation call",
    "proposedNominalUsd": "0.01",
    "sixDecimalTokenBaseUnits": "10000",
    "subscription": false,
    "includesPayerWalletOrNetworkFees": false,
    "liveQuoteVerified": false,
    "condition": "Actual SDK challenge is authoritative only within the caller's explicit authorization; configured six-decimal token peg is an operator assertion, not a conversion guarantee."
  },
  "intents": [
    "Check an agent checkpoint handoff before resuming after interruption",
    "Find missing artifacts, cursor gaps and uncertain side effects in a recovery packet"
  ],
  "whenToUse": [
    "Check an agent checkpoint handoff before resuming after interruption",
    "Find missing artifacts, cursor gaps and uncertain side effects in a recovery packet"
  ],
  "whenNotToUse": [
    "Executing tools, sending messages, retrying effects, restoring state, or contacting live services",
    "Authenticating evidence, verifying signatures or identities, granting permission, or enforcing authorization",
    "Inferring facts omitted from the supplied artifact snapshot or guaranteeing exactly-once execution"
  ],
  "capabilities": [
    "checkpoint-handoff-v1 profile",
    "State digest, required manifest and exact cursor cross-reference checks",
    "Prepared/submitted/acknowledged effect receipt reconciliation; authorizationGranted=false",
    "Advisory only; authorizationGranted=false; identityVerified=false; execution=false; externalRequests=0"
  ],
  "limits": {
    "inputBytes": 100000,
    "outputBytes": 400000,
    "jsonNodes": 12000,
    "depth": 20,
    "findings": 200,
    "events": 256,
    "actors": 32,
    "traceSteps": 128,
    "observations": 256,
    "artifacts": 128,
    "cursors": 128,
    "effects": 128,
    "receipts": 128
  },
  "related": [
    "causal-log-check",
    "idempotency-conflict-check",
    "approval-scope-check"
  ],
  "errorCodes": [
    "INPUT_LIMIT",
    "OUTPUT_LIMIT",
    "COMPLEXITY_LIMIT",
    "INVALID_NUMBER",
    "INVALID_UNICODE",
    "UNSAFE_KEY",
    "ACTOR_LIMIT"
  ],
  "requirementsProfile": {
    "format": "declared-requirements-v1",
    "facts": {
      "execution.suppliedCode": false,
      "execution.remoteMutation": false,
      "execution.llmInference": false,
      "execution.paidMcp": false,
      "verification.semanticTruth": false,
      "verification.sourceAuthenticity": false,
      "verification.liveVulnerabilities": false,
      "numbers.arbitraryPrecisionJson": false,
      "numbers.model": "ieee754-binary64",
      "privacy.requestBodyPersisted": false,
      "execution.deterministic": true,
      "execution.networkAccess": false,
      "privacy.resultBodyPersisted": false,
      "payment.x402": true,
      "payment.mpp": true,
      "operation.id": "checkpoint-handoff-check",
      "operation.category": "workflow-assurance",
      "limit.httpRequestBytes": 131072,
      "limit.requestBytes": 100000,
      "limit.responseBytes": 524288,
      "limit.resultBytes": 400000,
      "limit.jsonDepth": 20,
      "limit.jsonNodes": 12000,
      "coordination.profile": "checkpoint-handoff-v1",
      "coordination.advisoryOnly": true,
      "coordination.authorizationGranted": false,
      "coordination.identityVerified": false,
      "coordination.currentTimeLookup": false,
      "coordination.executesRecovery": false,
      "coordination.persistentState": false,
      "coordination.exactlyOnceGuarantee": false,
      "coordination.omissionDetectionComplete": false,
      "checkpoint.maxArtifacts": 128,
      "checkpoint.maxCursors": 128,
      "checkpoint.maxEffects": 128,
      "checkpoint.maxReceipts": 128,
      "checkpoint.artifactBytesVerified": false,
      "checkpoint.cursorSemantics": "caller-declared-next-unconsumed-sequence",
      "checkpoint.liveReceiptsVerified": false,
      "jsonDigest.profile": "sorted-json-sha256-v1",
      "jsonDigest.rfc8785": false
    },
    "unknownPolicy": "Undeclared requirements are unknown, never compatible. Matching declared facts does not establish semantic fit or input validity.",
    "preflight": "/preflight"
  },
  "documentation": "/reference/tools/checkpoint-handoff-check.md",
  "serviceContract": "/reference/services/checkpoint-handoff-check.json",
  "errors": [
    {
      "status": 400,
      "meaning": "Malformed JSON, missing/invalid idempotency key, or payment identifier mismatch",
      "retry": "Correct the request before payment"
    },
    {
      "status": 402,
      "meaning": "Payment challenge or rejected payment",
      "retry": "Use official protocol SDK; inspect payment outcome before another payment"
    },
    {
      "status": 409,
      "meaning": "Idempotency conflict, duplicate proof, or PAYMENT_UNCERTAIN",
      "retry": "Keep original key, body, and proof; reconcile uncertainty with operator; never blindly repay"
    },
    {
      "status": 413,
      "meaning": "Input or generated output too large",
      "retry": "Reduce input; no payment attempted for validation failure"
    },
    {
      "status": 415,
      "meaning": "Unsupported media type or compression",
      "retry": "Send uncompressed application/json"
    },
    {
      "status": 422,
      "meaning": "Schema or service-specific semantic validation failure",
      "retry": "Correct input using returned error code; no payment attempted"
    },
    {
      "status": 429,
      "meaning": "Request/payment-attempt rate exceeded",
      "retry": "Wait for rate limit window; preserve existing payment identity"
    },
    {
      "status": 503,
      "meaning": "Payment configuration/provider/state unavailable, or live DNS preparation failed before settlement",
      "retry": "Check readiness; DNS preparation failures may retry the identical key/body/credential only; uncertainty requires reconciliation"
    }
  ],
  "numericPrecision": "JavaScript IEEE-754 numbers; use strings for large integer IDs/exact decimals where the schema accepts strings. No lossless numeric parsing.",
  "paymentWorkflow": {
    "discoveryOnly": false,
    "supportedProtocols": [
      "x402",
      "mpp"
    ],
    "x402": {
      "credentialHeader": "PAYMENT-SIGNATURE",
      "challengeHeader": "PAYMENT-REQUIRED",
      "receiptHeader": "PAYMENT-RESPONSE",
      "version": 2,
      "scheme": "exact",
      "paymentIdentifier": "payment-identifier extension MUST equal the HTTP Idempotency-Key",
      "sdk": "@x402/core with @x402/evm"
    },
    "mpp": {
      "supported": true,
      "credentialHeader": "Authorization",
      "challengeHeader": "WWW-Authenticate",
      "receiptHeader": "Payment-Receipt",
      "method": "tempo",
      "intent": "charge",
      "sdk": "mppx",
      "tokenDecimals": 6
    },
    "steps": [
      "Check configured readiness and the exact service schema",
      "Generate a fresh random Idempotency-Key for this operation; never use a discovery probe fixture for purchases",
      "Send valid input without a credential to obtain the official protocol challenge",
      "Use the official SDK and authorized wallet to fulfill the challenge",
      "Retry only with identical key, body, protocol and credential",
      "On PAYMENT_UNCERTAIN stop and request operator reconciliation; never blindly pay again"
    ],
    "versionedRetries": "Request fingerprint includes service release version. Retries across a version upgrade can conflict; coordinate upgrades outside the 24-hour replay window and reconcile pending attempts.",
    "docs": "/llms.txt"
  },
  "method": "POST",
  "paths": {
    "x402": "/v1/x402/checkpoint-handoff-check",
    "mpp": "/v1/mpp/checkpoint-handoff-check"
  },
  "inputSchema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "checkpoint": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "workflowId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "revision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "consumer": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "createdAtMs": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "expiresAtMs": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "stateSha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "artifacts": {
            "maxItems": 128,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "sha256": {
                  "type": "string",
                  "pattern": "^[a-f0-9]{64}$"
                },
                "required": {
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "sha256",
                "required"
              ],
              "additionalProperties": false
            }
          },
          "cursors": {
            "maxItems": 128,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "stream": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "nextSequence": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "stream",
                "nextSequence"
              ],
              "additionalProperties": false
            }
          },
          "effects": {
            "maxItems": 128,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "requestSha256": {
                  "type": "string",
                  "pattern": "^[a-f0-9]{64}$"
                },
                "phase": {
                  "type": "string",
                  "enum": [
                    "prepared",
                    "submitted",
                    "acknowledged"
                  ]
                },
                "receiptId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                }
              },
              "required": [
                "id",
                "requestSha256",
                "phase"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "workflowId",
          "revision",
          "consumer",
          "createdAtMs",
          "expiresAtMs",
          "stateSha256",
          "artifacts",
          "cursors",
          "effects"
        ],
        "additionalProperties": false
      },
      "resume": {
        "type": "object",
        "properties": {
          "workflowId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "consumer": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "asOfMs": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "state": {
            "$ref": "#/$defs/__schema0"
          },
          "artifacts": {
            "maxItems": 128,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "sha256": {
                  "type": "string",
                  "pattern": "^[a-f0-9]{64}$"
                }
              },
              "required": [
                "id",
                "sha256"
              ],
              "additionalProperties": false
            }
          },
          "cursors": {
            "maxItems": 128,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "stream": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "nextSequence": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "stream",
                "nextSequence"
              ],
              "additionalProperties": false
            }
          },
          "receipts": {
            "maxItems": 128,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "effectId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "requestSha256": {
                  "type": "string",
                  "pattern": "^[a-f0-9]{64}$"
                },
                "receiptId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "outcome": {
                  "type": "string",
                  "enum": [
                    "success",
                    "failure"
                  ]
                }
              },
              "required": [
                "effectId",
                "requestSha256",
                "receiptId",
                "outcome"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "workflowId",
          "expectedRevision",
          "consumer",
          "asOfMs",
          "state",
          "artifacts",
          "cursors",
          "receipts"
        ],
        "additionalProperties": false
      }
    },
    "required": [
      "checkpoint",
      "resume"
    ],
    "additionalProperties": false,
    "$defs": {
      "__schema0": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/$defs/__schema0"
            }
          },
          {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "$ref": "#/$defs/__schema0"
            }
          }
        ]
      }
    }
  },
  "outputSchema": {
    "type": "object",
    "required": [
      "operation",
      "version",
      "result",
      "provenance"
    ],
    "properties": {
      "operation": {
        "const": "checkpoint-handoff-check",
        "type": "string"
      },
      "version": {
        "const": "0.29.0",
        "type": "string"
      },
      "result": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "profile": {
            "type": "string",
            "const": "checkpoint-handoff-v1"
          },
          "matchesCheckpoint": {
            "type": "boolean"
          },
          "advisoryOnly": {
            "type": "boolean",
            "const": true
          },
          "authorizationGranted": {
            "type": "boolean",
            "const": false
          },
          "checkpointId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "stateSha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "digestProfile": {
            "type": "string",
            "const": "sorted-json-sha256-v1"
          },
          "requiresEffectReconciliation": {
            "type": "boolean"
          },
          "artifactChecks": {
            "maxItems": 128,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "required": {
                  "type": "boolean"
                },
                "present": {
                  "type": "boolean"
                },
                "digestMatches": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                }
              },
              "required": [
                "id",
                "required",
                "present",
                "digestMatches"
              ],
              "additionalProperties": false
            }
          },
          "cursorChecks": {
            "maxItems": 128,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "stream": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "expectedNextSequence": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "suppliedNextSequence": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "matches": {
                  "type": "boolean"
                }
              },
              "required": [
                "stream",
                "expectedNextSequence",
                "suppliedNextSequence",
                "matches"
              ],
              "additionalProperties": false
            }
          },
          "effectChecks": {
            "maxItems": 128,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "disposition": {
                  "type": "string",
                  "enum": [
                    "unsubmitted_claim",
                    "settled_by_supplied_receipt",
                    "unresolved"
                  ]
                },
                "suppliedOutcome": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "success",
                        "failure"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "id",
                "disposition",
                "suppliedOutcome"
              ],
              "additionalProperties": false
            }
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "findings": {
            "maxItems": 200,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string"
                },
                "severity": {
                  "type": "string",
                  "enum": [
                    "error",
                    "warning"
                  ]
                },
                "path": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                },
                "relatedIds": {
                  "maxItems": 8,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  }
                }
              },
              "required": [
                "code",
                "severity",
                "path",
                "message",
                "relatedIds"
              ],
              "additionalProperties": false
            }
          },
          "findingCount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "errorCount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "truncated": {
            "type": "boolean"
          }
        },
        "required": [
          "profile",
          "matchesCheckpoint",
          "advisoryOnly",
          "authorizationGranted",
          "checkpointId",
          "stateSha256",
          "digestProfile",
          "requiresEffectReconciliation",
          "artifactChecks",
          "cursorChecks",
          "effectChecks",
          "limitations",
          "findings",
          "findingCount",
          "errorCount",
          "truncated"
        ],
        "additionalProperties": false
      },
      "provenance": {
        "type": "object",
        "required": [
          "inputSha256",
          "outputSha256",
          "deterministic",
          "externalRequests"
        ],
        "properties": {
          "inputSha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "outputSha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "deterministic": {
            "const": true
          },
          "externalRequests": {
            "const": 0
          }
        }
      }
    },
    "additionalProperties": false
  },
  "exampleInput": {
    "checkpoint": {
      "id": "checkpoint-1",
      "workflowId": "workflow-1",
      "revision": 3,
      "consumer": "agent-b",
      "createdAtMs": 0,
      "expiresAtMs": 1000,
      "stateSha256": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
      "artifacts": [
        {
          "id": "plan",
          "sha256": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
          "required": true
        }
      ],
      "cursors": [
        {
          "stream": "events",
          "nextSequence": 4
        }
      ],
      "effects": [
        {
          "id": "send-1",
          "requestSha256": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
          "phase": "submitted"
        }
      ]
    },
    "resume": {
      "workflowId": "workflow-1",
      "expectedRevision": 3,
      "consumer": "agent-b",
      "asOfMs": 100,
      "state": {},
      "artifacts": [
        {
          "id": "plan",
          "sha256": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a"
        }
      ],
      "cursors": [
        {
          "stream": "events",
          "nextSequence": 4
        }
      ],
      "receipts": []
    }
  },
  "exampleResponse": {
    "operation": "checkpoint-handoff-check",
    "version": "0.29.0",
    "result": {
      "profile": "checkpoint-handoff-v1",
      "matchesCheckpoint": false,
      "advisoryOnly": true,
      "authorizationGranted": false,
      "checkpointId": "checkpoint-1",
      "stateSha256": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
      "digestProfile": "sorted-json-sha256-v1",
      "requiresEffectReconciliation": true,
      "artifactChecks": [
        {
          "id": "plan",
          "required": true,
          "present": true,
          "digestMatches": true
        }
      ],
      "cursorChecks": [
        {
          "stream": "events",
          "expectedNextSequence": 4,
          "suppliedNextSequence": 4,
          "matches": true
        }
      ],
      "effectChecks": [
        {
          "id": "send-1",
          "disposition": "unresolved",
          "suppliedOutcome": null
        }
      ],
      "limitations": [
        "Does not restore a checkpoint, dispatch an effect, verify identities, or authorize resumption.",
        "State is hashed from supplied JSON. Artifact digests, receipts, phases and timestamps are compared as unverified claims; file bytes and provider state are not fetched.",
        "Cursor nextSequence means the next unconsumed record in the caller's declared stream; equality does not prove no records were omitted.",
        "A prepared phase is only an unsubmitted claim and is not evidence that dispatch is safe. Settled receipts do not prove exactly-once execution."
      ],
      "findings": [
        {
          "code": "EFFECT_RECEIPT_MISSING",
          "severity": "error",
          "path": "/checkpoint/effects/0",
          "message": "Submitted or acknowledged effect requires a supplied receipt before reconciliation can complete",
          "relatedIds": [
            "send-1"
          ]
        }
      ],
      "findingCount": 1,
      "errorCount": 1,
      "truncated": false
    },
    "provenance": {
      "inputSha256": "d87ea4eabd4d2082ffa6fcef60b3ef17629a31bee0613b0cf1146fc71a3aab7e",
      "outputSha256": "217ca73ac9f3bc755a530f25479c5a843646777c21b10015e9740f63d5fe2820",
      "deterministic": true,
      "externalRequests": 0
    }
  },
  "requiredHeaders": {
    "Content-Type": "application/json",
    "Idempotency-Key": "random 16–128 character operation identifier"
  },
  "fixedExample": "/reference/examples/checkpoint-handoff-check.json",
  "execution": {
    "deterministic": true,
    "externalRequests": 0,
    "maxExternalRequests": 0,
    "resultSnapshotPersisted": false,
    "fixedExampleIsIllustrativeSnapshot": false,
    "requiresPayment": true,
    "supportsMcpExecution": false
  },
  "releaseSnapshot": {
    "format": "static-release-reference-v1",
    "sourceVersion": "0.29.0",
    "sourceRegistrySha256": "a2b5ec09bf6c38b9d2879d746a4fded374f5928b445377b0270ef6aa8e6cac65",
    "generatedAt": "2026-10-06T15:38:00Z",
    "releaseAcceptance": "not-verified-by-generator",
    "runtimeReadiness": "not-evaluated",
    "livePaymentsVerified": false,
    "indexingVerified": false,
    "apiOrigin": null,
    "notice": "Build-time release reference. Runtime readiness, deployment, payment settlement and external indexing are not evaluated here. Prices are proposed; this file cannot authorize execution or payment."
  }
}
