Skip to main content
Glama

Verify Batch

oracle.verify_batch

Use for multiple independent legacy or autonomous verification items in one authenticated prepaid call (1 to 100). The batch may consume account balance and records one trust receipt per item; InterAI does not execute any proposed external action. Reuse idempotency_key only for the same logical batch retry. For one proposed action, use oracle.verify_autonomous_action instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYesIndependent verification items. Each item must contain either prompt + response or use_case + action; 1 to 100 items are accepted.
idempotency_keyNoStable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
billedYesBilling metadata for the batch operation.
oracleYesInterAI engine and signing metadata.
resultsYesIndependent verification decisions in the same order as the submitted items.
summaryYesAggregate batch summary.
batch_sizeYesNumber of independently evaluated batch items.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • changedInput schema / properties / items / items / oneOf
      Previous value: -[
      -  {
      -    "description": "Legacy batch item requiring prompt and response and excluding autonomous action fields.",
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "use_case"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "action"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "context"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "policy"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "external_evidence"
      -          ]
      -        }
      -      ]
      -    },
      -    "required": [
      -      "prompt",
      -      "response"
      -    ]
      -  },
      -  {
      -    "description": "Autonomous batch item requiring use_case and action and excluding legacy prompt/response fields.",
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "prompt"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "response"
      -          ]
      -        }
      -      ]
      -    },
      -    "required": [
      -      "use_case",
      -      "action"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "description": "Legacy batch item requiring prompt and response and excluding autonomous action 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 batch item requiring use_case and action and excluding legacy prompt/response fields.",
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "prompt"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "response"
      +          ]
      +        }
      +      ]
      +    },
      +    "required": [
      +      "use_case",
      +      "action"
      +    ]
      +  }
      +]
    • changedInput schema / properties / items / items / 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 / items / items / 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 / items / items / 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 / items / items / 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 / items / items / properties / policy / additionalProperties
      Previous value: -trueNew value: +false
    • changedInput schema / properties / items / items / 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 / items / items / 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 batch verification result. The unstructured content field carries the same payload serialized as JSON for backwards compatibility.",
      +  "properties": {
      +    "batch_size": {
      +      "description": "Number of independently evaluated batch items.",
      +      "maximum": 100,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "billed": {
      +      "additionalProperties": true,
      +      "description": "Billing metadata for the batch operation.",
      +      "type": "object"
      +    },
      +    "oracle": {
      +      "additionalProperties": true,
      +      "description": "InterAI engine and signing metadata.",
      +      "type": "object"
      +    },
      +    "results": {
      +      "description": "Independent verification decisions in the same order as the submitted items.",
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "summary": {
      +      "additionalProperties": true,
      +      "description": "Aggregate batch summary.",
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "billed",
      +    "batch_size",
      +    "results",
      +    "summary",
      +    "oracle"
      +  ],
      +  "type": "object"
      +}
  3. Changed13 schema fields changed
    • addedInput schema / description
      Added value: +"Verify 1 to 100 independent items in one billed operation. Each item independently uses either the legacy or autonomous contract. The optional idempotency key applies to the batch operation as a whole."
    • 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 / items / description
      Added value: +"Independent verification items. Each item must contain either prompt + response or use_case + action; 1 to 100 items are accepted."
    • addedInput schema / properties / items / items / description
      Added value: +"One independent batch item. Supply either legacy prompt + response or autonomous use_case + action; never mix the two contracts within one item."
    • changedInput schema / properties / items / items / 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 batch item requiring prompt and response and excluding autonomous action fields.",
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "use_case"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "action"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "context"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "policy"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "external_evidence"
      +          ]
      +        }
      +      ]
      +    },
      +    "required": [
      +      "prompt",
      +      "response"
      +    ]
      +  },
      +  {
      +    "description": "Autonomous batch item requiring use_case and action and excluding legacy prompt/response fields.",
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "prompt"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "response"
      +          ]
      +        }
      +      ]
      +    },
      +    "required": [
      +      "use_case",
      +      "action"
      +    ]
      +  }
      +]
    • addedInput schema / properties / items / items / 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 / items / items / 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 / items / items / 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 / items / items / 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 / items / items / 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 / items / items / 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 / items / items / 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 / items / items / 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 / properties / items / items / 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 / items / items / 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.4/5.0
Behavior4/5

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

The description discloses key behaviors beyond the annotations: it consumes account balance ('The batch may consume account balance'), records one trust receipt per item, and explicitly states 'InterAI does not execute any proposed external action.' It also mentions the authenticated and prepaid nature of the call. These details add significant context that the annotations (all false) do not provide. It does not cover potential partial-failure semantics, but the disclosed behaviors are substantial.

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 sentences, front-loaded with the primary purpose and scope, followed by behavioral notes and a sibling alternative. Every sentence adds distinct value with no repetition or filler, making it highly concise and efficient for an agent to parse.

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

Completeness4/5

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

Given the tool's complexity (batch of up to 100 items, two distinct contracts, idempotency), the description covers the essential points: what it does, economic impact, non-execution, and the single-action alternative. The schema is extremely detailed, and an output schema exists, so the description need not explain return values. It might have mentioned partial-failure behavior, but overall it is sufficient for an agent to decide when and how to use it.

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%, and the schema already provides detailed descriptions for both parameters (items and idempotency_key). The tool description adds little parameter-specific meaning beyond the schema; for instance, it repeats the idempotency_key guidance already present in the schema ('Reuse it only for the same logical request' vs 'Reuse idempotency_key only for the same logical batch retry'). This matches the baseline of 3 for high schema coverage with minimal additional description value.

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 verb and resource: 'Use for multiple independent legacy or autonomous verification items in one authenticated prepaid call (1 to 100).' It clearly distinguishes from the sibling by naming the alternative: 'For one proposed action, use oracle.verify_autonomous_action instead.' This fully disambiguates the tool's role among the batch of siblings.

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?

It explicitly states when to use the tool (multiple independent items) and explicitly names the alternative for a single action. It also gives guidance on idempotency_key reuse: 'Reuse idempotency_key only for the same logical batch retry,' which is a clear behavioral instruction. The context of 'authenticated prepaid call' further clarifies the usage scenario.

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.