Nalvorn

Comprobaciones que dicen qué falla y dónde

Envía un manifiesto, un esquema, un recibo o la dirección de una API en funcionamiento. Recibe JSON: qué se comparó, qué no coincidió y dónde. Pago por llamada en USDC en Base.

Tres comprobaciones son gratis. El resto desde 0.005 USDC por llamada: el 402 indica el precio antes de pagar y ese es todo el precio. Sin cuentas ni claves; hace falta una cartera con USDC en Base y un cliente x402 para firmar.

Las herramientasPrecio por llamada, en USDC en Base.

Míralo antes de pagar

Las cuatro respuestas se tomaron del servidor real el 2026-10-26. Las dos primeras solicitudes son gratuitas y no piden pago; la tercera es una herramienta de pago, así que responde 402 hasta que firmes.

1. La solicitud

curl -s -X POST \
  https://tools.nalvorn.top/verify-manifest \
  -H 'Content-Type: application/json' \
  -d '{"manifest":"a1b2c3d4e5f6  ./app.py","files":{"./app.py":"a1b2c3d4e5f6"}}'

2. La solicitud gratuita responde enseguida: HTTP 200

{
 "ok": true,
 "verdict": "every declared digest matches",
 "declared_files": 1,
 "checked": 1,
 "mismatched": [],
 "missing": [],
 "extra_not_in_manifest": []
}

3. La misma solicitud con un hash cambiado: HTTP 200, ok: false

{
 "ok": false,
 "verdict": "digests do not match",
 "declared_files": 1,
 "checked": 1,
 "mismatched": [
  {
   "file": "./app.py",
   "declared": "a1b2c3d4e5f6",
   "actual": "11b2c3d4e5f6"
  }
 ],
 "missing": [],
 "extra_not_in_manifest": []
}

El 402 es el objeto completo que lee el cliente: precio en unidades atómicas, dirección de cobro, red y la extensión bazaar.

4. Una solicitud de pago sin pagar: HTTP 402

{
 "x402Version": 2,
 "error": "PAYMENT-SIGNATURE header is required",
 "resource": {
  "url": "https://tools.nalvorn.top/receipt-verify",
  "description": "Verify a receipt: canonical JSON digest and declared sha256",
  "mimeType": "application/json",
  "serviceName": "Nalvorn verification tools",
  "tags": [
   "verification",
   "audit",
   "evidence"
  ],
  "iconUrl": "https://tools.nalvorn.top/favicon.ico"
 },
 "accepts": [
  {
   "scheme": "exact",
   "network": "eip155:8453",
   "amount": "10000",
   "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
   "payTo": "0x98d6768508A36C04d8a60E5E5B24Ac3d628F5350",
   "maxTimeoutSeconds": 120,
   "extra": {
    "name": "USD Coin",
    "version": "2"
   }
  }
 ]
}

La solicitud de pago, lista para ejecutar:

curl -s -X POST \
  https://tools.nalvorn.top/receipt-verify \
  -H 'Content-Type: application/json' \
  -H "PAYMENT-SIGNATURE: $(your-x402-client-signs)" \
  -d '{"payload":{"a":1},"sha256":"0f343b09"}'

amount va en unidades atómicas: 10000 son 0.01 USDC, porque USDC tiene seis decimales. Las herramientas gratuitas no llevan amount: no se cobra nada.

Cómo funciona una llamada

  1. Envía POST con un cuerpo JSON a la ruta de una herramienta.
  2. El servicio responde HTTP 402 con el precio, la dirección de cobro y el activo. Por esa respuesta no pagas nada.
  3. Firma una autorización EIP-3009 con un cliente x402: curl por sí solo no puede firmar y una transferencia directa de USDC a la dirección no cuenta como pago. Repite la misma petición con la firma en PAYMENT-SIGNATURE; el resultado llega en JSON.

Pago

Red
Base (eip155:8453)
Activo
USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Dirección de cobro
0x98d6768508A36C04d8a60E5E5B24Ac3d628F5350
Esquema
exact: transferencia firmada, liquidada en cadena. Sin depósito ni saldo.

Para máquinas

Los agentes leen el catálogo y las condiciones de pago directamente:

Catálogo
/manifest
llms.txt
/llms.txt

En catálogos