# Nostr NIP-05 Identifier Verifier

> Nostr NIP-05 Identifier Verifier is a paid API for AI agents from nostr.halowerk.com, paid per call via x402, $0.001/call, status unknown (last checked 2026-09-14).

Verifies a NIP-05 identifier by fetching the domain's nostr.json and comparing the resolved public key, with explicit match/mismatch reporting and redirect detection

## Facts

- Endpoint: POST https://nostr.halowerk.com/nip05-verify
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/nostr-nip-05-identifier-verifier-51880be0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_1b5-W0t9ms_KAuY5Mo9Vr

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 nostr-nip-05-identifier-verifier-51880be0 -d '<json body>'
```

Example prompt: Can you verify that the Nostr NIP-05 identifier jb55@jb55.com actually resolves to the pubkey npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5 and tell me if they match, plus list any relay hints the domain publishes?

## When to prefer this

Use this endpoint when you need to cryptographically validate a NIP-05 Nostr identifier against a specific public key, especially when you want explicit match/mismatch reporting rather than raw data, redirect detection to distinguish genuine responses from login-page hijacks, and relay hint discovery — all in a single call. Prefer it over manual HTTP requests when you need structured, agent-friendly output with clear verification verdicts.

## Known failure modes

- Domain redirects to login page instead of serving nostr.json — detected and reported via HTTP status and final URL fields
- Username not found in the domain's nostr.json — returns a not-found or empty result
- Domain is unreachable or times out — network error response
- nostr.json is malformed or unparseable — parsing error reported
- Expected pubkey provided in wrong format — input validation error
- HTTP 404 or 500 from the well-known endpoint — reflected in status field

## How this service works

Fetches https://domain/.well-known/nostr.json with the name query parameter and reads the mapping the domain publishes. The answer states the resolved public key in hex and as npub, the relay hints the document lists for that key, and the HTTP status and final URL after redirects, so a redirect to a login page is distinguishable from a genuine answer. Given an expected public key, the comparison is made and the result is reported as an explicit match or mismatch rather than left to the caller.

## Output

Returns the resolved public key in both hex and npub formats, any relay hints listed in the domain's nostr.json for that key, the HTTP status code and final URL after any redirects, and an explicit match or mismatch verdict when an expected public key is supplied for comparison.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "identifier": {
   "type": "string",
   "description": "NIP-05 identifier as name@domain, or a bare domain for the root identifier _@domain."
  },
  "expect_pubkey": {
   "type": "string",
   "description": "Public key as hex, npub or nprofile that the domain is expected to confirm."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/nostr-nip-05-identifier-verifier-51880be0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from nostr.halowerk.com](https://www.zero.xyz/host/nostr.halowerk.com/llms.txt)
