# Proofwire DNS Verification

> Proofwire DNS Verification is a paid API for AI agents from verify.reversecaptcha.fun, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-20).

Resolves DNS records for a domain and parses SPF, DMARC, and DKIM configuration, returning a signed verdict with evidence

## Facts

- Endpoint: GET https://verify.reversecaptcha.fun/v1/verify/dns?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-20
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/proofwire-dns-verification-c5dd6904
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ReIv2CDREl2fvdzWnoNX4

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 proofwire-dns-verification-c5dd6904
```

Example prompt: Check if acmecorp.com has valid SPF and DMARC records set up — I need a signed proof I can audit later.

## When to prefer this

Use this endpoint when you need a tamper-evident, cryptographically signed proof of a domain's DNS state — especially for compliance, audit trails, or agent self-verification workflows. Prefer this over generic DNS lookup tools when you need an Ed25519-signed verdict that can be externally verified, or when you're checking email authentication readiness (SPF/DMARC/DKIM) as part of an automated pipeline.

## Known failure modes

- Domain does not exist — NXDOMAIN causes a fail verdict
- SPF or DMARC records not found — returns verdict fail with evidence showing found:false
- Network timeout resolving the domain — returns error response
- Invalid domain format in query param — returns 400 or error verdict
- Record type mismatch with expect param — verdict fail with actual records in evidence

## How this service works

Close the loop on your own work with one paid call that returns a verdict plus Ed25519-signed, falsifiable evidence (verify signatures with GET /v1/keys). GET /v1/verify/http checks a URL is alive (redirect chain, TLS, latency, body hash). GET /v1/verify/dns resolves records and parses SPF/DMARC/DKIM. Email: POST /v1/verify/email/inbox issues a seed address; send mail to it, then GET /v1/verify/email?inbox=&token= returns delivery plus SPF/DKIM/DMARC alignment and raw headers (polls inside the paid window are free). Webhooks: POST /v1/verify/webhook arms a tripwire URL; register it upstream, then poll GET /v1/verify/webhook/{id}?token= for free. GET /v1/verify/page renders a page in a real browser, asserts a selector/text, and returns a screenshot URL. Failed work is never settled.

## Output

A JSON object containing a verdict (pass/fail), a human-readable reason, and an Ed25519-signed evidence block with the full DNS record values for TXT and other requested types, plus parsed SPF and DMARC presence flags. The signed evidence can be independently verified using the public key at GET /v1/keys.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "domain"
     ],
     "properties": {
      "type": {
       "type": "string"
      },
      "domain": {
       "type": "string"
      },
      "expect": {
       "type": "string"
      },
      "selector": {
       "type": "string"
      }
     }
    }
   }
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "reason": "found \"v=spf1\"",
  "verdict": "pass",
  "evidence": {
   "email": {
    "spf": {
     "found": true
    },
    "dmarc": {
     "found": true
    }
   },
   "records": {
    "TXT": [
     "v=spf1 -all"
    ]
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/proofwire-dns-verification-c5dd6904/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from verify.reversecaptcha.fun](https://www.zero.xyz/host/verify.reversecaptcha.fun/llms.txt)
