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.
https://api.interailabs.dev/mcpWhat its tools do
9 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (6)
Can change data (3)
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
- 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
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
}
}Tools
9 advertised
oracle.verify_autonomous_action — Verify Autonomous Action
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.
{
"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
}{
"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
}{
"title": "Verify Autonomous Action",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}oracle.verify_response — Verify Response (Legacy)
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.
{
"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
}{
"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
}{
"title": "Verify Response (Legacy)",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}oracle.verify_batch — Verify Batch
Use for multiple independent legacy or autonomous verification items in one authenticated prepaid call (1 to 100). The batch may consume account balance and records one trust receipt per item; InterAI does not execute any proposed external action. Reuse idempotency_key only for the same logical batch retry. For one proposed action, use oracle.verify_autonomous_action instead.
{
"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
}{
"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
}{
"title": "Verify Batch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}oracle.get_pricing — Get Pricing
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.
{
"type": "object",
"properties": {},
"additionalProperties": false
}{
"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
}{
"title": "Get Pricing",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}oracle.discovery_bundle — Discovery Bundle
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.
{
"type": "object",
"properties": {},
"additionalProperties": false
}{
"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
}{
"title": "Discovery Bundle",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}oracle.service_descriptor — Service Descriptor
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.
{
"type": "object",
"properties": {},
"additionalProperties": false
}{
"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
}{
"title": "Service Descriptor",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}oracle.agent_card — A2A Agent Card
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.
{
"type": "object",
"properties": {},
"additionalProperties": false
}{
"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
}{
"title": "A2A Agent Card",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}oracle.get_trust_receipt — Get Trust Receipt
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.
{
"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
}{
"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
}{
"title": "Get Trust Receipt",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}oracle.verify_trust_receipt_signature — Verify Trust Receipt Signature
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.
{
"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
}{
"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
}{
"title": "Verify Trust Receipt Signature",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
4 advertised
verify_autonomous_action — Verify Autonomous Action Before Execution
Prompt template for checking a proposed autonomous action before execution.
verify_response — Verify Response Legacy Alias
Prompt template for legacy prompt/response compatibility.
verify_batch — Verify Batch
Prompt template for checking several prompt/response pairs in one billed batch.
verify_signed_receipt — Verify Signed Trust Receipt
Prompt template for validating a signed trust receipt payload using the oracle.
Resources
8 advertised
pricing — Public Pricing
Public pricing, trial, and top-up metadata to help agents estimate cost and onboarding friction. Public HTTP mirror rooted at https://api.interailabs.dev.
oracle://service/pricingservice-descriptor — AI Service Descriptor
Machine-readable descriptor for billing, trust, endpoints, and agent integration flow. Public HTTP mirror rooted at https://api.interailabs.dev.
oracle://service/descriptoragent-card — A2A Agent Card
A2A discovery card for synchronous agent-to-agent verification calls. Public HTTP mirror rooted at https://api.interailabs.dev.
oracle://service/agent-carddiscovery-bundle — Discovery Bundle
Single-fetch bundle with interfaces, runtime mode, schemas, and sample payloads. Public HTTP mirror rooted at https://api.interailabs.dev.
oracle://service/discovery-bundleverify-result-schema — Verify Result Schema
Canonical schema for the single-item verification response returned by POST /verify. Public HTTP mirror rooted at https://api.interailabs.dev.
oracle://schema/verify-resulttrust-receipt-schema — Trust Receipt Schema
Canonical schema for the signed trust receipt payload. Public HTTP mirror rooted at https://api.interailabs.dev.
oracle://schema/trust-receipttrust-receipt-public-schema — Public Trust Receipt Lookup Schema
Schema for the public trust receipt lookup response by receipt ID. Public HTTP mirror rooted at https://api.interailabs.dev.
oracle://schema/trust-receipt-publicruntime-meta — Runtime Metadata
Current runtime mode, trust-signing availability, and core probes. Public HTTP mirror rooted at https://api.interailabs.dev.
oracle://meta/runtime90-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.
- 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.
Claude Code
claude mcp add --transport http interai-risk-oracle-mcp https://api.interailabs.dev/mcpCodex
codex mcp add interai-risk-oracle-mcp --url https://api.interailabs.dev/mcpCursor
{
"mcpServers": {
"interai-risk-oracle-mcp": {
"url": "https://api.interailabs.dev/mcp"
}
}
}Cline
{
"mcpServers": {
"interai-risk-oracle-mcp": {
"type": "streamableHttp",
"url": "https://api.interailabs.dev/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"interai-risk-oracle-mcp": {
"type": "http",
"url": "https://api.interailabs.dev/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http interai-risk-oracle-mcp https://api.interailabs.dev/mcpClaude Desktop
https://api.interailabs.dev/mcpWindsurf
{
"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.