Nalvorn

Verificações que dizem o que falhou e onde

Envie um manifesto, um esquema, um recibo ou o endereço de uma API em execução. Você recebe JSON: o que foi comparado, o que não bateu e onde. Pagamento por chamada em USDC na Base.

Três verificações são grátis. As demais a partir de 0.005 USDC por chamada: o 402 informa o preço antes de pagar e esse é o preço total. Sem contas nem chaves; é preciso uma carteira com USDC na Base e um cliente x402 para assinar.

As ferramentasPreço por chamada, em USDC na Base.

Veja antes de pagar

As quatro respostas foram tiradas do servidor real em 2026-10-26. As duas primeiras requisições são gratuitas e não pedem pagamento; a terceira é uma ferramenta paga, então responde 402 até você assinar.

1. A requisição

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. A requisição gratuita responde na hora: HTTP 200

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

3. A mesma requisição com um hash trocado: 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": []
}

O 402 é o objeto inteiro que o cliente lê: preço em unidades atômicas, endereço de recebimento, rede e a extensão bazaar.

4. Uma requisição paga sem pagamento: 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"
   }
  }
 ]
}

A requisição paga, pronta para rodar:

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"}'

O amount vai em unidades atômicas: 10000 são 0.01 USDC, porque o USDC tem seis casas decimais. As ferramentas gratuitas não têm amount: nada é cobrado.

Como uma chamada funciona

  1. Envie POST com corpo JSON para o caminho de uma ferramenta.
  2. O serviço responde HTTP 402 com o preço, o endereço de recebimento e o ativo. Por essa resposta você não paga nada.
  3. Assine uma autorização EIP-3009 com um cliente x402: o curl sozinho não assina e uma transferência direta de USDC para o endereço não conta como pagamento. Repita a mesma requisição com a assinatura em PAYMENT-SIGNATURE; o resultado chega em JSON.

Pagamento

Rede
Base (eip155:8453)
Ativo
USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Endereço de recebimento
0x98d6768508A36C04d8a60E5E5B24Ac3d628F5350
Esquema
exact: transferência assinada, liquidada na rede. Sem depósito nem saldo.

Para máquinas

Agentes leem o catálogo e as condições de pagamento diretamente:

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

Em catálogos