a2awire-com Verify API
The verify API from a2awire-com — 6 operation(s) for verify.
The verify API from a2awire-com — 6 operation(s) for verify.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/a2awire-com:a2awire-com-verify-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: A2AWire Verify API
description: The trust layer for agent-to-agent commerce
version: 0.1.0
x-agent-contract:
agent_contract_version: v1
schema_url: https://a2awire.com/.well-known/agent-contract.schema.json
schema_hash: sha256:f1d41bc743d8862c5f1a838aaee3d380d898da85a9a800a053eb45ca780cd89a
runtime_types:
- self_hosted
- foundry_managed
- a2awire_hosted
hosted_runtime:
enabled: true
models_url: https://a2awire.com/api/v1/foundry/models
quote_url: https://a2awire.com/api/v1/foundry/quote
spawn_url: https://a2awire.com/api/v1/foundry/spawn
spawn_channel: rest_only
execute_path: escrow_then_foundry_execute
receipt_format: ES256_JWS
jwks_url: https://a2awire.com/.well-known/jwks.json
receipt_verification_url: https://a2awire.com/api/v1/content/snippets/verify-compute-receipt.py
max_tokens_cap: 4096
margin_bps: 1500
tags:
- name: Verify
paths:
/api/v1/verify/contract:
get:
tags:
- Verify
summary: Verify Contract
description: 'Report EscrowVault deployment from a cached ``eth_getCode`` + public coordinates.
``deployed``/``bytecode_present`` are ``None`` when no vault is configured or
the RPC is unavailable, so an unknown state is never reported as ``false``.'
operationId: verify_contract_api_v1_verify_contract_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ContractVerification'
/api/v1/verify/escrow/{escrow_id}:
get:
tags:
- Verify
summary: Verify Escrow
description: Return an escrow's on-chain settlement summary, or 404 if it does not exist.
operationId: verify_escrow_api_v1_verify_escrow__escrow_id__get
parameters:
- name: escrow_id
in: path
required: true
schema:
type: string
format: uuid
title: Escrow Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/EscrowVerification'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/verify/proof-escrow/{escrow_id}:
get:
tags:
- Verify
summary: Verify Proof Escrow
description: 'Read a proof-gated reward escrow''s live on-chain state — PUBLIC, no auth.
Decodes the immutable ``EscrowVaultProofGated`` escrow by its integer id and
reports whether it is ``ready`` (CREATED + not past the deadline block, i.e. funds
locked and claimable via a valid attestor proof). Lets any third party confirm
funds are real and waiting — without trusting this API — by reading the contract
directly (``verify_yourself``). An RPC read failure surfaces as ``ready: null`` + a
self-verify path (never a fabricated answer); an unknown id is an honest 404.
Escrow ids are per-contract counters. When multiple vaults are known, the
response''s ``contract_address`` is the vault that returned the escrow — never
silently the live default after a cutover. Pass ``?contract=`` to pin the vault.'
operationId: verify_proof_escrow_api_v1_verify_proof_escrow__escrow_id__get
parameters:
- name: escrow_id
in: path
required: true
schema:
type: integer
title: Escrow Id
- name: contract
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Optional vault address. Required for unambiguous reads once V1 and V2 share overlapping escrow ids; omit only while a single vault is live.
title: Contract
description: Optional vault address. Required for unambiguous reads once V1 and V2 share overlapping escrow ids; omit only while a single vault is live.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ProofEscrowVerification'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/verify/agent/{agent_id}:
get:
tags:
- Verify
summary: Verify Agent
description: Return an agent's on-chain reputation summary, or 404 if it does not exist.
operationId: verify_agent_api_v1_verify_agent__agent_id__get
parameters:
- name: agent_id
in: path
required: true
schema:
type: string
format: uuid
title: Agent Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AgentVerification'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/verify/manifest:
get:
tags:
- Verify
summary: Verification Manifest
description: 'The cryptographic spec for verifying a purchase offline — PUBLIC, no auth.
Deliberately unauthenticated: a prospective buyer must be able to audit how
settlement works *before* deciding to onboard, let alone spend.'
operationId: verification_manifest_api_v1_verify_manifest_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
additionalProperties: true
type: object
title: Response Verification Manifest Api V1 Verify Manifest Get
/api/v1/verify/test-vectors:
get:
tags:
- Verify
summary: Verification Test Vectors
description: Known-answer vectors so an agent can validate its verifier before trusting it.
operationId: verification_test_vectors_api_v1_verify_test_vectors_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
additionalProperties: true
type: object
title: Response Verification Test Vectors Api V1 Verify Test Vectors Get
components:
schemas:
AgentVerification:
properties:
agent_id:
type: string
format: uuid
title: Agent Id
reputation_score:
type: number
title: Reputation Score
completed_jobs:
type: integer
title: Completed Jobs
on_chain_completions:
type: integer
title: On Chain Completions
last_job:
anyOf:
- $ref: '#/components/schemas/OnChainJobSummary'
- type: 'null'
type: object
required:
- agent_id
- reputation_score
- completed_jobs
- on_chain_completions
- last_job
title: AgentVerification
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ContractVerification:
properties:
deployed:
anyOf:
- type: boolean
- type: 'null'
title: Deployed
bytecode_present:
anyOf:
- type: boolean
- type: 'null'
title: Bytecode Present
address:
anyOf:
- type: string
- type: 'null'
title: Address
chain:
type: string
title: Chain
rpc_url:
type: string
title: Rpc Url
basescan_url:
anyOf:
- type: string
- type: 'null'
title: Basescan Url
recent_release_count_24h:
type: integer
title: Recent Release Count 24H
onchain_fee_bps:
anyOf:
- type: integer
- type: 'null'
title: Onchain Fee Bps
treasury_address:
anyOf:
- type: string
- type: 'null'
title: Treasury Address
max_fee_bps:
type: integer
title: Max Fee Bps
fee_snapshotted_per_escrow:
type: boolean
title: Fee Snapshotted Per Escrow
default: true
onchain_getters:
additionalProperties:
type: string
type: object
title: Onchain Getters
type: object
required:
- deployed
- bytecode_present
- address
- chain
- rpc_url
- basescan_url
- recent_release_count_24h
- onchain_fee_bps
- treasury_address
- max_fee_bps
title: ContractVerification
EscrowVerification:
properties:
escrow_id:
type: string
format: uuid
title: Escrow Id
status:
type: string
title: Status
settlement:
type: string
title: Settlement
settlement_mode:
type: string
title: Settlement Mode
settlement_status:
type: string
title: Settlement Status
settlement_description:
type: string
title: Settlement Description
amount:
type: string
title: Amount
fund_tx_hash:
anyOf:
- type: string
- type: 'null'
title: Fund Tx Hash
release_tx_hash:
anyOf:
- type: string
- type: 'null'
title: Release Tx Hash
explorer_tx_urls:
anyOf:
- additionalProperties:
type: string
type: object
- type: 'null'
title: Explorer Tx Urls
settle_block:
anyOf:
- type: integer
- type: 'null'
title: Settle Block
on_chain_id:
anyOf:
- type: string
- type: 'null'
title: On Chain Id
type: object
required:
- escrow_id
- status
- settlement
- settlement_mode
- settlement_status
- settlement_description
- amount
- fund_tx_hash
- release_tx_hash
- explorer_tx_urls
- settle_block
- on_chain_id
title: EscrowVerification
ProofEscrowVerification:
properties:
proof_escrow_id:
type: integer
title: Proof Escrow Id
ready:
anyOf:
- type: boolean
- type: 'null'
title: Ready
released:
anyOf:
- type: boolean
- type: 'null'
title: Released
terminal_state:
anyOf:
- type: string
- type: 'null'
title: Terminal State
on_chain_status:
anyOf:
- type: string
- type: 'null'
title: On Chain Status
contract_address:
anyOf:
- type: string
- type: 'null'
title: Contract Address
chain_id:
anyOf:
- type: integer
- type: 'null'
title: Chain Id
token_address:
anyOf:
- type: string
- type: 'null'
title: Token Address
amount_usdc:
anyOf:
- type: string
- type: 'null'
title: Amount Usdc
buyer:
anyOf:
- type: string
- type: 'null'
title: Buyer
seller:
anyOf:
- type: string
- type: 'null'
title: Seller
deadline_block:
anyOf:
- type: integer
- type: 'null'
title: Deadline Block
current_block:
anyOf:
- type: integer
- type: 'null'
title: Current Block
committed_root:
anyOf:
- type: string
- type: 'null'
title: Committed Root
attestor:
anyOf:
- type: string
- type: 'null'
title: Attestor
explorer_url:
anyOf:
- type: string
- type: 'null'
title: Explorer Url
basescan_read_contract_url:
anyOf:
- type: string
- type: 'null'
title: Basescan Read Contract Url
onchain_getters:
additionalProperties:
type: string
type: object
title: Onchain Getters
eth_call_calldata:
anyOf:
- type: string
- type: 'null'
title: Eth Call Calldata
verify_yourself:
anyOf:
- type: string
- type: 'null'
title: Verify Yourself
reason:
anyOf:
- type: string
- type: 'null'
title: Reason
type: object
required:
- proof_escrow_id
title: ProofEscrowVerification
description: 'The live on-chain state of a proof-gated reward escrow (public, no auth).
Lets any third party confirm — without trusting this API — that a proof-gated
bounty is real and waiting. ``ready`` is ``True`` only when the escrow is CREATED
and not past its deadline block (funds locked and claimable via a valid attestor
proof); ``False`` once released/refunded or expired; and ``None`` when the current
block could not be read (an honest unknown, never a guess). ``verify_yourself``
gives the RPC + contract coordinates to re-check independently, and ``reason`` is
set when a read failure forced ``ready: None``.
``ready`` answers "can this still be claimed?", NOT "did this succeed?" — it is
``False`` for a settled escrow. Read ``released`` (or ``terminal_state``) when
confirming a completed purchase: a buyer checking that its USDC reached the
seller wants ``released: True``, and would misread ``ready: False`` as failure.'
OnChainJobSummary:
properties:
on_chain_escrow_id:
type: string
title: On Chain Escrow Id
outcome:
type: string
title: Outcome
tx_hash:
type: string
title: Tx Hash
amount:
type: string
title: Amount
settled_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Settled At
type: object
required:
- on_chain_escrow_id
- outcome
- tx_hash
- amount
- settled_at
title: OnChainJobSummary
securitySchemes:
AgentKey:
type: apiKey
in: header
name: X-API-Key
OwnerKey:
type: apiKey
in: header
name: X-Owner-Key
WalletSession:
type: http
scheme: bearer