Skip to main content
Glama

Verify Response (Legacy)

oracle.verify_response

Legacy compatibility entry point for existing clients. This authenticated prepaid verification may consume account balance and records a trust receipt, but it does not execute any proposed external action. Supply exactly one contract: prompt + response, or use_case + action; never mix them. Reuse idempotency_key only for the same logical retry. For new action preflight use oracle.verify_autonomous_action; use oracle.verify_batch for multiple items.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoVerification mode. Use fast_heuristic for the default low-latency path or semantic_judge when a semantic model judgment is explicitly required.
actionNoThe proposed action. For executable pilot authorization use interai-canonical-action/v1 with host-registry tool_id, type, operation, exact arguments, and explicit side-effect semantics.
domainNoOptional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs.
policyNoOptional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy.
promptNoLegacy compatibility input: the original prompt whose response is being verified. Use together with response, not with autonomous action fields.
contextNoOptional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision.
responseNoLegacy compatibility input: the response to evaluate against prompt. Use together with prompt, not with autonomous action fields.
use_caseNoStable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract.
idempotency_keyNoStable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request.
execution_contextNoHost-attested execution context bound to a canonical action. InterAI authenticates the account, not the truth of host-provided workspace, actor, run, or environment values.
external_evidenceNoOptional signed or verifiable external assertions. Current Stage 2 evidence is parsed, verified, bound, and recorded as non-authoritative evidence; it does not directly determine the InterAI execution decision or risk score.
authorization_ttl_secondsNoLifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
billedYesBilling metadata for this verification call.
resultYesPre-execution decision, policy evaluation, signals, and trust-receipt evidence.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "description": "Legacy verification contract. Requires both prompt and response and excludes autonomous action, context, policy, and external evidence fields.",
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "use_case"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "action"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "context"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "policy"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "external_evidence"
      -          ]
      -        }
      -      ]
      -    },
      -    "required": [
      -      "prompt",
      -      "response"
      -    ]
      -  },
      -  {
      -    "description": "Autonomous execution compatibility contract. Requires use_case and action and excludes legacy prompt/response fields. New integrations should prefer oracle.verify_autonomous_action.",
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "prompt"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "response"
      -          ]
      -        }
      -      ]
      -    },
      -    "required": [
      -      "use_case",
      -      "action"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "description": "Legacy verification contract. Requires both prompt and response and excludes autonomous action, context, policy, and external evidence fields.",
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "use_case"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "action"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "execution_context"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "authorization_ttl_seconds"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "context"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "policy"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "external_evidence"
      +          ]
      +        }
      +      ]
      +    },
      +    "required": [
      +      "prompt",
      +      "response"
      +    ]
      +  },
      +  {
      +    "description": "Autonomous execution compatibility contract. Requires use_case and action and excludes legacy prompt/response fields. New integrations should prefer oracle.verify_autonomous_action.",
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "prompt"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "response"
      +          ]
      +        }
      +      ]
      +    },
      +    "required": [
      +      "use_case",
      +      "action"
      +    ]
      +  }
      +]
    • changedInput schema / properties / action / description
      Previous value: -"The exact proposed action that would execute if allowed. Include the operation and consequential properties relevant to the decision, such as money movement, external side effects, irreversibility, destination, or affected resource."New value: +"The proposed action. For executable pilot authorization use interai-canonical-action/v1 with host-registry tool_id, type, operation, exact arguments, and explicit side-effect semantics."
    • addedInput schema / properties / action / properties
      Added value: +{
      +  "arguments": {
      +    "type": "object"
      +  },
      +  "destination": {
      +    "minLength": 1,
      +    "pattern": "\\S",
      +    "type": "string"
      +  },
      +  "external_side_effect": {
      +    "type": "boolean"
      +  },
      +  "irreversible": {
      +    "type": "boolean"
      +  },
      +  "operation": {
      +    "minLength": 1,
      +    "pattern": "\\S",
      +    "type": "string"
      +  },
      +  "resource": {
      +    "minLength": 1,
      +    "pattern": "\\S",
      +    "type": "string"
      +  },
      +  "schema": {
      +    "const": "interai-canonical-action/v1",
      +    "type": "string"
      +  },
      +  "tool_id": {
      +    "minLength": 1,
      +    "pattern": "\\S",
      +    "type": "string"
      +  },
      +  "type": {
      +    "minLength": 1,
      +    "pattern": "\\S",
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / authorization_ttl_seconds
      Added value: +{
      +  "default": 60,
      +  "description": "Lifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material.",
      +  "maximum": 300,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / execution_context
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Host-attested execution context bound to a canonical action. InterAI authenticates the account, not the truth of host-provided workspace, actor, run, or environment values.",
      +  "properties": {
      +    "actor_id": {
      +      "minLength": 1,
      +      "pattern": "\\S",
      +      "type": "string"
      +    },
      +    "environment": {
      +      "minLength": 1,
      +      "pattern": "\\S",
      +      "type": "string"
      +    },
      +    "run_id": {
      +      "minLength": 1,
      +      "pattern": "\\S",
      +      "type": "string"
      +    },
      +    "schema": {
      +      "const": "interai-host-execution-context/v1",
      +      "type": "string"
      +    },
      +    "workspace_id": {
      +      "minLength": 1,
      +      "pattern": "\\S",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "schema",
      +    "workspace_id",
      +    "environment"
      +  ],
      +  "type": "object"
      +}
    • changedInput schema / properties / policy / additionalProperties
      Previous value: -trueNew value: +false
    • changedInput schema / properties / policy / description
      Previous value: -"Optional caller-scoped restrictions for this request. Caller policy may tighten the effective decision boundary but cannot weaken authoritative InterAI host or resolved account policy."New value: +"Optional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy."
    • addedInput schema / properties / policy / properties
      Added value: +{
      +  "allowed_action_types": {
      +    "items": {
      +      "maxLength": 128,
      +      "minLength": 1,
      +      "pattern": "\\S",
      +      "type": "string"
      +    },
      +    "maxItems": 100,
      +    "type": "array"
      +  },
      +  "allowed_action_types_enforced": {
      +    "type": "boolean"
      +  },
      +  "amount_usd_limit": {
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "blocked_action_types": {
      +    "items": {
      +      "maxLength": 128,
      +      "minLength": 1,
      +      "pattern": "\\S",
      +      "type": "string"
      +    },
      +    "maxItems": 100,
      +    "type": "array"
      +  },
      +  "max_risk_level": {
      +    "enum": [
      +      "low",
      +      "medium",
      +      "high"
      +    ],
      +    "type": "string"
      +  },
      +  "require_human_review_above": {
      +    "maximum": 1,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "require_trust_receipt": {
      +    "type": "boolean"
      +  },
      +  "require_user_confirmation_for_irreversible": {
      +    "type": "boolean"
      +  }
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "Successful InterAI single-verification result. The unstructured content field carries the same payload serialized as JSON for backwards compatibility.",
      +  "properties": {
      +    "billed": {
      +      "additionalProperties": true,
      +      "description": "Billing metadata for this verification call.",
      +      "properties": {
      +        "cost_microusdc": {
      +          "type": "number"
      +        },
      +        "cost_usdc": {
      +          "type": "string"
      +        },
      +        "mode": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "result": {
      +      "additionalProperties": true,
      +      "description": "Pre-execution decision, policy evaluation, signals, and trust-receipt evidence.",
      +      "properties": {
      +        "oracle": {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        "policy_result": {
      +          "enum": [
      +            "allow",
      +            "review_required",
      +            "block"
      +          ],
      +          "type": "string"
      +        },
      +        "recommended_action": {
      +          "enum": [
      +            "allow",
      +            "review_required",
      +            "block",
      +            "accept",
      +            "review"
      +          ],
      +          "type": "string"
      +        },
      +        "request_contract": {
      +          "type": "string"
      +        },
      +        "risk_level": {
      +          "type": "string"
      +        },
      +        "score": {
      +          "type": "number"
      +        },
      +        "signals": {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        "trust_receipt": {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        "trust_receipt_id": {
      +          "type": "string"
      +        },
      +        "trust_score": {
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "billed",
      +    "result"
      +  ],
      +  "type": "object"
      +}
  3. Changed12 schema fields changed
    • addedInput schema / description
      Added value: +"Compatibility schema supporting exactly one of two existing contracts: legacy prompt + response, or autonomous use_case + action. Do not mix legacy prompt/response fields with autonomous action fields in the same request."
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "use_case"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "action"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "context"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "policy"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "external_evidence"
      -          ]
      -        }
      -      ]
      -    },
      -    "required": [
      -      "prompt",
      -      "response"
      -    ]
      -  },
      -  {
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "prompt"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "response"
      -          ]
      -        }
      -      ]
      -    },
      -    "required": [
      -      "use_case",
      -      "action"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "description": "Legacy verification contract. Requires both prompt and response and excludes autonomous action, context, policy, and external evidence fields.",
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "use_case"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "action"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "context"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "policy"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "external_evidence"
      +          ]
      +        }
      +      ]
      +    },
      +    "required": [
      +      "prompt",
      +      "response"
      +    ]
      +  },
      +  {
      +    "description": "Autonomous execution compatibility contract. Requires use_case and action and excludes legacy prompt/response fields. New integrations should prefer oracle.verify_autonomous_action.",
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "prompt"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "response"
      +          ]
      +        }
      +      ]
      +    },
      +    "required": [
      +      "use_case",
      +      "action"
      +    ]
      +  }
      +]
    • addedInput schema / properties / action / description
      Added value: +"The exact proposed action that would execute if allowed. Include the operation and consequential properties relevant to the decision, such as money movement, external side effects, irreversibility, destination, or affected resource."
    • addedInput schema / properties / context / description
      Added value: +"Optional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision."
    • addedInput schema / properties / domain / description
      Added value: +"Optional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs."
    • addedInput schema / properties / external_evidence / description
      Added value: +"Optional signed or verifiable external assertions. Current Stage 2 evidence is parsed, verified, bound, and recorded as non-authoritative evidence; it does not directly determine the InterAI execution decision or risk score."
    • addedInput schema / properties / idempotency_key / description
      Added value: +"Stable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request."
    • addedInput schema / properties / mode / description
      Added value: +"Verification mode. Use fast_heuristic for the default low-latency path or semantic_judge when a semantic model judgment is explicitly required."
    • addedInput schema / properties / policy / description
      Added value: +"Optional caller-scoped restrictions for this request. Caller policy may tighten the effective decision boundary but cannot weaken authoritative InterAI host or resolved account policy."
    • addedInput schema / properties / prompt / description
      Added value: +"Legacy compatibility input: the original prompt whose response is being verified. Use together with response, not with autonomous action fields."
    • addedInput schema / properties / response / description
      Added value: +"Legacy compatibility input: the response to evaluate against prompt. Use together with prompt, not with autonomous action fields."
    • addedInput schema / properties / use_case / description
      Added value: +"Stable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract."
  4. Changed2 schema fields changed
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "use_case"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "action"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "context"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "policy"
      -          ]
      -        }
      -      ]
      -    },
      -    "required": [
      -      "prompt",
      -      "response"
      -    ]
      -  },
      -  {
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "prompt"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "response"
      -          ]
      -        }
      -      ]
      -    },
      -    "required": [
      -      "use_case",
      -      "action"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "use_case"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "action"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "context"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "policy"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "external_evidence"
      +          ]
      +        }
      +      ]
      +    },
      +    "required": [
      +      "prompt",
      +      "response"
      +    ]
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "prompt"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "response"
      +          ]
      +        }
      +      ]
      +    },
      +    "required": [
      +      "use_case",
      +      "action"
      +    ]
      +  }
      +]
    • addedInput schema / properties / external_evidence
      Added value: +{
      +  "items": {
      +    "$id": "external-evidence/v0/rev6",
      +    "$schema": "http://json-schema.org/draft-07/schema#",
      +    "additionalProperties": false,
      +    "description": "Closed JSON Schema for one item of the optional top-level external_evidence collection. additionalProperties:false is enforced recursively; required fields are explicit; reference and inline modes are discriminated with oneOf (now actually enforced by conformant Draft-07 validators). rev4 hardening: every uint256 semantics field accepts either a JSON number in 0..9007199254740991 or a canonical decimal-string for larger values (Alejandro 10th-reply targeted correction, completing the 9th-reply integer item); rev3 items are retained: inline_payload closed with a strict profile-specific schema (Insight OracleSafetyCheck v2, 26 fields, required, exact types, additionalProperties:false), signed schemaVersion=2 and evaluationScope=SOURCE_ASSET_ONLY pinned by const. subject_only and order_insensitive binding modes are reserved and NOT accepted on the wire in v0. rev5: the wire shape is unchanged. The bundled self-check validator now evaluates const and enum before any type-specific return, so it agrees with a conformant Draft-07 validator on the pinned schemaVersion=2 and evaluationScope=SOURCE_ASSET_ONLY.",
      +    "properties": {
      +      "assertion": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "kind": {
      +            "description": "semantics pinned locally per provider profile",
      +            "enum": [
      +              "assessment",
      +              "observation"
      +            ],
      +            "type": "string"
      +          },
      +          "observations": {
      +            "additionalProperties": false,
      +            "description": "optional on the wire; if present it must equal the signed projection field by field (compared with structural/JCS equality, not order-sensitive JSON.stringify)",
      +            "properties": {
      +              "coverage_status": {
      +                "type": "string"
      +              },
      +              "cross_provider_agreement_bps": {
      +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                "oneOf": [
      +                  {
      +                    "maximum": 9007199254740991,
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "description": "canonical decimal-string: only for values > 9007199254740991",
      +                    "pattern": "^(0|[1-9][0-9]*)$",
      +                    "type": "string"
      +                  }
      +                ]
      +              },
      +              "cross_provider_deviation_bps": {
      +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                "oneOf": [
      +                  {
      +                    "maximum": 9007199254740991,
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "description": "canonical decimal-string: only for values > 9007199254740991",
      +                    "pattern": "^(0|[1-9][0-9]*)$",
      +                    "type": "string"
      +                  }
      +                ]
      +              },
      +              "independence_status": {
      +                "type": "string"
      +              },
      +              "max_data_age_seconds": {
      +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                "oneOf": [
      +                  {
      +                    "maximum": 9007199254740991,
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "description": "canonical decimal-string: only for values > 9007199254740991",
      +                    "pattern": "^(0|[1-9][0-9]*)$",
      +                    "type": "string"
      +                  }
      +                ]
      +              },
      +              "participant_count": {
      +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                "oneOf": [
      +                  {
      +                    "maximum": 9007199254740991,
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "description": "canonical decimal-string: only for values > 9007199254740991",
      +                    "pattern": "^(0|[1-9][0-9]*)$",
      +                    "type": "string"
      +                  }
      +                ]
      +              },
      +              "required_participant_count": {
      +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                "oneOf": [
      +                  {
      +                    "maximum": 9007199254740991,
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "description": "canonical decimal-string: only for values > 9007199254740991",
      +                    "pattern": "^(0|[1-9][0-9]*)$",
      +                    "type": "string"
      +                  }
      +                ]
      +              }
      +            },
      +            "required": [
      +              "coverage_status",
      +              "participant_count",
      +              "required_participant_count",
      +              "cross_provider_deviation_bps",
      +              "cross_provider_agreement_bps",
      +              "independence_status",
      +              "max_data_age_seconds"
      +            ],
      +            "type": "object"
      +          },
      +          "verdict": {
      +            "description": "provider-native verdict, must equal the signed verdict",
      +            "type": "string"
      +          },
      +          "verdict_space": {
      +            "description": "the scale namespace, pinned locally per provider profile",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "kind",
      +          "verdict",
      +          "verdict_space"
      +        ],
      +        "type": "object"
      +      },
      +      "binding": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "action_commitment": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "commitment": {
      +                "description": "must equal the signed requestHash",
      +                "pattern": "^0x[0-9a-f]{64}$",
      +                "type": "string"
      +              },
      +              "committed_fields": {
      +                "description": "the field list is pinned locally per provider profile",
      +                "items": {
      +                  "type": "string"
      +                },
      +                "minItems": 1,
      +                "type": "array",
      +                "uniqueItems": true
      +              },
      +              "scheme": {
      +                "description": "pinned locally per provider profile (insight.canonical-pre-trade-request/v1)",
      +                "type": "string"
      +              },
      +              "type": {
      +                "description": "pinned locally per provider profile (eip712)",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "scheme",
      +              "type",
      +              "commitment",
      +              "committed_fields"
      +            ],
      +            "type": "object"
      +          },
      +          "binding_mode": {
      +            "description": "the only supported v0 binding mode. subject_only and order_insensitive are reserved and rejected on the wire.",
      +            "enum": [
      +              "exact_action"
      +            ],
      +            "type": "string"
      +          },
      +          "scope": {
      +            "description": "v0 supports action scope only; subject scope is reserved with subject_only",
      +            "enum": [
      +              "action"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "scope",
      +          "binding_mode",
      +          "action_commitment"
      +        ],
      +        "type": "object"
      +      },
      +      "evidence_id": {
      +        "description": "provider canonical digest as claimed by the caller; InterAI recomputes it from the verified signed assertion and a mismatch is NOT_ALLOWED.",
      +        "pattern": "^0x[0-9a-f]{64}$",
      +        "type": "string"
      +      },
      +      "provider": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "assertion_version": {
      +            "description": "must equal the locally configured profile version",
      +            "type": "string"
      +          },
      +          "key_id": {
      +            "description": "must equal the locally pinned key id",
      +            "type": "string"
      +          },
      +          "namespace": {
      +            "description": "resolved against the local provider adapter / trust registry",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "namespace",
      +          "assertion_version",
      +          "key_id"
      +        ],
      +        "type": "object"
      +      },
      +      "validity": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "evaluated_at": {
      +            "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED. must equal signed checkedAt",
      +            "oneOf": [
      +              {
      +                "maximum": 9007199254740991,
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              {
      +                "description": "canonical decimal-string: only for values > 9007199254740991",
      +                "pattern": "^(0|[1-9][0-9]*)$",
      +                "type": "string"
      +              }
      +            ]
      +          },
      +          "valid_until": {
      +            "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED. must equal signed validUntil; expiry is enforced on the signed payload, never this projection",
      +            "oneOf": [
      +              {
      +                "maximum": 9007199254740991,
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              {
      +                "description": "canonical decimal-string: only for values > 9007199254740991",
      +                "pattern": "^(0|[1-9][0-9]*)$",
      +                "type": "string"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "evaluated_at",
      +          "valid_until"
      +        ],
      +        "type": "object"
      +      },
      +      "verification": {
      +        "oneOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "attestation_ref": {
      +                "description": "resolved through the locally configured adapter / allowlisted origin; a URL in evidence never triggers arbitrary fetching",
      +                "type": "string"
      +              },
      +              "mode": {
      +                "const": "reference"
      +              }
      +            },
      +            "required": [
      +              "mode",
      +              "attestation_ref"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "inline_payload": {
      +                "additionalProperties": false,
      +                "description": "profile-specific closed schema for the Insight OracleSafetyCheck v2 (26-field) inline payload: required, exact types, additionalProperties:false, schemaVersion=2 and evaluationScope=SOURCE_ASSET_ONLY pinned by const. A future provider profile pins its own inline schema.",
      +                "properties": {
      +                  "action": {
      +                    "type": "string"
      +                  },
      +                  "checkedAt": {
      +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                    "oneOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "description": "canonical decimal-string: only for values > 9007199254740991",
      +                        "pattern": "^(0|[1-9][0-9]*)$",
      +                        "type": "string"
      +                      }
      +                    ]
      +                  },
      +                  "consensusPrice": {
      +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                    "oneOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "description": "canonical decimal-string: only for values > 9007199254740991",
      +                        "pattern": "^(0|[1-9][0-9]*)$",
      +                        "type": "string"
      +                      }
      +                    ]
      +                  },
      +                  "coverageStatus": {
      +                    "type": "string"
      +                  },
      +                  "crossProviderAgreementBps": {
      +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                    "oneOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "description": "canonical decimal-string: only for values > 9007199254740991",
      +                        "pattern": "^(0|[1-9][0-9]*)$",
      +                        "type": "string"
      +                      }
      +                    ]
      +                  },
      +                  "destinationAssetId": {
      +                    "type": "string"
      +                  },
      +                  "evaluatedAssetIdsHash": {
      +                    "pattern": "^0x[0-9a-f]{64}$",
      +                    "type": "string"
      +                  },
      +                  "evaluationScope": {
      +                    "const": "SOURCE_ASSET_ONLY",
      +                    "description": "pinned (Alejandro 9th reply): InterAI must not widen the signed evaluationScope claim",
      +                    "type": "string"
      +                  },
      +                  "independenceStatus": {
      +                    "type": "string"
      +                  },
      +                  "manipulationRiskBps": {
      +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                    "oneOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "description": "canonical decimal-string: only for values > 9007199254740991",
      +                        "pattern": "^(0|[1-9][0-9]*)$",
      +                        "type": "string"
      +                      }
      +                    ]
      +                  },
      +                  "maxDataAgeSeconds": {
      +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                    "oneOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "description": "canonical decimal-string: only for values > 9007199254740991",
      +                        "pattern": "^(0|[1-9][0-9]*)$",
      +                        "type": "string"
      +                      }
      +                    ]
      +                  },
      +                  "maxDeviationBps": {
      +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                    "oneOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "description": "canonical decimal-string: only for values > 9007199254740991",
      +                        "pattern": "^(0|[1-9][0-9]*)$",
      +                        "type": "string"
      +                      }
      +                    ]
      +                  },
      +                  "maxStablecoinDepegBps": {
      +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                    "oneOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "description": "canonical decimal-string: only for values > 9007199254740991",
      +                        "pattern": "^(0|[1-9][0-9]*)$",
      +                        "type": "string"
      +                      }
      +                    ]
      +                  },
      +                  "participantCount": {
      +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                    "oneOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "description": "canonical decimal-string: only for values > 9007199254740991",
      +                        "pattern": "^(0|[1-9][0-9]*)$",
      +                        "type": "string"
      +                      }
      +                    ]
      +                  },
      +                  "providerObservationsHash": {
      +                    "pattern": "^0x[0-9a-f]{64}$",
      +                    "type": "string"
      +                  },
      +                  "reasonCodesHash": {
      +                    "pattern": "^0x[0-9a-f]{64}$",
      +                    "type": "string"
      +                  },
      +                  "recommendedMaxPositionUsd": {
      +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                    "oneOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "description": "canonical decimal-string: only for values > 9007199254740991",
      +                        "pattern": "^(0|[1-9][0-9]*)$",
      +                        "type": "string"
      +                      }
      +                    ]
      +                  },
      +                  "requestHash": {
      +                    "pattern": "^0x[0-9a-f]{64}$",
      +                    "type": "string"
      +                  },
      +                  "requiredParticipantCount": {
      +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                    "oneOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "description": "canonical decimal-string: only for values > 9007199254740991",
      +                        "pattern": "^(0|[1-9][0-9]*)$",
      +                        "type": "string"
      +                      }
      +                    ]
      +                  },
      +                  "schemaVersion": {
      +                    "const": 2,
      +                    "description": "pinned (Alejandro 9th reply): only schemaVersion=2 is accepted",
      +                    "maximum": 9007199254740991,
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  },
      +                  "sourceAssetId": {
      +                    "type": "string"
      +                  },
      +                  "sourceGroupCount": {
      +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                    "oneOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "description": "canonical decimal-string: only for values > 9007199254740991",
      +                        "pattern": "^(0|[1-9][0-9]*)$",
      +                        "type": "string"
      +                      }
      +                    ]
      +                  },
      +                  "subjectChainId": {
      +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                    "oneOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "description": "canonical decimal-string: only for values > 9007199254740991",
      +                        "pattern": "^(0|[1-9][0-9]*)$",
      +                        "type": "string"
      +                      }
      +                    ]
      +                  },
      +                  "tradeAmountUsd": {
      +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                    "oneOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "description": "canonical decimal-string: only for values > 9007199254740991",
      +                        "pattern": "^(0|[1-9][0-9]*)$",
      +                        "type": "string"
      +                      }
      +                    ]
      +                  },
      +                  "validUntil": {
      +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
      +                    "oneOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "description": "canonical decimal-string: only for values > 9007199254740991",
      +                        "pattern": "^(0|[1-9][0-9]*)$",
      +                        "type": "string"
      +                      }
      +                    ]
      +                  },
      +                  "verdict": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "verdict",
      +                  "sourceAssetId",
      +                  "destinationAssetId",
      +                  "subjectChainId",
      +                  "action",
      +                  "tradeAmountUsd",
      +                  "consensusPrice",
      +                  "maxDeviationBps",
      +                  "manipulationRiskBps",
      +                  "participantCount",
      +                  "requiredParticipantCount",
      +                  "coverageStatus",
      +                  "independenceStatus",
      +                  "sourceGroupCount",
      +                  "crossProviderAgreementBps",
      +                  "maxStablecoinDepegBps",
      +                  "maxDataAgeSeconds",
      +                  "recommendedMaxPositionUsd",
      +                  "reasonCodesHash",
      +                  "requestHash",
      +                  "evaluationScope",
      +                  "evaluatedAssetIdsHash",
      +                  "providerObservationsHash",
      +                  "validUntil",
      +                  "checkedAt",
      +                  "schemaVersion"
      +                ],
      +                "type": "object"
      +              },
      +              "inline_signature": {
      +                "description": "provider signature over the typed payload",
      +                "type": "string"
      +              },
      +              "mode": {
      +                "const": "inline"
      +              }
      +            },
      +            "required": [
      +              "mode",
      +              "inline_payload",
      +              "inline_signature"
      +            ],
      +            "type": "object"
      +          }
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "evidence_id",
      +      "provider",
      +      "assertion",
      +      "validity",
      +      "binding",
      +      "verification"
      +    ],
      +    "title": "external-evidence/v0 (rev6) wire item",
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  5. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint=false, idempotentHint=false) only hint at non-read-only and non-idempotent behaviorUTES. The description substantially adds critical context: it explicitly states the operation may consume account balance, records a trust receipt, and does not execute any proposed external action. It also warns about idempotency_key reuse semantics, going far beyond annotation hints. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three efficient sentences. It front-loads the legacy status, then discloses billing/side-effect behavior, then states the contract ruleley and idempotency constraint, and finally routes to siblings. Every sentence carries essential information; no filler or redundant explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (nested schemas, billing side effects, contract variants) and the presence of a full output schema, the description covers all operational essentials: legacy purpose, billing impact, trust receipt, non-execution guarantee, contract exclusivity, idempotency, and sibling routing. An agent has everything needed to decide when and how to invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters in detail. The description reinforces the two-contract exclusivity and idempotency_key reuse rule, but these rules are already present in the schema's oneOf descriptions and the idempotency_key field description. Thus the description adds no new parameter-level meaning; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (verify a response or action compatibility), identifies the resource (legacy clients), and clearly differentiates from siblings by naming oracle.verify_autonomous_action and oracle.verify_batch as alternatives. The legacy status and the two exclusive contract forms are explicit, leaving no ambiguity about what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: it is for existing legacy clients, and new action preflight should use oracle.verify_autonomous_action; multiple items should use oracle.verify_batch. It also provides a strict contract rule ('Supply exactly one contract... never mix them') and idempotency guidance, covering both invocation and alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.