# MERCATOR Verify Address Evidence

> MERCATOR Verify Address Evidence is a paid API for AI agents from mercator-entity-evidence.fly.dev, paid per call via x402, $0.25/call, status unknown (last checked 2026-09-14).

Verifies whether a candidate blockchain contract address on a given chain is genuinely owned/published by a named entity, returning evidence-backed transact/no-transact decision support for autonomous agents.

## Facts

- Endpoint: POST https://mercator-entity-evidence.fly.dev/v1/address-evidence
- Price: $0.25/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/mercator-verify-address-evidence-39810867
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_S6Pu3Fi8NaTyUYT8C-uoG

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability mercator-verify-address-evidence-39810867 -d '<json body>'
```

Example prompt: Before I stake my ETH, verify that 0xae78736Cd615f374D3085123A210448E74Fc6393 on Ethereum is the official rocketpool.net staking contract — I need evidence it's genuinely published by them and is intended for staking.

## When to prefer this

Use this endpoint when an autonomous agent needs trustworthy, evidence-backed confirmation that a specific blockchain address is the correct contract for a named protocol or entity before executing any on-chain action. It is specifically designed for agentic pre-transaction verification workflows on Ethereum, Base, or Solana, where the agent has already found a candidate address and needs to cross-reference it against entity-published and independent chain-explorer sources. Prefer this over generic blockchain explorers when you need a structured transact/no-transact decision with cited evidence rather than raw on-chain data.

## Known failure modes

- address not provided — transact=false with reason candidate_address_required, plus context addresses published by entity
- contract purpose cannot be verified from entity sources — transact=false with reason contract_purpose_unverified
- conflicting evidence between entity-published sources and chain explorers — transact=false with conflicts array populated
- entity domain has no discoverable published contract addresses — low confidence or FAIL status
- unsupported chain value outside ethereum/base/solana enum — validation error
- network timeout or upstream explorer unavailability — service error response
- entity publishes address for a different chain than requested — conflict and transact=false

## How this service works

MERCATOR Verify provides evidence-backed verification and decision support for autonomous agents. Use its specialized tools when an agent needs trustworthy evidence before taking a downstream action.

## Output

A JSON object containing: a boolean transact decision with a reason and plain-language meaning, a status (PASS/FAIL), a confidence score (0-1), an evidence array (each with URL, excerpt, basis, operator, retrieved timestamp, stated chain, and stated address), agreement summary across sources, any conflicts, proxy information (whether the contract is a proxy, its type and implementation addresses), the canonical entity name, chain CAIP-2 identifier, and contextual notes. The response makes clear what the evidence does and does not guarantee (e.g. not a safety or audit assessment).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "chain": {
   "enum": [
    "ethereum",
    "base",
    "solana"
   ],
   "type": "string",
   "description": "REQUIRED. The chain is never inferred from the address: the same bytes are a valid address on every EVM chain, and on two of them a different contract."
  },
  "domain": {
   "type": "string",
   "description": "Domain of the entity or protocol the contract is claimed to belong to"
  },
  "address": {
   "type": "string",
   "description": "REQUIRED FOR A TRANSACT DECISION. The candidate target you found and intend to interact with. Supplying it asks whether the evidence supports THAT address; it is never treated as evidence itself. Omit it and the answer is always transact=false with reason candidate_address_required, plus the addresses the entity publishes as context — this service verifies the claim you bring and never chooses a transaction target for you."
  },
  "purpose": {
   "type": "string",
   "description": "Optional. What you intend to call this contract for: \"staking\", \"bridge\", \"governance\". Supplying it asks the second question — the address is theirs, and is it the contract you meant — and a source that says it is a different kind of contract then fails closed. Omitting it does not skip the purpose gate: the entity's own source must still say what the contract is, or the answer is transact=false with reason contract_purpose_unverified."
  },
  "protocol": {
   "type": "string",
   "description": "Optional protocol or product name, when the docs name it differently"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "chain": "base",
  "notes": [],
  "proxy": {
   "note": "canonical interaction target is the proxy; the implementation is context only and is expected to change across upgrades without changing this answer",
   "is_proxy": true,
   "proxy_type": "eip1967",
   "proxy_address": "0x0000000000000000000000000000000000000001",
   "implementation_addresses": [
    "0x0000000000000000000000000000000000000002"
   ]
  },
  "action": {
   "means": "there is sufficient provenance evidence that this chain and address is the intended contract target",
   "reason": "an entity-controlled source and an independent chain source state the same chain and address",
   "transact": true,
   "does_not_mean": "this is not a safety, audit or malice assessment; the contract may still be unaudited, upgradeable to hostile code, or able to take your funds"
  },
  "entity": "example-protocol.org",
  "status": "PASS",
  "address": "0x0000000000000000000000000000000000000001",
  "context": [],
  "billable": true,
  "evidence": [
   {
    "url": "https://example-protocol.org/contracts",
    "basis": "entity_published",
    "excerpt": "Base: 0x0000000000000000000000000000000000000001",
    "operator": "example-protocol.org",
    "source_id": "entity_page",
    "retrieved_at": "2026-09-01T12:00:00Z",
    "states_chain": "base",
    "states_address": "0x0000000000000000000000000000000000000001"
   },
   {
    "url": "https://base.blockscout.com/api/v2/addresses/0x0000000000000000000000000000000000000001",
    "basis": "explorer_verified",
    "excerpt": "\"hash\":\"0x0000000000000000000000000000000000000001\",\"is_contract\":true",
    "operator": "blockscout.com",
    "source_id": "blockscout_base",
    "retrieved_at": "2026-09-01T12:00:00Z",
    "states_chain": "base",
    "states_address": "0x0000000000000000000000000000000000000001"
   }
  ],
  "protocol": "",
  "agreement": "2_of_2",
  "conflicts": [],
  "confidence": 0.9,
  "chain_caip2": "eip155:8453",
  "billing_note": "",
  "basis_meaning": {
   "entity_published": "the entity's own site or documentation states this chain and address; it is the entity's published claim about itself, not proof of control",
   "explorer_verified": "an independent chain explorer confirms a contract exists at this chain and address and reports its on-chain metadata; it does not say whose it is"
  },
  "evidence_basis": [
   "entity_published",
   "explorer_verified"
  ],
  "checked_address": null,
  "sources_consulted":
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/mercator-verify-address-evidence-39810867/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from mercator-entity-evidence.fly.dev](https://www.zero.xyz/host/mercator-entity-evidence.fly.dev/llms.txt)
