addedInput schema / properties / idempotency_key / description
Added value: +"Required 16-128 characters from A-Z, a-z, 0-9, underscore or hyphen. Reuse with the unchanged intent to reuse an unexpired quote; changed bindings return IDEMPOTENCY_KEY_CONFLICT. An expired key returns IDEMPOTENCY_KEY_EXPIRED; use a new key."
addedInput schema / properties / intent / description
Added value: +"Required prechecked purchase intent: request, spend_policy and precheck_receipt_digest are all required, with no defaults or optional fields. Preserve the request and policy used in the successful free POST /validate-request."
addedInput schema / properties / intent / properties / precheck_receipt_digest / description
Added value: +"Required sha256: followed by 64 lowercase hex characters, copied from precheck_receipt.receipt_digest of the successful free precheck. Recomputed against request, policy and current discovery contract; mismatches return PRECHECK_STALE."
addedInput schema / properties / intent / properties / request / description
Added value: +"Required complete bounded verification request, unchanged from precheck; no optional fields or defaults."
addedInput schema / properties / intent / properties / request / properties / assertions / description
Added value: +"Required 1-16 deterministic assertions. Each operation accepts only its documented fields. Precheck validates input, not assertion truth."
changedInput schema / properties / intent / properties / request / properties / assertions / items / oneOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "expected_hex": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "op": {
- "const": "sha256_equals",
- "type": "string"
- }
- },
- "required": [
- "op",
- "expected_hex"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "op": {
- "const": "json_pointer_exists",
- "type": "string"
- },
- "path": {
- "maxLength": 512,
- "type": "string"
- }
- },
- "required": [
- "op",
- "path"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "expected": {},
- "op": {
- "const": "json_pointer_equals",
- "type": "string"
- },
- "path": {
- "maxLength": 512,
- "type": "string"
- }
- },
- "required": [
- "op",
- "path",
- "expected"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "expected_type": {
- "enum": [
- "null",
- "boolean",
- "number",
- "string",
- "array",
- "object"
- ],
- "type": "string"
- },
- "op": {
- "const": "json_type_is",
- "type": "string"
- },
- "path": {
- "maxLength": 512,
- "type": "string"
- }
- },
- "required": [
- "op",
- "path",
- "expected_type"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "expected_hex": {
+ "description": "Required expected digest as exactly 64 lowercase hex characters, without sha256: prefix.",
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "op": {
+ "const": "sha256_equals",
+ "description": "Compare SHA-256 of the raw decoded evidence bytes.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "expected_hex"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "op": {
+ "const": "json_pointer_exists",
+ "description": "Check whether the JSON Pointer resolves.",
+ "type": "string"
+ },
+ "path": {
+ "description": "Required RFC 6901 JSON Pointer, at most 512 characters; empty string selects the document root. Escape tilde as ~0 and slash as ~1.",
+ "maxLength": 512,
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "path"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "expected": {
+ "description": "Required expected JSON value, including null; JSON depth/key/value and safe-integer limits apply."
+ },
+ "op": {
+ "const": "json_pointer_equals",
+ "description": "Compare the selected JSON value with expected.",
+ "type": "string"
+ },
+ "path": {
+ "description": "Required RFC 6901 JSON Pointer, at most 512 characters; empty string selects the document root. Escape tilde as ~0 and slash as ~1.",
+ "maxLength": 512,
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "path",
+ "expected"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "expected_type": {
+ "description": "Required JSON type: null, boolean, number, string, array or object.",
+ "enum": [
+ "null",
+ "boolean",
+ "number",
+ "string",
+ "array",
+ "object"
+ ],
+ "type": "string"
+ },
+ "op": {
+ "const": "json_type_is",
+ "description": "Check the selected JSON value type.",
+ "type": "string"
+ },
+ "path": {
+ "description": "Required RFC 6901 JSON Pointer, at most 512 characters; empty string selects the document root. Escape tilde as ~0 and slash as ~1.",
+ "maxLength": 512,
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "path",
+ "expected_type"
+ ],
+ "type": "object"
+ }
+]
addedInput schema / properties / intent / properties / request / properties / client_request_id / description
Added value: +"Required caller request identifier, 1-64 characters from A-Z, a-z, 0-9, dot, underscore, colon or hyphen; included in the request hash."
addedInput schema / properties / intent / properties / request / properties / evidence / description
Added value: +"Required caller-supplied JSON bytes; no remote evidence is fetched."
addedInput schema / properties / intent / properties / request / properties / evidence / properties / content_base64 / description
Added value: +"Required strict standard Base64 of UTF-8 JSON; 4-87384 encoded characters and at most 65536 decoded bytes. JSON limits: depth 32, object keys 2048, values 8192; integers must be JavaScript safe integers."
addedInput schema / properties / intent / properties / request / properties / evidence / properties / media_type / description
Added value: +"Required literal application/json."
addedInput schema / properties / intent / properties / spend_policy / description
Added value: +"Required caller spending limits and allowed terms; preserve from precheck. All five fields required; no defaults."
addedInput schema / properties / intent / properties / spend_policy / properties / asset / description
Added value: +"Required USDC contract address, 0x plus 40 hex characters; must match current advertised asset."
addedInput schema / properties / intent / properties / spend_policy / properties / max_amount_atomic / description
Added value: +"Required positive decimal integer string in atomic USDC units (1000000 = 1 USDC), at most 16 digits and within JavaScript safe-integer range. No leading zero; must cover the current quoted price."
addedInput schema / properties / intent / properties / spend_policy / properties / network / description
Added value: +"Required eip155:8453 (Base) or eip155:84532 (Base Sepolia); must match current advertised terms."
addedInput schema / properties / intent / properties / spend_policy / properties / pay_to / description
Added value: +"Required allowed payment recipient, 0x plus 40 hex characters; must match current advertised payTo."
addedInput schema / properties / intent / properties / spend_policy / properties / policy_version / description
Added value: +"Required literal agent-economy/precheck-policy/2.0."