{"name":"io.github.InterAILabs/ai-risk-oracle","slug":"interailabs-ai-risk-oracle","title":"InterAI Risk Oracle","description":"Pre-execution policy gate for consequential agent actions with durable trust receipts.","url":"https://mcp.market/server/interailabs-ai-risk-oracle","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":23,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-09-17T12:34:21.000Z","license":"NOASSERTION"},"uptime":{"percent":100,"checks":1,"ok":1,"last_checked_at":"2026-09-19T17:01:37.981Z","last_ok_at":"2026-09-19T17:01:37.981Z","latency_ms":823},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/InterAILabs/ai-risk-oracle","website":null,"version":"0.1.3-beta.1","remotes":[{"type":"streamable-http","url":"https://api.interailabs.dev/mcp"}],"packages":[],"tools":[{"name":"oracle.agent_card","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"oracle.discovery_bundle","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"oracle.get_pricing","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"oracle.get_trust_receipt","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"receipt_id":{"type":"string","description":"Identifier of the existing InterAI trust receipt whose canonical public representation and signature metadata should be returned."}},"required":["receipt_id"],"description":"Lookup input for a trust receipt that already exists in InterAI.","additionalProperties":false}},{"name":"oracle.service_descriptor","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"oracle.verify_autonomous_action","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"use_case":{"type":"string","minLength":1,"pattern":"\\S","description":"Stable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract."},"action":{"type":"object","additionalProperties":true,"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.","properties":{"schema":{"type":"string","const":"interai-canonical-action/v1"},"tool_id":{"type":"string","minLength":1,"pattern":"\\S"},"type":{"type":"string","minLength":1,"pattern":"\\S"},"operation":{"type":"string","minLength":1,"pattern":"\\S"},"arguments":{"type":"object"},"external_side_effect":{"type":"boolean"},"irreversible":{"type":"boolean"},"destination":{"type":"string","minLength":1,"pattern":"\\S"},"resource":{"type":"string","minLength":1,"pattern":"\\S"}}},"execution_context":{"type":"object","additionalProperties":false,"description":"Host-attested execution context bound to a canonical action. InterAI authenticates the account, not the truth of host-provided workspace, actor, run, or environment values.","properties":{"schema":{"type":"string","const":"interai-host-execution-context/v1"},"workspace_id":{"type":"string","minLength":1,"pattern":"\\S"},"environment":{"type":"string","minLength":1,"pattern":"\\S"},"actor_id":{"type":"string","minLength":1,"pattern":"\\S"},"run_id":{"type":"string","minLength":1,"pattern":"\\S"}},"required":["schema","workspace_id","environment"]},"authorization_ttl_seconds":{"type":"integer","minimum":1,"maximum":300,"default":60,"description":"Lifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material."},"context":{"type":"object","additionalProperties":true,"description":"Optional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision."},"policy":{"type":"object","additionalProperties":false,"description":"Optional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy.","properties":{"blocked_action_types":{"type":"array","maxItems":100,"items":{"type":"string","minLength":1,"pattern":"\\S","maxLength":128}},"allowed_action_types":{"type":"array","maxItems":100,"items":{"type":"string","minLength":1,"pattern":"\\S","maxLength":128}},"allowed_action_types_enforced":{"type":"boolean"},"amount_usd_limit":{"type":"number","minimum":0},"require_human_review_above":{"type":"number","minimum":0,"maximum":1},"max_risk_level":{"type":"string","enum":["low","medium","high"]},"require_user_confirmation_for_irreversible":{"type":"boolean"},"require_trust_receipt":{"type":"boolean"}}},"external_evidence":{"type":"array","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.","items":{"$schema":"http://json-schema.org/draft-07/schema#","$id":"external-evidence/v0/rev6","title":"external-evidence/v0 (rev6) wire item","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.","type":"object","additionalProperties":false,"required":["evidence_id","provider","assertion","validity","binding","verification"],"properties":{"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."},"provider":{"type":"object","additionalProperties":false,"required":["namespace","assertion_version","key_id"],"properties":{"namespace":{"type":"string","description":"resolved against the local provider adapter / trust registry"},"assertion_version":{"type":"string","description":"must equal the locally configured profile version"},"key_id":{"type":"string","description":"must equal the locally pinned key id"}}},"assertion":{"type":"object","additionalProperties":false,"required":["kind","verdict","verdict_space"],"properties":{"kind":{"type":"string","enum":["assessment","observation"],"description":"semantics pinned locally per provider profile"},"verdict":{"type":"string","description":"provider-native verdict, must equal the signed verdict"},"verdict_space":{"type":"string","description":"the scale namespace, pinned locally per provider profile"},"observations":{"type":"object","additionalProperties":false,"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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)"}}},"validity":{"type":"object","additionalProperties":false,"required":["evaluated_at","valid_until"],"properties":{"evaluated_at":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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"},"valid_until":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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"}}},"binding":{"type":"object","additionalProperties":false,"required":["scope","binding_mode","action_commitment"],"properties":{"scope":{"type":"string","enum":["action"],"description":"v0 supports action scope only; subject scope is reserved with subject_only"},"binding_mode":{"type":"string","enum":["exact_action"],"description":"the only supported v0 binding mode. subject_only and order_insensitive are reserved and rejected on the wire."},"action_commitment":{"type":"object","additionalProperties":false,"required":["scheme","type","commitment","committed_fields"],"properties":{"scheme":{"type":"string","description":"pinned locally per provider profile (insight.canonical-pre-trade-request/v1)"},"type":{"type":"string","description":"pinned locally per provider profile (eip712)"},"commitment":{"type":"string","pattern":"^0x[0-9a-f]{64}$","description":"must equal the signed requestHash"},"committed_fields":{"type":"array","items":{"type":"string"},"minItems":1,"uniqueItems":true,"description":"the field list is pinned locally per provider profile"}}}}},"verification":{"type":"object","oneOf":[{"type":"object","additionalProperties":false,"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"}}},{"type":"object","additionalProperties":false,"required":["mode","inline_payload","inline_signature"],"properties":{"mode":{"const":"inline"},"inline_payload":{"type":"object","additionalProperties":false,"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":{"verdict":{"type":"string"},"sourceAssetId":{"type":"string"},"destinationAssetId":{"type":"string"},"subjectChainId":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"action":{"type":"string"},"tradeAmountUsd":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"consensusPrice":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"maxDeviationBps":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"manipulationRiskBps":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"participantCount":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"requiredParticipantCount":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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"},"independenceStatus":{"type":"string"},"sourceGroupCount":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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."},"maxStablecoinDepegBps":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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}$"},"requestHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"evaluationScope":{"type":"string","const":"SOURCE_ASSET_ONLY","description":"pinned (Alejandro 9th reply): InterAI must not widen the signed evaluationScope claim"},"evaluatedAssetIdsHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"providerObservationsHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"validUntil":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"checkedAt":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"schemaVersion":{"type":"integer","minimum":0,"maximum":9007199254740991,"const":2,"description":"pinned (Alejandro 9th reply): only schemaVersion=2 is accepted"}},"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."},"inline_signature":{"type":"string","description":"provider signature over the typed payload"}}}]}}}},"domain":{"type":"string","minLength":1,"pattern":"\\S","description":"Optional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs."},"mode":{"type":"string","enum":["fast_heuristic","semantic_judge"],"description":"Verification mode. Use fast_heuristic for the default low-latency path or semantic_judge when a semantic model judgment is explicitly required."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"pattern":"^\\s*[A-Za-z0-9._:-]+\\s*$","description":"Stable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request."}},"required":["use_case","action"],"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}},{"name":"oracle.verify_batch","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"items":{"type":"array","description":"Independent verification items. Each item must contain either prompt + response or use_case + action; 1 to 100 items are accepted.","minItems":1,"maxItems":100,"items":{"type":"object","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,"properties":{"prompt":{"type":"string","minLength":1,"pattern":"\\S","description":"Legacy compatibility input: the original prompt whose response is being verified. Use together with response, not with autonomous action fields."},"response":{"type":"string","minLength":1,"pattern":"\\S","description":"Legacy compatibility input: the response to evaluate against prompt. Use together with prompt, not with autonomous action fields."},"use_case":{"type":"string","minLength":1,"pattern":"\\S","description":"Stable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract."},"action":{"type":"object","additionalProperties":true,"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.","properties":{"schema":{"type":"string","const":"interai-canonical-action/v1"},"tool_id":{"type":"string","minLength":1,"pattern":"\\S"},"type":{"type":"string","minLength":1,"pattern":"\\S"},"operation":{"type":"string","minLength":1,"pattern":"\\S"},"arguments":{"type":"object"},"external_side_effect":{"type":"boolean"},"irreversible":{"type":"boolean"},"destination":{"type":"string","minLength":1,"pattern":"\\S"},"resource":{"type":"string","minLength":1,"pattern":"\\S"}}},"execution_context":{"type":"object","additionalProperties":false,"description":"Host-attested execution context bound to a canonical action. InterAI authenticates the account, not the truth of host-provided workspace, actor, run, or environment values.","properties":{"schema":{"type":"string","const":"interai-host-execution-context/v1"},"workspace_id":{"type":"string","minLength":1,"pattern":"\\S"},"environment":{"type":"string","minLength":1,"pattern":"\\S"},"actor_id":{"type":"string","minLength":1,"pattern":"\\S"},"run_id":{"type":"string","minLength":1,"pattern":"\\S"}},"required":["schema","workspace_id","environment"]},"authorization_ttl_seconds":{"type":"integer","minimum":1,"maximum":300,"default":60,"description":"Lifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material."},"context":{"type":"object","additionalProperties":true,"description":"Optional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision."},"policy":{"type":"object","additionalProperties":false,"description":"Optional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy.","properties":{"blocked_action_types":{"type":"array","maxItems":100,"items":{"type":"string","minLength":1,"pattern":"\\S","maxLength":128}},"allowed_action_types":{"type":"array","maxItems":100,"items":{"type":"string","minLength":1,"pattern":"\\S","maxLength":128}},"allowed_action_types_enforced":{"type":"boolean"},"amount_usd_limit":{"type":"number","minimum":0},"require_human_review_above":{"type":"number","minimum":0,"maximum":1},"max_risk_level":{"type":"string","enum":["low","medium","high"]},"require_user_confirmation_for_irreversible":{"type":"boolean"},"require_trust_receipt":{"type":"boolean"}}},"external_evidence":{"type":"array","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.","items":{"$schema":"http://json-schema.org/draft-07/schema#","$id":"external-evidence/v0/rev6","title":"external-evidence/v0 (rev6) wire item","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.","type":"object","additionalProperties":false,"required":["evidence_id","provider","assertion","validity","binding","verification"],"properties":{"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."},"provider":{"type":"object","additionalProperties":false,"required":["namespace","assertion_version","key_id"],"properties":{"namespace":{"type":"string","description":"resolved against the local provider adapter / trust registry"},"assertion_version":{"type":"string","description":"must equal the locally configured profile version"},"key_id":{"type":"string","description":"must equal the locally pinned key id"}}},"assertion":{"type":"object","additionalProperties":false,"required":["kind","verdict","verdict_space"],"properties":{"kind":{"type":"string","enum":["assessment","observation"],"description":"semantics pinned locally per provider profile"},"verdict":{"type":"string","description":"provider-native verdict, must equal the signed verdict"},"verdict_space":{"type":"string","description":"the scale namespace, pinned locally per provider profile"},"observations":{"type":"object","additionalProperties":false,"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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)"}}},"validity":{"type":"object","additionalProperties":false,"required":["evaluated_at","valid_until"],"properties":{"evaluated_at":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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"},"valid_until":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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"}}},"binding":{"type":"object","additionalProperties":false,"required":["scope","binding_mode","action_commitment"],"properties":{"scope":{"type":"string","enum":["action"],"description":"v0 supports action scope only; subject scope is reserved with subject_only"},"binding_mode":{"type":"string","enum":["exact_action"],"description":"the only supported v0 binding mode. subject_only and order_insensitive are reserved and rejected on the wire."},"action_commitment":{"type":"object","additionalProperties":false,"required":["scheme","type","commitment","committed_fields"],"properties":{"scheme":{"type":"string","description":"pinned locally per provider profile (insight.canonical-pre-trade-request/v1)"},"type":{"type":"string","description":"pinned locally per provider profile (eip712)"},"commitment":{"type":"string","pattern":"^0x[0-9a-f]{64}$","description":"must equal the signed requestHash"},"committed_fields":{"type":"array","items":{"type":"string"},"minItems":1,"uniqueItems":true,"description":"the field list is pinned locally per provider profile"}}}}},"verification":{"type":"object","oneOf":[{"type":"object","additionalProperties":false,"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"}}},{"type":"object","additionalProperties":false,"required":["mode","inline_payload","inline_signature"],"properties":{"mode":{"const":"inline"},"inline_payload":{"type":"object","additionalProperties":false,"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":{"verdict":{"type":"string"},"sourceAssetId":{"type":"string"},"destinationAssetId":{"type":"string"},"subjectChainId":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"action":{"type":"string"},"tradeAmountUsd":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"consensusPrice":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"maxDeviationBps":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"manipulationRiskBps":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"participantCount":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"requiredParticipantCount":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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"},"independenceStatus":{"type":"string"},"sourceGroupCount":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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."},"maxStablecoinDepegBps":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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}$"},"requestHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"evaluationScope":{"type":"string","const":"SOURCE_ASSET_ONLY","description":"pinned (Alejandro 9th reply): InterAI must not widen the signed evaluationScope claim"},"evaluatedAssetIdsHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"providerObservationsHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"validUntil":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"checkedAt":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"schemaVersion":{"type":"integer","minimum":0,"maximum":9007199254740991,"const":2,"description":"pinned (Alejandro 9th reply): only schemaVersion=2 is accepted"}},"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."},"inline_signature":{"type":"string","description":"provider signature over the typed payload"}}}]}}}},"domain":{"type":"string","minLength":1,"pattern":"\\S","description":"Optional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs."}},"oneOf":[{"description":"Legacy batch item requiring prompt and response and excluding autonomous action fields.","required":["prompt","response"],"not":{"anyOf":[{"required":["use_case"]},{"required":["action"]},{"required":["execution_context"]},{"required":["authorization_ttl_seconds"]},{"required":["context"]},{"required":["policy"]},{"required":["external_evidence"]}]}},{"description":"Autonomous batch item requiring use_case and action and excluding legacy prompt/response fields.","required":["use_case","action"],"not":{"anyOf":[{"required":["prompt"]},{"required":["response"]}]}}]}},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"pattern":"^\\s*[A-Za-z0-9._:-]+\\s*$","description":"Stable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request."}},"required":["items"],"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}},{"name":"oracle.verify_response","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"prompt":{"type":"string","minLength":1,"pattern":"\\S","description":"Legacy compatibility input: the original prompt whose response is being verified. Use together with response, not with autonomous action fields."},"response":{"type":"string","minLength":1,"pattern":"\\S","description":"Legacy compatibility input: the response to evaluate against prompt. Use together with prompt, not with autonomous action fields."},"use_case":{"type":"string","minLength":1,"pattern":"\\S","description":"Stable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract."},"action":{"type":"object","additionalProperties":true,"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.","properties":{"schema":{"type":"string","const":"interai-canonical-action/v1"},"tool_id":{"type":"string","minLength":1,"pattern":"\\S"},"type":{"type":"string","minLength":1,"pattern":"\\S"},"operation":{"type":"string","minLength":1,"pattern":"\\S"},"arguments":{"type":"object"},"external_side_effect":{"type":"boolean"},"irreversible":{"type":"boolean"},"destination":{"type":"string","minLength":1,"pattern":"\\S"},"resource":{"type":"string","minLength":1,"pattern":"\\S"}}},"execution_context":{"type":"object","additionalProperties":false,"description":"Host-attested execution context bound to a canonical action. InterAI authenticates the account, not the truth of host-provided workspace, actor, run, or environment values.","properties":{"schema":{"type":"string","const":"interai-host-execution-context/v1"},"workspace_id":{"type":"string","minLength":1,"pattern":"\\S"},"environment":{"type":"string","minLength":1,"pattern":"\\S"},"actor_id":{"type":"string","minLength":1,"pattern":"\\S"},"run_id":{"type":"string","minLength":1,"pattern":"\\S"}},"required":["schema","workspace_id","environment"]},"authorization_ttl_seconds":{"type":"integer","minimum":1,"maximum":300,"default":60,"description":"Lifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material."},"context":{"type":"object","additionalProperties":true,"description":"Optional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision."},"policy":{"type":"object","additionalProperties":false,"description":"Optional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy.","properties":{"blocked_action_types":{"type":"array","maxItems":100,"items":{"type":"string","minLength":1,"pattern":"\\S","maxLength":128}},"allowed_action_types":{"type":"array","maxItems":100,"items":{"type":"string","minLength":1,"pattern":"\\S","maxLength":128}},"allowed_action_types_enforced":{"type":"boolean"},"amount_usd_limit":{"type":"number","minimum":0},"require_human_review_above":{"type":"number","minimum":0,"maximum":1},"max_risk_level":{"type":"string","enum":["low","medium","high"]},"require_user_confirmation_for_irreversible":{"type":"boolean"},"require_trust_receipt":{"type":"boolean"}}},"external_evidence":{"type":"array","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.","items":{"$schema":"http://json-schema.org/draft-07/schema#","$id":"external-evidence/v0/rev6","title":"external-evidence/v0 (rev6) wire item","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.","type":"object","additionalProperties":false,"required":["evidence_id","provider","assertion","validity","binding","verification"],"properties":{"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."},"provider":{"type":"object","additionalProperties":false,"required":["namespace","assertion_version","key_id"],"properties":{"namespace":{"type":"string","description":"resolved against the local provider adapter / trust registry"},"assertion_version":{"type":"string","description":"must equal the locally configured profile version"},"key_id":{"type":"string","description":"must equal the locally pinned key id"}}},"assertion":{"type":"object","additionalProperties":false,"required":["kind","verdict","verdict_space"],"properties":{"kind":{"type":"string","enum":["assessment","observation"],"description":"semantics pinned locally per provider profile"},"verdict":{"type":"string","description":"provider-native verdict, must equal the signed verdict"},"verdict_space":{"type":"string","description":"the scale namespace, pinned locally per provider profile"},"observations":{"type":"object","additionalProperties":false,"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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)"}}},"validity":{"type":"object","additionalProperties":false,"required":["evaluated_at","valid_until"],"properties":{"evaluated_at":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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"},"valid_until":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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"}}},"binding":{"type":"object","additionalProperties":false,"required":["scope","binding_mode","action_commitment"],"properties":{"scope":{"type":"string","enum":["action"],"description":"v0 supports action scope only; subject scope is reserved with subject_only"},"binding_mode":{"type":"string","enum":["exact_action"],"description":"the only supported v0 binding mode. subject_only and order_insensitive are reserved and rejected on the wire."},"action_commitment":{"type":"object","additionalProperties":false,"required":["scheme","type","commitment","committed_fields"],"properties":{"scheme":{"type":"string","description":"pinned locally per provider profile (insight.canonical-pre-trade-request/v1)"},"type":{"type":"string","description":"pinned locally per provider profile (eip712)"},"commitment":{"type":"string","pattern":"^0x[0-9a-f]{64}$","description":"must equal the signed requestHash"},"committed_fields":{"type":"array","items":{"type":"string"},"minItems":1,"uniqueItems":true,"description":"the field list is pinned locally per provider profile"}}}}},"verification":{"type":"object","oneOf":[{"type":"object","additionalProperties":false,"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"}}},{"type":"object","additionalProperties":false,"required":["mode","inline_payload","inline_signature"],"properties":{"mode":{"const":"inline"},"inline_payload":{"type":"object","additionalProperties":false,"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":{"verdict":{"type":"string"},"sourceAssetId":{"type":"string"},"destinationAssetId":{"type":"string"},"subjectChainId":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"action":{"type":"string"},"tradeAmountUsd":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"consensusPrice":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"maxDeviationBps":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"manipulationRiskBps":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"participantCount":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"requiredParticipantCount":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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"},"independenceStatus":{"type":"string"},"sourceGroupCount":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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."},"maxStablecoinDepegBps":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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","minimum":0,"maximum":9007199254740991},{"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}$"},"requestHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"evaluationScope":{"type":"string","const":"SOURCE_ASSET_ONLY","description":"pinned (Alejandro 9th reply): InterAI must not widen the signed evaluationScope claim"},"evaluatedAssetIdsHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"providerObservationsHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"validUntil":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"checkedAt":{"oneOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"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."},"schemaVersion":{"type":"integer","minimum":0,"maximum":9007199254740991,"const":2,"description":"pinned (Alejandro 9th reply): only schemaVersion=2 is accepted"}},"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."},"inline_signature":{"type":"string","description":"provider signature over the typed payload"}}}]}}}},"domain":{"type":"string","minLength":1,"pattern":"\\S","description":"Optional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs."},"mode":{"type":"string","enum":["fast_heuristic","semantic_judge"],"description":"Verification mode. Use fast_heuristic for the default low-latency path or semantic_judge when a semantic model judgment is explicitly required."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"pattern":"^\\s*[A-Za-z0-9._:-]+\\s*$","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":"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,"oneOf":[{"description":"Legacy verification contract. Requires both prompt and response and excludes autonomous action, context, policy, and external evidence fields.","required":["prompt","response"],"not":{"anyOf":[{"required":["use_case"]},{"required":["action"]},{"required":["execution_context"]},{"required":["authorization_ttl_seconds"]},{"required":["context"]},{"required":["policy"]},{"required":["external_evidence"]}]}},{"description":"Autonomous execution compatibility contract. Requires use_case and action and excludes legacy prompt/response fields. New integrations should prefer oracle.verify_autonomous_action.","required":["use_case","action"],"not":{"anyOf":[{"required":["prompt"]},{"required":["response"]}]}}]}},{"name":"oracle.verify_trust_receipt_signature","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","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."},"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."},"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."},"signature":{"type":"string","description":"HMAC-SHA256 signature to validate against the referenced InterAI receipt. Required."},"signature_alg":{"type":"string","enum":["hmac-sha256"],"description":"Optional signature algorithm declaration. The current supported value is hmac-sha256."}},"required":["signature"],"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,"anyOf":[{"description":"Validate using a caller-supplied receipt object.","required":["receipt"]},{"description":"Validate using the canonical server-stored receipt resolved from receipt_id.","required":["receipt_id"]}]}}],"scan":{"score":88,"grade":"A","scanned_at":"2026-09-19T10:14:52.650Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T10:14:52.586Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 734ms"]},"poisoning":{"score":15,"max":15,"notes":["9 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 2 days ago"]},"identity":{"score":6,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"probes":[{"url":"https://api.interailabs.dev/mcp","reachable":true,"authRequired":false,"latencyMs":734,"serverInfo":{"name":"interai-risk-oracle","version":"0.1.3-beta.1"}}],"packages":[],"repo":{"found":true,"owner":"InterAILabs","repo":"ai-risk-oracle","archived":false,"pushedAt":"2026-09-17T12:34:21Z","stars":1,"forks":0,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/265612949?v=4","ownerCreatedAt":"2026-03-04T17:57:58Z","license":"NOASSERTION"},"icon":{"url":"https://avatars.githubusercontent.com/u/265612949?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":"NOASSERTION","lastPushAt":"2026-09-17T12:34:21.000Z","score":23}}}},"grade_history":[],"reviews":[]}