Koskamo

InterAI Risk Oracle MCP

An independent pre-execution decision layer for consequential agent actions, providing policy-bound decisions with durable trust receipts to enforce authority boundaries before execution.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

InterAI Risk Oracle MCP logo, by InterAILabsCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by InterAILabs
MCP endpoint (Streamable HTTP)
https://api.interailabs.dev/mcp
Vendor documentation

What its tools do

9 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

9 of 9 have a description · 9 of 9 declare behavior hints · 5 of 5 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Warning Advertises resources/templates/list but does not implement it
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Enforce policy-bound decisions before agent execution
  • Generate durable trust receipts for audit trails
  • Verify agent actions against predefined authority boundaries

Source and maintenance

Community listingRegistry 0.1.3-beta.1
Maintenance checked

Protocol and capabilities

Server
interai-risk-oracle 0.1.3-beta.1
MCP protocol negotiated in check
2025-11-25
Tools
9 advertised
Resources
8 advertised
Resource templates
Not advertised
Prompts
4 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  }
}

Tools

9 advertised

oracle.verify_autonomous_action — Verify Autonomous Action
Advertised by the server during the last successful anonymous check.

Primary tool for one concrete proposed autonomous action before it executes. This authenticated prepaid verification may consume account balance and records a signed trust receipt; InterAI evaluates the proposal but does not execute or modify the proposed external action. Reuse idempotency_key only when retrying the same logical request to avoid duplicate billing. Returns allow, review_required, or block with policy signals. Use oracle.verify_batch for multiple independent items and oracle.verify_response only for legacy prompt/response compatibility.

oracle.verify_autonomous_action input schema
{
  "type": "object",
  "required": [
    "use_case",
    "action"
  ],
  "properties": {
    "mode": {
      "enum": [
        "fast_heuristic",
        "semantic_judge"
      ],
      "type": "string",
      "description": "Verification mode. Use fast_heuristic for the default low-latency path or semantic_judge when a semantic model judgment is explicitly required."
    },
    "action": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "schema": {
          "type": "string",
          "const": "interai-canonical-action/v1"
        },
        "tool_id": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "resource": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "arguments": {
          "type": "object"
        },
        "operation": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "destination": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "irreversible": {
          "type": "boolean"
        },
        "external_side_effect": {
          "type": "boolean"
        }
      },
      "description": "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.",
      "additionalProperties": true
    },
    "domain": {
      "type": "string",
      "pattern": "\\S",
      "minLength": 1,
      "description": "Optional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs."
    },
    "policy": {
      "type": "object",
      "properties": {
        "max_risk_level": {
          "enum": [
            "low",
            "medium",
            "high"
          ],
          "type": "string"
        },
        "amount_usd_limit": {
          "type": "number",
          "minimum": 0
        },
        "allowed_action_types": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "\\S",
            "maxLength": 128,
            "minLength": 1
          },
          "maxItems": 100
        },
        "blocked_action_types": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "\\S",
            "maxLength": 128,
            "minLength": 1
          },
          "maxItems": 100
        },
        "require_trust_receipt": {
          "type": "boolean"
        },
        "require_human_review_above": {
          "type": "number",
          "maximum": 1,
          "minimum": 0
        },
        "allowed_action_types_enforced": {
          "type": "boolean"
        },
        "require_user_confirmation_for_irreversible": {
          "type": "boolean"
        }
      },
      "description": "Optional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy.",
      "additionalProperties": false
    },
    "context": {
      "type": "object",
      "description": "Optional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision.",
      "additionalProperties": true
    },
    "use_case": {
      "type": "string",
      "pattern": "\\S",
      "minLength": 1,
      "description": "Stable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract."
    },
    "idempotency_key": {
      "type": "string",
      "pattern": "^\\s*[A-Za-z0-9._:-]+\\s*$",
      "maxLength": 200,
      "minLength": 1,
      "description": "Stable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request."
    },
    "execution_context": {
      "type": "object",
      "required": [
        "schema",
        "workspace_id",
        "environment"
      ],
      "properties": {
        "run_id": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "schema": {
          "type": "string",
          "const": "interai-host-execution-context/v1"
        },
        "actor_id": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "environment": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "workspace_id": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        }
      },
      "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.",
      "additionalProperties": false
    },
    "external_evidence": {
      "type": "array",
      "items": {
        "$id": "external-evidence/v0/rev6",
        "type": "object",
        "title": "external-evidence/v0 (rev6) wire item",
        "$schema": "http://json-schema.org/draft-07/schema#",
        "required": [
          "evidence_id",
          "provider",
          "assertion",
          "validity",
          "binding",
          "verification"
        ],
        "properties": {
          "binding": {
            "type": "object",
            "required": [
              "scope",
              "binding_mode",
              "action_commitment"
            ],
            "properties": {
              "scope": {
                "enum": [
                  "action"
                ],
                "type": "string",
                "description": "v0 supports action scope only; subject scope is reserved with subject_only"
              },
              "binding_mode": {
                "enum": [
                  "exact_action"
                ],
                "type": "string",
                "description": "the only supported v0 binding mode. subject_only and order_insensitive are reserved and rejected on the wire."
              },
              "action_commitment": {
                "type": "object",
                "required": [
                  "scheme",
                  "type",
                  "commitment",
                  "committed_fields"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "pinned locally per provider profile (eip712)"
                  },
                  "scheme": {
                    "type": "string",
                    "description": "pinned locally per provider profile (insight.canonical-pre-trade-request/v1)"
                  },
                  "commitment": {
                    "type": "string",
                    "pattern": "^0x[0-9a-f]{64}$",
                    "description": "must equal the signed requestHash"
                  },
                  "committed_fields": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "minItems": 1,
                    "description": "the field list is pinned locally per provider profile",
                    "uniqueItems": true
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          },
          "provider": {
            "type": "object",
            "required": [
              "namespace",
              "assertion_version",
              "key_id"
            ],
            "properties": {
              "key_id": {
                "type": "string",
                "description": "must equal the locally pinned key id"
              },
              "namespace": {
                "type": "string",
                "description": "resolved against the local provider adapter / trust registry"
              },
              "assertion_version": {
                "type": "string",
                "description": "must equal the locally configured profile version"
              }
            },
            "additionalProperties": false
          },
          "validity": {
            "type": "object",
            "required": [
              "evaluated_at",
              "valid_until"
            ],
            "properties": {
              "valid_until": {
                "oneOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "type": "string",
                    "pattern": "^(0|[1-9][0-9]*)$",
                    "description": "canonical decimal-string: only for values > 9007199254740991"
                  }
                ],
                "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"
              },
              "evaluated_at": {
                "oneOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "type": "string",
                    "pattern": "^(0|[1-9][0-9]*)$",
                    "description": "canonical decimal-string: only for values > 9007199254740991"
                  }
                ],
                "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"
              }
            },
            "additionalProperties": false
          },
          "assertion": {
            "type": "object",
            "required": [
              "kind",
              "verdict",
              "verdict_space"
            ],
            "properties": {
              "kind": {
                "enum": [
                  "assessment",
                  "observation"
                ],
                "type": "string",
                "description": "semantics pinned locally per provider profile"
              },
              "verdict": {
                "type": "string",
                "description": "provider-native verdict, must equal the signed verdict"
              },
              "observations": {
                "type": "object",
                "required": [
                  "coverage_status",
                  "participant_count",
                  "required_participant_count",
                  "cross_provider_deviation_bps",
                  "cross_provider_agreement_bps",
                  "independence_status",
                  "max_data_age_seconds"
                ],
                "properties": {
                  "coverage_status": {
                    "type": "string"
                  },
                  "participant_count": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "maximum": 9007199254740991,
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^(0|[1-9][0-9]*)$",
                        "description": "canonical decimal-string: only for values > 9007199254740991"
                      }
                    ],
                    "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."
                  },
                  "independence_status": {
                    "type": "string"
                  },
                  "max_data_age_seconds": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "maximum": 9007199254740991,
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^(0|[1-9][0-9]*)$",
                        "description": "canonical decimal-string: only for values > 9007199254740991"
                      }
                    ],
                    "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."
                  },
                  "required_participant_count": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "maximum": 9007199254740991,
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^(0|[1-9][0-9]*)$",
                        "description": "canonical decimal-string: only for values > 9007199254740991"
                      }
                    ],
                    "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."
                  },
                  "cross_provider_agreement_bps": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "maximum": 9007199254740991,
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^(0|[1-9][0-9]*)$",
                        "description": "canonical decimal-string: only for values > 9007199254740991"
                      }
                    ],
                    "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."
                  },
                  "cross_provider_deviation_bps": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "maximum": 9007199254740991,
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^(0|[1-9][0-9]*)$",
                        "description": "canonical decimal-string: only for values > 9007199254740991"
                      }
                    ],
                    "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."
                  }
                },
                "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)",
                "additionalProperties": false
              },
              "verdict_space": {
                "type": "string",
                "description": "the scale namespace, pinned locally per provider profile"
              }
            },
            "additionalProperties": false
          },
          "evidence_id": {
            "type": "string",
            "pattern": "^0x[0-9a-f]{64}$",
            "description": "provider canonical digest as claimed by the caller; InterAI recomputes it from the verified signed assertion and a mismatch is NOT_ALLOWED."
          },
          "verification": {
            "type": "object",
            "oneOf": [
              {
                "type": "object",
                "required": [
                  "mode",
                  "attestation_ref"
                ],
                "properties": {
                  "mode": {
                    "const": "reference"
                  },
                  "attestation_ref": {
                    "type": "string",
                    "description": "resolved through the locally configured adapter / allowlisted origin; a URL in evidence never triggers arbitrary fetching"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "mode",
                  "inline_payload",
                  "inline_signature"
                ],
                "properties": {
                  "mode": {
                    "const": "inline"
                  },
                  "inline_payload": {
                    "type": "object",
                    "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"
                    ],
                    "properties": {
                      "action": {
                        "type": "string"
                      },
                      "verdict": {
                        "type": "string"
                      },
                      "checkedAt": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "validUntil": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "requestHash": {
                        "type": "string",
                        "pattern": "^0x[0-9a-f]{64}$"
                      },
                      "schemaVersion": {
                        "type": "integer",
                        "const": 2,
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "description": "pinned (Alejandro 9th reply): only schemaVersion=2 is accepted"
                      },
                      "sourceAssetId": {
                        "type": "string"
                      },
                      "consensusPrice": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "coverageStatus": {
                        "type": "string"
                      },
                      "subjectChainId": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "tradeAmountUsd": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "evaluationScope": {
                        "type": "string",
                        "const": "SOURCE_ASSET_ONLY",
                        "description": "pinned (Alejandro 9th reply): InterAI must not widen the signed evaluationScope claim"
                      },
                      "maxDeviationBps": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "reasonCodesHash": {
                        "type": "string",
                        "pattern": "^0x[0-9a-f]{64}$"
                      },
                      "participantCount": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "sourceGroupCount": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "maxDataAgeSeconds": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "destinationAssetId": {
                        "type": "string"
                      },
                      "independenceStatus": {
                        "type": "string"
                      },
                      "manipulationRiskBps": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "evaluatedAssetIdsHash": {
                        "type": "string",
                        "pattern": "^0x[0-9a-f]{64}$"
                      },
                      "maxStablecoinDepegBps": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "providerObservationsHash": {
                        "type": "string",
                        "pattern": "^0x[0-9a-f]{64}$"
                      },
                      "requiredParticipantCount": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "crossProviderAgreementBps": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "recommendedMaxPositionUsd": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      }
                    },
                    "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.",
                    "additionalProperties": false
                  },
                  "inline_signature": {
                    "type": "string",
                    "description": "provider signature over the typed payload"
                  }
                },
                "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.",
        "additionalProperties": false
      },
      "description": "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."
    },
    "authorization_ttl_seconds": {
      "type": "integer",
      "default": 60,
      "maximum": 300,
      "minimum": 1,
      "description": "Lifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material."
    }
  },
  "description": "Preflight one exact proposed autonomous action before execution. Provide use_case and action; optionally add context, caller policy, external evidence, a domain label, verification mode, and an idempotency key.",
  "additionalProperties": false
}
oracle.verify_autonomous_action output schema
{
  "type": "object",
  "required": [
    "billed",
    "result"
  ],
  "properties": {
    "billed": {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string"
        },
        "cost_usdc": {
          "type": "string"
        },
        "cost_microusdc": {
          "type": "number"
        }
      },
      "description": "Billing metadata for this verification call.",
      "additionalProperties": true
    },
    "result": {
      "type": "object",
      "properties": {
        "score": {
          "type": "number"
        },
        "oracle": {
          "type": "object",
          "additionalProperties": true
        },
        "signals": {
          "type": "object",
          "additionalProperties": true
        },
        "risk_level": {
          "type": "string"
        },
        "trust_score": {
          "type": "number"
        },
        "policy_result": {
          "enum": [
            "allow",
            "review_required",
            "block"
          ],
          "type": "string"
        },
        "trust_receipt": {
          "type": "object",
          "additionalProperties": true
        },
        "request_contract": {
          "type": "string"
        },
        "trust_receipt_id": {
          "type": "string"
        },
        "recommended_action": {
          "enum": [
            "allow",
            "review_required",
            "block",
            "accept",
            "review"
          ],
          "type": "string"
        }
      },
      "description": "Pre-execution decision, policy evaluation, signals, and trust-receipt evidence.",
      "additionalProperties": true
    }
  },
  "description": "Successful InterAI single-verification result. The unstructured content field carries the same payload serialized as JSON for backwards compatibility.",
  "additionalProperties": true
}
oracle.verify_autonomous_action annotations
{
  "title": "Verify Autonomous Action",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
oracle.verify_response — Verify Response (Legacy)
Advertised by the server during the last successful anonymous check.

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.

oracle.verify_response input schema
{
  "type": "object",
  "oneOf": [
    {
      "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": "Legacy verification contract. Requires both prompt and response and excludes autonomous action, context, policy, and external evidence fields."
    },
    {
      "not": {
        "anyOf": [
          {
            "required": [
              "prompt"
            ]
          },
          {
            "required": [
              "response"
            ]
          }
        ]
      },
      "required": [
        "use_case",
        "action"
      ],
      "description": "Autonomous execution compatibility contract. Requires use_case and action and excludes legacy prompt/response fields. New integrations should prefer oracle.verify_autonomous_action."
    }
  ],
  "properties": {
    "mode": {
      "enum": [
        "fast_heuristic",
        "semantic_judge"
      ],
      "type": "string",
      "description": "Verification mode. Use fast_heuristic for the default low-latency path or semantic_judge when a semantic model judgment is explicitly required."
    },
    "action": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "schema": {
          "type": "string",
          "const": "interai-canonical-action/v1"
        },
        "tool_id": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "resource": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "arguments": {
          "type": "object"
        },
        "operation": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "destination": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "irreversible": {
          "type": "boolean"
        },
        "external_side_effect": {
          "type": "boolean"
        }
      },
      "description": "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.",
      "additionalProperties": true
    },
    "domain": {
      "type": "string",
      "pattern": "\\S",
      "minLength": 1,
      "description": "Optional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs."
    },
    "policy": {
      "type": "object",
      "properties": {
        "max_risk_level": {
          "enum": [
            "low",
            "medium",
            "high"
          ],
          "type": "string"
        },
        "amount_usd_limit": {
          "type": "number",
          "minimum": 0
        },
        "allowed_action_types": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "\\S",
            "maxLength": 128,
            "minLength": 1
          },
          "maxItems": 100
        },
        "blocked_action_types": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "\\S",
            "maxLength": 128,
            "minLength": 1
          },
          "maxItems": 100
        },
        "require_trust_receipt": {
          "type": "boolean"
        },
        "require_human_review_above": {
          "type": "number",
          "maximum": 1,
          "minimum": 0
        },
        "allowed_action_types_enforced": {
          "type": "boolean"
        },
        "require_user_confirmation_for_irreversible": {
          "type": "boolean"
        }
      },
      "description": "Optional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy.",
      "additionalProperties": false
    },
    "prompt": {
      "type": "string",
      "pattern": "\\S",
      "minLength": 1,
      "description": "Legacy compatibility input: the original prompt whose response is being verified. Use together with response, not with autonomous action fields."
    },
    "context": {
      "type": "object",
      "description": "Optional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision.",
      "additionalProperties": true
    },
    "response": {
      "type": "string",
      "pattern": "\\S",
      "minLength": 1,
      "description": "Legacy compatibility input: the response to evaluate against prompt. Use together with prompt, not with autonomous action fields."
    },
    "use_case": {
      "type": "string",
      "pattern": "\\S",
      "minLength": 1,
      "description": "Stable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract."
    },
    "idempotency_key": {
      "type": "string",
      "pattern": "^\\s*[A-Za-z0-9._:-]+\\s*$",
      "maxLength": 200,
      "minLength": 1,
      "description": "Stable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request."
    },
    "execution_context": {
      "type": "object",
      "required": [
        "schema",
        "workspace_id",
        "environment"
      ],
      "properties": {
        "run_id": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "schema": {
          "type": "string",
          "const": "interai-host-execution-context/v1"
        },
        "actor_id": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "environment": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        },
        "workspace_id": {
          "type": "string",
          "pattern": "\\S",
          "minLength": 1
        }
      },
      "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.",
      "additionalProperties": false
    },
    "external_evidence": {
      "type": "array",
      "items": {
        "$id": "external-evidence/v0/rev6",
        "type": "object",
        "title": "external-evidence/v0 (rev6) wire item",
        "$schema": "http://json-schema.org/draft-07/schema#",
        "required": [
          "evidence_id",
          "provider",
          "assertion",
          "validity",
          "binding",
          "verification"
        ],
        "properties": {
          "binding": {
            "type": "object",
            "required": [
              "scope",
              "binding_mode",
              "action_commitment"
            ],
            "properties": {
              "scope": {
                "enum": [
                  "action"
                ],
                "type": "string",
                "description": "v0 supports action scope only; subject scope is reserved with subject_only"
              },
              "binding_mode": {
                "enum": [
                  "exact_action"
                ],
                "type": "string",
                "description": "the only supported v0 binding mode. subject_only and order_insensitive are reserved and rejected on the wire."
              },
              "action_commitment": {
                "type": "object",
                "required": [
                  "scheme",
                  "type",
                  "commitment",
                  "committed_fields"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "pinned locally per provider profile (eip712)"
                  },
                  "scheme": {
                    "type": "string",
                    "description": "pinned locally per provider profile (insight.canonical-pre-trade-request/v1)"
                  },
                  "commitment": {
                    "type": "string",
                    "pattern": "^0x[0-9a-f]{64}$",
                    "description": "must equal the signed requestHash"
                  },
                  "committed_fields": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "minItems": 1,
                    "description": "the field list is pinned locally per provider profile",
                    "uniqueItems": true
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          },
          "provider": {
            "type": "object",
            "required": [
              "namespace",
              "assertion_version",
              "key_id"
            ],
            "properties": {
              "key_id": {
                "type": "string",
                "description": "must equal the locally pinned key id"
              },
              "namespace": {
                "type": "string",
                "description": "resolved against the local provider adapter / trust registry"
              },
              "assertion_version": {
                "type": "string",
                "description": "must equal the locally configured profile version"
              }
            },
            "additionalProperties": false
          },
          "validity": {
            "type": "object",
            "required": [
              "evaluated_at",
              "valid_until"
            ],
            "properties": {
              "valid_until": {
                "oneOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "type": "string",
                    "pattern": "^(0|[1-9][0-9]*)$",
                    "description": "canonical decimal-string: only for values > 9007199254740991"
                  }
                ],
                "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"
              },
              "evaluated_at": {
                "oneOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "type": "string",
                    "pattern": "^(0|[1-9][0-9]*)$",
                    "description": "canonical decimal-string: only for values > 9007199254740991"
                  }
                ],
                "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"
              }
            },
            "additionalProperties": false
          },
          "assertion": {
            "type": "object",
            "required": [
              "kind",
              "verdict",
              "verdict_space"
            ],
            "properties": {
              "kind": {
                "enum": [
                  "assessment",
                  "observation"
                ],
                "type": "string",
                "description": "semantics pinned locally per provider profile"
              },
              "verdict": {
                "type": "string",
                "description": "provider-native verdict, must equal the signed verdict"
              },
              "observations": {
                "type": "object",
                "required": [
                  "coverage_status",
                  "participant_count",
                  "required_participant_count",
                  "cross_provider_deviation_bps",
                  "cross_provider_agreement_bps",
                  "independence_status",
                  "max_data_age_seconds"
                ],
                "properties": {
                  "coverage_status": {
                    "type": "string"
                  },
                  "participant_count": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "maximum": 9007199254740991,
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^(0|[1-9][0-9]*)$",
                        "description": "canonical decimal-string: only for values > 9007199254740991"
                      }
                    ],
                    "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."
                  },
                  "independence_status": {
                    "type": "string"
                  },
                  "max_data_age_seconds": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "maximum": 9007199254740991,
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^(0|[1-9][0-9]*)$",
                        "description": "canonical decimal-string: only for values > 9007199254740991"
                      }
                    ],
                    "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."
                  },
                  "required_participant_count": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "maximum": 9007199254740991,
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^(0|[1-9][0-9]*)$",
                        "description": "canonical decimal-string: only for values > 9007199254740991"
                      }
                    ],
                    "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."
                  },
                  "cross_provider_agreement_bps": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "maximum": 9007199254740991,
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^(0|[1-9][0-9]*)$",
                        "description": "canonical decimal-string: only for values > 9007199254740991"
                      }
                    ],
                    "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."
                  },
                  "cross_provider_deviation_bps": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "maximum": 9007199254740991,
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^(0|[1-9][0-9]*)$",
                        "description": "canonical decimal-string: only for values > 9007199254740991"
                      }
                    ],
                    "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."
                  }
                },
                "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)",
                "additionalProperties": false
              },
              "verdict_space": {
                "type": "string",
                "description": "the scale namespace, pinned locally per provider profile"
              }
            },
            "additionalProperties": false
          },
          "evidence_id": {
            "type": "string",
            "pattern": "^0x[0-9a-f]{64}$",
            "description": "provider canonical digest as claimed by the caller; InterAI recomputes it from the verified signed assertion and a mismatch is NOT_ALLOWED."
          },
          "verification": {
            "type": "object",
            "oneOf": [
              {
                "type": "object",
                "required": [
                  "mode",
                  "attestation_ref"
                ],
                "properties": {
                  "mode": {
                    "const": "reference"
                  },
                  "attestation_ref": {
                    "type": "string",
                    "description": "resolved through the locally configured adapter / allowlisted origin; a URL in evidence never triggers arbitrary fetching"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "mode",
                  "inline_payload",
                  "inline_signature"
                ],
                "properties": {
                  "mode": {
                    "const": "inline"
                  },
                  "inline_payload": {
                    "type": "object",
                    "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"
                    ],
                    "properties": {
                      "action": {
                        "type": "string"
                      },
                      "verdict": {
                        "type": "string"
                      },
                      "checkedAt": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "validUntil": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "requestHash": {
                        "type": "string",
                        "pattern": "^0x[0-9a-f]{64}$"
                      },
                      "schemaVersion": {
                        "type": "integer",
                        "const": 2,
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "description": "pinned (Alejandro 9th reply): only schemaVersion=2 is accepted"
                      },
                      "sourceAssetId": {
                        "type": "string"
                      },
                      "consensusPrice": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "coverageStatus": {
                        "type": "string"
                      },
                      "subjectChainId": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "tradeAmountUsd": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "evaluationScope": {
                        "type": "string",
                        "const": "SOURCE_ASSET_ONLY",
                        "description": "pinned (Alejandro 9th reply): InterAI must not widen the signed evaluationScope claim"
                      },
                      "maxDeviationBps": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "reasonCodesHash": {
                        "type": "string",
                        "pattern": "^0x[0-9a-f]{64}$"
                      },
                      "participantCount": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "sourceGroupCount": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "maxDataAgeSeconds": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "destinationAssetId": {
                        "type": "string"
                      },
                      "independenceStatus": {
                        "type": "string"
                      },
                      "manipulationRiskBps": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "evaluatedAssetIdsHash": {
                        "type": "string",
                        "pattern": "^0x[0-9a-f]{64}$"
                      },
                      "maxStablecoinDepegBps": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "providerObservationsHash": {
                        "type": "string",
                        "pattern": "^0x[0-9a-f]{64}$"
                      },
                      "requiredParticipantCount": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "crossProviderAgreementBps": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      },
                      "recommendedMaxPositionUsd": {
                        "oneOf": [
                          {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^(0|[1-9][0-9]*)$",
                            "description": "canonical decimal-string: only for values > 9007199254740991"
                          }
                        ],
                        "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."
                      }
                    },
                    "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.",
                    "additionalProperties": false
                  },
                  "inline_signature": {
                    "type": "string",
                    "description": "provider signature over the typed payload"
                  }
                },
                "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.",
        "additionalProperties": false
      },
      "description": "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."
    },
    "authorization_ttl_seconds": {
      "type": "integer",
      "default": 60,
      "maximum": 300,
      "minimum": 1,
      "description": "Lifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material."
    }
  },
  "description": "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.",
  "additionalProperties": false
}
oracle.verify_response output schema
{
  "type": "object",
  "required": [
    "billed",
    "result"
  ],
  "properties": {
    "billed": {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string"
        },
        "cost_usdc": {
          "type": "string"
        },
        "cost_microusdc": {
          "type": "number"
        }
      },
      "description": "Billing metadata for this verification call.",
      "additionalProperties": true
    },
    "result": {
      "type": "object",
      "properties": {
        "score": {
          "type": "number"
        },
        "oracle": {
          "type": "object",
          "additionalProperties": true
        },
        "signals": {
          "type": "object",
          "additionalProperties": true
        },
        "risk_level": {
          "type": "string"
        },
        "trust_score": {
          "type": "number"
        },
        "policy_result": {
          "enum": [
            "allow",
            "review_required",
            "block"
          ],
          "type": "string"
        },
        "trust_receipt": {
          "type": "object",
          "additionalProperties": true
        },
        "request_contract": {
          "type": "string"
        },
        "trust_receipt_id": {
          "type": "string"
        },
        "recommended_action": {
          "enum": [
            "allow",
            "review_required",
            "block",
            "accept",
            "review"
          ],
          "type": "string"
        }
      },
      "description": "Pre-execution decision, policy evaluation, signals, and trust-receipt evidence.",
      "additionalProperties": true
    }
  },
  "description": "Successful InterAI single-verification result. The unstructured content field carries the same payload serialized as JSON for backwards compatibility.",
  "additionalProperties": true
}
oracle.verify_response annotations
{
  "title": "Verify Response (Legacy)",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
oracle.verify_batch — Verify Batch
Advertised by the server during the last successful anonymous check.

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.

oracle.verify_batch input schema
{
  "type": "object",
  "required": [
    "items"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "oneOf": [
          {
            "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": "Legacy batch item requiring prompt and response and excluding autonomous action fields."
          },
          {
            "not": {
              "anyOf": [
                {
                  "required": [
                    "prompt"
                  ]
                },
                {
                  "required": [
                    "response"
                  ]
                }
              ]
            },
            "required": [
              "use_case",
              "action"
            ],
            "description": "Autonomous batch item requiring use_case and action and excluding legacy prompt/response fields."
          }
        ],
        "properties": {
          "action": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "pattern": "\\S",
                "minLength": 1
              },
              "schema": {
                "type": "string",
                "const": "interai-canonical-action/v1"
              },
              "tool_id": {
                "type": "string",
                "pattern": "\\S",
                "minLength": 1
              },
              "resource": {
                "type": "string",
                "pattern": "\\S",
                "minLength": 1
              },
              "arguments": {
                "type": "object"
              },
              "operation": {
                "type": "string",
                "pattern": "\\S",
                "minLength": 1
              },
              "destination": {
                "type": "string",
                "pattern": "\\S",
                "minLength": 1
              },
              "irreversible": {
                "type": "boolean"
              },
              "external_side_effect": {
                "type": "boolean"
              }
            },
            "description": "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.",
            "additionalProperties": true
          },
          "domain": {
            "type": "string",
            "pattern": "\\S",
            "minLength": 1,
            "description": "Optional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs."
          },
          "policy": {
            "type": "object",
            "properties": {
              "max_risk_level": {
                "enum": [
                  "low",
                  "medium",
                  "high"
                ],
                "type": "string"
              },
              "amount_usd_limit": {
                "type": "number",
                "minimum": 0
              },
              "allowed_action_types": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "\\S",
                  "maxLength": 128,
                  "minLength": 1
                },
                "maxItems": 100
              },
              "blocked_action_types": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "\\S",
                  "maxLength": 128,
                  "minLength": 1
                },
                "maxItems": 100
              },
              "require_trust_receipt": {
                "type": "boolean"
              },
              "require_human_review_above": {
                "type": "number",
                "maximum": 1,
                "minimum": 0
              },
              "allowed_action_types_enforced": {
                "type": "boolean"
              },
              "require_user_confirmation_for_irreversible": {
                "type": "boolean"
              }
            },
            "description": "Optional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy.",
            "additionalProperties": false
          },
          "prompt": {
            "type": "string",
            "pattern": "\\S",
            "minLength": 1,
            "description": "Legacy compatibility input: the original prompt whose response is being verified. Use together with response, not with autonomous action fields."
          },
          "context": {
            "type": "object",
            "description": "Optional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision.",
            "additionalProperties": true
          },
          "response": {
            "type": "string",
            "pattern": "\\S",
            "minLength": 1,
            "description": "Legacy compatibility input: the response to evaluate against prompt. Use together with prompt, not with autonomous action fields."
          },
          "use_case": {
            "type": "string",
            "pattern": "\\S",
            "minLength": 1,
            "description": "Stable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract."
          },
          "execution_context": {
            "type": "object",
            "required": [
              "schema",
              "workspace_id",
              "environment"
            ],
            "properties": {
              "run_id": {
                "type": "string",
                "pattern": "\\S",
                "minLength": 1
              },
              "schema": {
                "type": "string",
                "const": "interai-host-execution-context/v1"
              },
              "actor_id": {
                "type": "string",
                "pattern": "\\S",
                "minLength": 1
              },
              "environment": {
                "type": "string",
                "pattern": "\\S",
                "minLength": 1
              },
              "workspace_id": {
                "type": "string",
                "pattern": "\\S",
                "minLength": 1
              }
            },
            "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.",
            "additionalProperties": false
          },
          "external_evidence": {
            "type": "array",
            "items": {
              "$id": "external-evidence/v0/rev6",
              "type": "object",
              "title": "external-evidence/v0 (rev6) wire item",
              "$schema": "http://json-schema.org/draft-07/schema#",
              "required": [
                "evidence_id",
                "provider",
                "assertion",
                "validity",
                "binding",
                "verification"
              ],
              "properties": {
                "binding": {
                  "type": "object",
                  "required": [
                    "scope",
                    "binding_mode",
                    "action_commitment"
                  ],
                  "properties": {
                    "scope": {
                      "enum": [
                        "action"
                      ],
                      "type": "string",
                      "description": "v0 supports action scope only; subject scope is reserved with subject_only"
                    },
                    "binding_mode": {
                      "enum": [
                        "exact_action"
                      ],
                      "type": "string",
                      "description": "the only supported v0 binding mode. subject_only and order_insensitive are reserved and rejected on the wire."
                    },
                    "action_commitment": {
                      "type": "object",
                      "required": [
                        "scheme",
                        "type",
                        "commitment",
                        "committed_fields"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "description": "pinned locally per provider profile (eip712)"
                        },
                        "scheme": {
                          "type": "string",
                          "description": "pinned locally per provider profile (insight.canonical-pre-trade-request/v1)"
                        },
                        "commitment": {
                          "type": "string",
                          "pattern": "^0x[0-9a-f]{64}$",
                          "description": "must equal the signed requestHash"
                        },
                        "committed_fields": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "minItems": 1,
                          "description": "the field list is pinned locally per provider profile",
                          "uniqueItems": true
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "provider": {
                  "type": "object",
                  "required": [
                    "namespace",
                    "assertion_version",
                    "key_id"
                  ],
                  "properties": {
                    "key_id": {
                      "type": "string",
                      "description": "must equal the locally pinned key id"
                    },
                    "namespace": {
                      "type": "string",
                      "description": "resolved against the local provider adapter / trust registry"
                    },
                    "assertion_version": {
                      "type": "string",
                      "description": "must equal the locally configured profile version"
                    }
                  },
                  "additionalProperties": false
                },
                "validity": {
                  "type": "object",
                  "required": [
                    "evaluated_at",
                    "valid_until"
                  ],
                  "properties": {
                    "valid_until": {
                      "oneOf": [
                        {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        {
                          "type": "string",
                          "pattern": "^(0|[1-9][0-9]*)$",
                          "description": "canonical decimal-string: only for values > 9007199254740991"
                        }
                      ],
                      "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"
                    },
                    "evaluated_at": {
                      "oneOf": [
                        {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        {
                          "type": "string",
                          "pattern": "^(0|[1-9][0-9]*)$",
                          "description": "canonical decimal-string: only for values > 9007199254740991"
                        }
                      ],
                      "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"
                    }
                  },
                  "additionalProperties": false
                },
                "assertion": {
                  "type": "object",
                  "required": [
                    "kind",
                    "verdict",
                    "verdict_space"
                  ],
                  "properties": {
                    "kind": {
                      "enum": [
                        "assessment",
                        "observation"
                      ],
                      "type": "string",
                      "description": "semantics pinned locally per provider profile"
                    },
                    "verdict": {
                      "type": "string",
                      "description": "provider-native verdict, must equal the signed verdict"
                    },
                    "observations": {
                      "type": "object",
                      "required": [
                        "coverage_status",
                        "participant_count",
                        "required_participant_count",
                        "cross_provider_deviation_bps",
                        "cross_provider_agreement_bps",
                        "independence_status",
                        "max_data_age_seconds"
                      ],
                      "properties": {
                        "coverage_status": {
                          "type": "string"
                        },
                        "participant_count": {
                          "oneOf": [
                            {
                              "type": "integer",
                              "maximum": 9007199254740991,
                              "minimum": 0
                            },
                            {
                              "type": "string",
                              "pattern": "^(0|[1-9][0-9]*)$",
                              "description": "canonical decimal-string: only for values > 9007199254740991"
                            }
                          ],
                          "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."
                        },
                        "independence_status": {
                          "type": "string"
                        },
                        "max_data_age_seconds": {
                          "oneOf": [
                            {
                              "type": "integer",
                              "maximum": 9007199254740991,
                              "minimum": 0
                            },
                            {
                              "type": "string",
                              "pattern": "^(0|[1-9][0-9]*)$",
                              "description": "canonical decimal-string: only for values > 9007199254740991"
                            }
                          ],
                          "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."
                        },
                        "required_participant_count": {
                          "oneOf": [
                            {
                              "type": "integer",
                              "maximum": 9007199254740991,
                              "minimum": 0
                            },
                            {
                              "type": "string",
                              "pattern": "^(0|[1-9][0-9]*)$",
                              "description": "canonical decimal-string: only for values > 9007199254740991"
                            }
                          ],
                          "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."
                        },
                        "cross_provider_agreement_bps": {
                          "oneOf": [
                            {
                              "type": "integer",
                              "maximum": 9007199254740991,
                              "minimum": 0
                            },
                            {
                              "type": "string",
                              "pattern": "^(0|[1-9][0-9]*)$",
                              "description": "canonical decimal-string: only for values > 9007199254740991"
                            }
                          ],
                          "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."
                        },
                        "cross_provider_deviation_bps": {
                          "oneOf": [
                            {
                              "type": "integer",
                              "maximum": 9007199254740991,
                              "minimum": 0
                            },
                            {
                              "type": "string",
                              "pattern": "^(0|[1-9][0-9]*)$",
                              "description": "canonical decimal-string: only for values > 9007199254740991"
                            }
                          ],
                          "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."
                        }
                      },
                      "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)",
                      "additionalProperties": false
                    },
                    "verdict_space": {
                      "type": "string",
                      "description": "the scale namespace, pinned locally per provider profile"
                    }
                  },
                  "additionalProperties": false
                },
                "evidence_id": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$",
                  "description": "provider canonical digest as claimed by the caller; InterAI recomputes it from the verified signed assertion and a mismatch is NOT_ALLOWED."
                },
                "verification": {
                  "type": "object",
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "mode",
                        "attestation_ref"
                      ],
                      "properties": {
                        "mode": {
                          "const": "reference"
                        },
                        "attestation_ref": {
                          "type": "string",
                          "description": "resolved through the locally configured adapter / allowlisted origin; a URL in evidence never triggers arbitrary fetching"
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "mode",
                        "inline_payload",
                        "inline_signature"
                      ],
                      "properties": {
                        "mode": {
                          "const": "inline"
                        },
                        "inline_payload": {
                          "type": "object",
                          "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"
                          ],
                          "properties": {
                            "action": {
                              "type": "string"
                            },
                            "verdict": {
                              "type": "string"
                            },
                            "checkedAt": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 9007199254740991,
                                  "minimum": 0
                                },
                                {
                                  "type": "string",
                                  "pattern": "^(0|[1-9][0-9]*)$",
                                  "description": "canonical decimal-string: only for values > 9007199254740991"
                                }
                              ],
                              "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."
                            },
                            "validUntil": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 9007199254740991,
                                  "minimum": 0
                                },
                                {
                                  "type": "string",
                                  "pattern": "^(0|[1-9][0-9]*)$",
                                  "description": "canonical decimal-string: only for values > 9007199254740991"
                                }
                              ],
                              "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."
                            },
                            "requestHash": {
                              "type": "string",
                              "pattern": "^0x[0-9a-f]{64}$"
                            },
                            "schemaVersion": {
                              "type": "integer",
                              "const": 2,
                              "maximum": 9007199254740991,
                              "minimum": 0,
                              "description": "pinned (Alejandro 9th reply): only schemaVersion=2 is accepted"
                            },
                            "sourceAssetId": {
                              "type": "string"
                            },
                            "consensusPrice": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 9007199254740991,
                                  "minimum": 0
                                },
                                {
                                  "type": "string",
                                  "pattern": "^(0|[1-9][0-9]*)$",
                                  "description": "canonical decimal-string: only for values > 9007199254740991"
                                }
                              ],
                              "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."
                            },
                            "coverageStatus": {
                              "type": "string"
                            },
                            "subjectChainId": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 9007199254740991,
                                  "minimum": 0
                                },
                                {
                                  "type": "string",
                                  "pattern": "^(0|[1-9][0-9]*)$",
                                  "description": "canonical decimal-string: only for values > 9007199254740991"
                                }
                              ],
                              "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."
                            },
                            "tradeAmountUsd": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 9007199254740991,
                                  "minimum": 0
                                },
                                {
                                  "type": "string",
                                  "pattern": "^(0|[1-9][0-9]*)$",
                                  "description": "canonical decimal-string: only for values > 9007199254740991"
                                }
                              ],
                              "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."
                            },
                            "evaluationScope": {
                              "type": "string",
                              "const": "SOURCE_ASSET_ONLY",
                              "description": "pinned (Alejandro 9th reply): InterAI must not widen the signed evaluationScope claim"
                            },
                            "maxDeviationBps": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 9007199254740991,
                                  "minimum": 0
                                },
                                {
                                  "type": "string",
                                  "pattern": "^(0|[1-9][0-9]*)$",
                                  "description": "canonical decimal-string: only for values > 9007199254740991"
                                }
                              ],
                              "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."
                            },
                            "reasonCodesHash": {
                              "type": "string",
                              "pattern": "^0x[0-9a-f]{64}$"
                            },
                            "participantCount": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 9007199254740991,
                                  "minimum": 0
                                },
                                {
                                  "type": "string",
                                  "pattern": "^(0|[1-9][0-9]*)$",
                                  "description": "canonical decimal-string: only for values > 9007199254740991"
                                }
                              ],
                              "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."
                            },
                            "sourceGroupCount": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 9007199254740991,
                                  "minimum": 0
                                },
                                {
                                  "type": "string",
                                  "pattern": "^(0|[1-9][0-9]*)$",
                                  "description": "canonical decimal-string: only for values > 9007199254740991"
                                }
                              ],
                              "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."
                            },
                            "maxDataAgeSeconds": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 9007199254740991,
                                  "minimum": 0
                                },
                                {
                                  "type": "string",
                                  "pattern": "^(0|[1-9][0-9]*)$",
                                  "description": "canonical decimal-string: only for values > 9007199254740991"
                                }
                              ],
                              "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."
                            },
                            "destinationAssetId": {
                              "type": "string"
                            },
                            "independenceStatus": {
                              "type": "string"
                            },
                            "manipulationRiskBps": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 9007199254740991,
                                  "minimum": 0
                                },
                                {
                                  "type": "string",
                                  "pattern": "^(0|[1-9][0-9]*)$",
                                  "description": "canonical decimal-string: only for values > 9007199254740991"
                                }
                              ],
                              "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."
                            },
                            "evaluatedAssetIdsHash": {
                              "type": "string",
                              "pattern": "^0x[0-9a-f]{64}$"
                            },
                            "maxStablecoinDepegBps": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 9007199254740991,
                                  "minimum": 0
                                },
                                {
                                  "type": "string",
                                  "pattern": "^(0|[1-9][0-9]*)$",
                                  "description": "canonical decimal-string: only for values > 9007199254740991"
                                }
                              ],
                              "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."
                            },
                            "providerObservationsHash": {
                              "type": "string",
                              "pattern": "^0x[0-9a-f]{64}$"
                            },
                            "requiredParticipantCount": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 9007199254740991,
                                  "minimum": 0
                                },
                                {
                                  "type": "string",
                                  "pattern": "^(0|[1-9][0-9]*)$",
                                  "description": "canonical decimal-string: only for values > 9007199254740991"
                                }
                              ],
                              "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."
                            },
                            "crossProviderAgreementBps": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 9007199254740991,
                                  "minimum": 0
                                },
                                {
                                  "type": "string",
                                  "pattern": "^(0|[1-9][0-9]*)$",
                                  "description": "canonical decimal-string: only for values > 9007199254740991"
                                }
                              ],
                              "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."
                            },
                            "recommendedMaxPositionUsd": {
                              "oneOf": [
                                {
                                  "type": "integer",
                                  "maximum": 9007199254740991,
                                  "minimum": 0
                                },
                                {
                                  "type": "string",
                                  "pattern": "^(0|[1-9][0-9]*)$",
                                  "description": "canonical decimal-string: only for values > 9007199254740991"
                                }
                              ],
                              "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."
                            }
                          },
                          "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.",
                          "additionalProperties": false
                        },
                        "inline_signature": {
                          "type": "string",
                          "description": "provider signature over the typed payload"
                        }
                      },
                      "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.",
              "additionalProperties": false
            },
            "description": "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."
          },
          "authorization_ttl_seconds": {
            "type": "integer",
            "default": 60,
            "maximum": 300,
            "minimum": 1,
            "description": "Lifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material."
          }
        },
        "description": "One independent batch item. Supply either legacy prompt + response or autonomous use_case + action; never mix the two contracts within one item.",
        "additionalProperties": false
      },
      "maxItems": 100,
      "minItems": 1,
      "description": "Independent verification items. Each item must contain either prompt + response or use_case + action; 1 to 100 items are accepted."
    },
    "idempotency_key": {
      "type": "string",
      "pattern": "^\\s*[A-Za-z0-9._:-]+\\s*$",
      "maxLength": 200,
      "minLength": 1,
      "description": "Stable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request."
    }
  },
  "description": "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.",
  "additionalProperties": false
}
oracle.verify_batch output schema
{
  "type": "object",
  "required": [
    "billed",
    "batch_size",
    "results",
    "summary",
    "oracle"
  ],
  "properties": {
    "billed": {
      "type": "object",
      "description": "Billing metadata for the batch operation.",
      "additionalProperties": true
    },
    "oracle": {
      "type": "object",
      "description": "InterAI engine and signing metadata.",
      "additionalProperties": true
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Independent verification decisions in the same order as the submitted items."
    },
    "summary": {
      "type": "object",
      "description": "Aggregate batch summary.",
      "additionalProperties": true
    },
    "batch_size": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Number of independently evaluated batch items."
    }
  },
  "description": "Successful InterAI batch verification result. The unstructured content field carries the same payload serialized as JSON for backwards compatibility.",
  "additionalProperties": true
}
oracle.verify_batch annotations
{
  "title": "Verify Batch",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
oracle.get_pricing — Get Pricing
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read-only public metadata for costs, trial availability, idempotency, and top-up or payment paths. Use it before budgeting or onboarding; it does not evaluate risk or create a trust receipt.

oracle.get_pricing input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
oracle.get_pricing output schema
{
  "type": "object",
  "required": [
    "model",
    "currency",
    "chain",
    "unit",
    "protocols",
    "auth",
    "verify",
    "verify_batch",
    "topup",
    "trial",
    "demo",
    "idempotency"
  ],
  "properties": {
    "auth": {
      "type": "object",
      "additionalProperties": true
    },
    "demo": {
      "type": "object",
      "additionalProperties": true
    },
    "unit": {
      "type": "string"
    },
    "chain": {
      "type": "string"
    },
    "model": {
      "type": "string"
    },
    "topup": {
      "type": "object",
      "additionalProperties": true
    },
    "trial": {
      "type": "object",
      "additionalProperties": true
    },
    "verify": {
      "type": "object",
      "additionalProperties": true
    },
    "currency": {
      "type": "string"
    },
    "protocols": {
      "type": "object",
      "additionalProperties": true
    },
    "idempotency": {
      "type": "object",
      "additionalProperties": true
    },
    "verify_batch": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "description": "Current public InterAI pricing, onboarding, x402, top-up, trial, and idempotency metadata.",
  "additionalProperties": true
}
oracle.get_pricing annotations
{
  "title": "Get Pricing",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
oracle.discovery_bundle — Discovery Bundle
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read-only bootstrap or handoff bundle with service identity, interfaces, runtime mode, contracts, schemas, and sample payloads in one response. Use it for complete integration context; use oracle.service_descriptor for focused service metadata, oracle.agent_card for A2A capabilities, or oracle.get_pricing for costs.

oracle.discovery_bundle input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
oracle.discovery_bundle output schema
{
  "type": "object",
  "required": [
    "name",
    "service",
    "runtime",
    "discovery",
    "interfaces",
    "samples"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "runtime": {
      "type": "object",
      "additionalProperties": true
    },
    "samples": {
      "type": "object",
      "additionalProperties": true
    },
    "service": {
      "type": "object",
      "additionalProperties": true
    },
    "discovery": {
      "type": "object",
      "additionalProperties": true
    },
    "interfaces": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "description": "Complete machine-readable InterAI integration bundle for bootstrap and handoff.",
  "additionalProperties": true
}
oracle.discovery_bundle annotations
{
  "title": "Discovery Bundle",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
oracle.service_descriptor — Service Descriptor
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read-only general service descriptor with identity, endpoints, billing, trust, and supported agent protocols. Use it to inspect service-level integration metadata; use oracle.agent_card for A2A skills or oracle.discovery_bundle for the complete bootstrap package.

oracle.service_descriptor input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
oracle.service_descriptor output schema
{
  "type": "object",
  "required": [
    "name",
    "id",
    "version",
    "description",
    "discovery",
    "endpoints",
    "billing",
    "agent_protocols"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "billing": {
      "type": "object",
      "additionalProperties": true
    },
    "version": {
      "type": "string"
    },
    "discovery": {
      "type": "object",
      "additionalProperties": true
    },
    "endpoints": {
      "type": "object",
      "additionalProperties": true
    },
    "description": {
      "type": "string"
    },
    "agent_protocols": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "description": "Focused InterAI service-level metadata covering identity, endpoints, billing, trust, and agent protocols.",
  "additionalProperties": true
}
oracle.service_descriptor annotations
{
  "title": "Service Descriptor",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
oracle.agent_card — A2A Agent Card
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read-only A2A Agent Card with agent identity, security scheme, capabilities, and skills. Use it when selecting or integrating InterAI through A2A; use oracle.service_descriptor for general service metadata or oracle.discovery_bundle for complete bootstrap context.

oracle.agent_card input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
oracle.agent_card output schema
{
  "type": "object",
  "required": [
    "name",
    "description",
    "url",
    "version",
    "capabilities",
    "skills"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "skills": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "version": {
      "type": "string"
    },
    "provider": {
      "type": "object",
      "additionalProperties": true
    },
    "security": {
      "type": "array"
    },
    "description": {
      "type": "string"
    },
    "capabilities": {
      "type": "object",
      "additionalProperties": true
    },
    "securitySchemes": {
      "type": "object",
      "additionalProperties": true
    },
    "documentationUrl": {
      "type": "string"
    },
    "defaultInputModes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "defaultOutputModes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "description": "InterAI A2A Agent Card returned as machine-readable JSON.",
  "additionalProperties": true
}
oracle.agent_card annotations
{
  "title": "A2A Agent Card",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
oracle.get_trust_receipt — Get Trust Receipt
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read-only lookup of the canonical public representation and signature metadata for a trust receipt that already exists. Supply receipt_id. It does not create or re-run a decision; use oracle.verify_trust_receipt_signature when the goal is signature validation.

oracle.get_trust_receipt input schema
{
  "type": "object",
  "required": [
    "receipt_id"
  ],
  "properties": {
    "receipt_id": {
      "type": "string",
      "description": "Identifier of the existing InterAI trust receipt whose canonical public representation and signature metadata should be returned."
    }
  },
  "description": "Lookup input for a trust receipt that already exists in InterAI.",
  "additionalProperties": false
}
oracle.get_trust_receipt output schema
{
  "type": "object",
  "required": [
    "ok",
    "receipt",
    "verification",
    "trust"
  ],
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "trust": {
      "type": "object",
      "required": [
        "domain",
        "trust_score",
        "risk_level",
        "confidence_band"
      ],
      "properties": {
        "domain": {
          "type": "string"
        },
        "risk_level": {
          "type": "string"
        },
        "trust_score": {
          "type": "number"
        },
        "confidence_band": {
          "type": "string"
        }
      },
      "additionalProperties": true
    },
    "receipt": {
      "type": "object",
      "required": [
        "receipt_id",
        "issued_at",
        "request_hash"
      ],
      "properties": {
        "issued_at": {
          "type": "string"
        },
        "receipt_id": {
          "type": "string"
        },
        "request_hash": {
          "type": "string"
        },
        "decision_basis": {
          "type": "object",
          "additionalProperties": true
        },
        "oracle_version": {
          "type": "string"
        },
        "signals_version": {
          "type": "string"
        }
      },
      "additionalProperties": true
    },
    "verification": {
      "type": "object",
      "required": [
        "signed",
        "signature",
        "signature_alg"
      ],
      "properties": {
        "signed": {
          "type": "boolean"
        },
        "signature": {
          "type": [
            "string",
            "null"
          ]
        },
        "signature_alg": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    }
  },
  "description": "Canonical public representation, signature metadata, and trust fields for an existing InterAI receipt.",
  "additionalProperties": true
}
oracle.get_trust_receipt annotations
{
  "title": "Get Trust Receipt",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
oracle.verify_trust_receipt_signature — Verify Trust Receipt Signature
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read-only service-side validation of a trust receipt that already exists. Supply signature plus either receipt_id for the canonical server-stored receipt or a caller-supplied receipt object. Returns valid true or false when signing is enabled. Current signatures use HMAC-SHA256 and are service-verifiable by InterAI, not independent offline public-key proofs. It does not evaluate risk or create a receipt; use oracle.get_trust_receipt to retrieve receipt metadata.

oracle.verify_trust_receipt_signature input schema
{
  "type": "object",
  "anyOf": [
    {
      "required": [
        "receipt"
      ],
      "description": "Validate using a caller-supplied receipt object."
    },
    {
      "required": [
        "receipt_id"
      ],
      "description": "Validate using the canonical server-stored receipt resolved from receipt_id."
    }
  ],
  "required": [
    "signature"
  ],
  "properties": {
    "receipt": {
      "type": "object",
      "description": "Optional caller-supplied receipt object, typically evidence received from another agent or system. Either receipt or receipt_id is required."
    },
    "signature": {
      "type": "string",
      "description": "HMAC-SHA256 signature to validate against the referenced InterAI receipt. Required."
    },
    "receipt_id": {
      "type": "string",
      "description": "Optional ID of an existing InterAI trust receipt. InterAI resolves the canonical server-stored record before validating the supplied signature. Either receipt_id or receipt is required."
    },
    "signature_alg": {
      "enum": [
        "hmac-sha256"
      ],
      "type": "string",
      "description": "Optional signature algorithm declaration. The current supported value is hmac-sha256."
    },
    "signed_payload": {
      "type": "string",
      "description": "Optional exact serialized payload that was signed. Supply it when validating externally transported receipt evidence that includes the original signed payload."
    }
  },
  "description": "Validate an existing InterAI receipt signature. Provide signature and either receipt_id or receipt; optional signed_payload and signature_alg can further bind the supplied evidence.",
  "additionalProperties": false
}
oracle.verify_trust_receipt_signature output schema
{
  "type": "object",
  "required": [
    "valid",
    "signature_alg"
  ],
  "properties": {
    "valid": {
      "type": "boolean",
      "description": "Whether the supplied signature matches the referenced stored receipt."
    },
    "signature_alg": {
      "enum": [
        "hmac-sha256"
      ],
      "type": "string",
      "description": "Signature algorithm used by the current InterAI receipt verifier."
    }
  },
  "description": "Service-side signature-validation result for an existing InterAI trust receipt.",
  "additionalProperties": false
}
oracle.verify_trust_receipt_signature annotations
{
  "title": "Verify Trust Receipt Signature",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

4 advertised

verify_autonomous_action — Verify Autonomous Action Before Execution

Advertised by the server during the last successful anonymous check.

Prompt template for checking a proposed autonomous action before execution.

No arguments advertised.

verify_response — Verify Response Legacy Alias

Advertised by the server during the last successful anonymous check.

Prompt template for legacy prompt/response compatibility.

No arguments advertised.

verify_batch — Verify Batch

Advertised by the server during the last successful anonymous check.

Prompt template for checking several prompt/response pairs in one billed batch.

No arguments advertised.

verify_signed_receipt — Verify Signed Trust Receipt

Advertised by the server during the last successful anonymous check.

Prompt template for validating a signed trust receipt payload using the oracle.

No arguments advertised.

Resources

8 advertised

pricing — Public Pricing

Advertised by the server during the last successful anonymous check.

Public pricing, trial, and top-up metadata to help agents estimate cost and onboarding friction. Public HTTP mirror rooted at https://api.interailabs.dev.

pricing URI
oracle://service/pricing

MIME type: application/json

service-descriptor — AI Service Descriptor

Advertised by the server during the last successful anonymous check.

Machine-readable descriptor for billing, trust, endpoints, and agent integration flow. Public HTTP mirror rooted at https://api.interailabs.dev.

service-descriptor URI
oracle://service/descriptor

MIME type: application/json

agent-card — A2A Agent Card

Advertised by the server during the last successful anonymous check.

A2A discovery card for synchronous agent-to-agent verification calls. Public HTTP mirror rooted at https://api.interailabs.dev.

agent-card URI
oracle://service/agent-card

MIME type: application/json

discovery-bundle — Discovery Bundle

Advertised by the server during the last successful anonymous check.

Single-fetch bundle with interfaces, runtime mode, schemas, and sample payloads. Public HTTP mirror rooted at https://api.interailabs.dev.

discovery-bundle URI
oracle://service/discovery-bundle

MIME type: application/json

verify-result-schema — Verify Result Schema

Advertised by the server during the last successful anonymous check.

Canonical schema for the single-item verification response returned by POST /verify. Public HTTP mirror rooted at https://api.interailabs.dev.

verify-result-schema URI
oracle://schema/verify-result

MIME type: application/json

trust-receipt-schema — Trust Receipt Schema

Advertised by the server during the last successful anonymous check.

Canonical schema for the signed trust receipt payload. Public HTTP mirror rooted at https://api.interailabs.dev.

trust-receipt-schema URI
oracle://schema/trust-receipt

MIME type: application/json

trust-receipt-public-schema — Public Trust Receipt Lookup Schema

Advertised by the server during the last successful anonymous check.

Schema for the public trust receipt lookup response by receipt ID. Public HTTP mirror rooted at https://api.interailabs.dev.

trust-receipt-public-schema URI
oracle://schema/trust-receipt-public

MIME type: application/json

runtime-meta — Runtime Metadata

Advertised by the server during the last successful anonymous check.

Current runtime mode, trust-signing availability, and core probes. Public HTTP mirror rooted at https://api.interailabs.dev.

runtime-meta URI
oracle://meta/runtime

MIME type: application/json

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1662 ms
95th percentile latency
1662 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1662 ms · metadata changed · 9 tool(s), 8 resource(s), 4 prompt(s); warnings: Advertises resources/templates/list but does not implement it

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http interai-risk-oracle-mcp https://api.interailabs.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add interai-risk-oracle-mcp --url https://api.interailabs.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable interai-risk-oracle-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "interai-risk-oracle-mcp": {
      "url": "https://api.interailabs.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "interai-risk-oracle-mcp": {
      "type": "streamableHttp",
      "url": "https://api.interailabs.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start interai-risk-oracle-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "interai-risk-oracle-mcp": {
      "type": "http",
      "url": "https://api.interailabs.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http interai-risk-oracle-mcp https://api.interailabs.dev/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.interailabs.dev/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "interai-risk-oracle-mcp": {
      "serverUrl": "https://api.interailabs.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like InterAI Risk Oracle MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.