---
title: "Decision-ready answer about an on-chain counterparty"
method: POST
path: "/v1/web3-assurance"
tags: ["web3-assurance"]
---

# Decision-ready answer about an on-chain counterparty

`POST /v1/web3-assurance`

## Request

- Base URL: `https://api.strale.io`
- URL: `https://api.strale.io/v1/web3-assurance`
- Auth: one of:
  - HTTP bearer
  - none

Sister product to Payee Assurance for on-chain targets (wallet, contract, token, DeFi protocol, bridge). Returns a verdict (proceed/review/block/insufficient_evidence), reason_codes (UPPERCASE_SNAKE_CASE), critical_flags, suggested_action, evidence map, and a sidecar audit_url. Two modes: `outbound` (agent vetting recipient pre-payment, full evaluator set, 8s budget — default) and `reverse-call` (x402 service publisher gating an inbound buyer in real-time, critical evaluators only, sub-second SLA).

## Request body

- object
  - `target` string, required: Wallet address (0x... or Solana), contract, token, protocol slug, or domain.
  - `target_type` 'wallet' | 'contract' | 'token' | 'protocol' | 'bridge' | 'domain'
  - `chain` string
  - `action` 'send_payment' | 'swap' | 'stake' | 'mint' | 'interact' | 'bridge'
  - `amount_usd` number
  - `mode` 'outbound' | 'reverse-call'
  - `agent_id` string: Optional ERC-8004 agent identifier.
  - `caller_jurisdiction` string: Optional ISO country code for jurisdiction-aware verdict (US, EU, UK, etc.).

## Response `200`

Decision-ready answer.

- object
  - `target` string
  - `target_type` string
  - `chain` string
  - `mode` 'outbound' | 'reverse-call'
  - `verdict` 'proceed' | 'review' | 'block' | 'insufficient_evidence'
  - `reason_codes` string[]
  - `confidence` number
  - `evidence_completeness` 'complete' | 'partial' | 'minimal'
  - `evidence_status` 'corroborated' | 'partial' | 'contradictory' | 'single_source' | 'minimal'
  - `critical_flags` string[]
  - `suggested_action` string
  - `expires_at` string, date-time
  - `evidence` object
  - `source_quality` object[]
    - `source` string
    - `ms` integer
    - `ok` boolean
  - `audit_url` string, uri
  - `sla` object
    - `mode` string
    - `p99_ms` integer
    - `p50_ms` integer
  - `meta` object
    - `api_version` string
    - `fetched_at` string, date-time
    - `response_ms` integer

## Other responses

- `400`: Missing or invalid target / mode.
- `401`: Authentication required.
- `429`: Rate limit exceeded.

---

[API](https://skmtc.dev/strale/apis/strale-api-2.md) · [All operations](https://skmtc.dev/strale/apis/strale-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/strale/apis/strale-api-2/revisions/a5293878cfc6?raw)
