# x402-gateway: wallet_verify_nostr

> x402-gateway: wallet_verify_nostr is a paid API for AI agents from x402.freeq.one, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-15).

Verifies a NIP-98 Nostr HTTP authentication event and returns the signer's public key, with stateful replay protection ensuring each event ID is only accepted once.

## Facts

- Endpoint: POST https://x402.freeq.one/tools/wallet_verify_nostr
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/x402-gateway-wallet-verify-nostr-d49780f9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_b4SbLleleJ00LODh9JfC-

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 x402-gateway-wallet-verify-nostr-d49780f9 -d '<json body>'
```

Example prompt: Verify this NIP-98 Nostr HTTP auth event for a POST request with JSON body — confirm the signature is valid and tell me the signer's public key.

## When to prefer this

Use this endpoint when you need to authenticate users via their Nostr identity using the NIP-98 HTTP Auth standard, especially when replay protection is critical. Prefer this over a simple signature check when you need server-side stateful enforcement that each auth token is single-use. Ideal for Nostr-native applications, decentralized identity flows, or any system where users authenticate with a Nostr keypair rather than traditional credentials.

## Known failure modes

- Invalid or malformed NIP-98 event structure — returns verification failure
- Replay detected: event ID already used — returns rejection indicating duplicate
- Signature mismatch — public key does not match the event signature
- Missing required fields (type, method, bodyType, body) — returns schema validation error
- Payment failure via x402 protocol — call not executed

## How this service works

x402-gateway tool: wallet_verify_nostr — Verify a NIP-98 Nostr HTTP auth event. Returns the signer pubkey. Stateful replay protection: each event id can only be verified once.

## Output

Returns the signer's Nostr public key if the NIP-98 event is valid and has not been previously used. Stateful replay protection means each unique event ID is recorded server-side and rejected on reuse, preventing replay attacks.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "description": "Expected u-tag URL (optional; defaults to the request URL)"
  },
  "token": {
   "type": "string",
   "description": "Base64-encoded NIP-98 event, or 'Nostr <base64>' Authorization header value"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "result": {}
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/x402-gateway-wallet-verify-nostr-d49780f9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.freeq.one](https://www.zero.xyz/host/x402.freeq.one/llms.txt)
