# Verificación pública de Alma

Esta herramienta comprueba que una clave autorizada en alma.weedex.eth ha firmado un reto recién generado por el visitante. No certifica un modelo, una voz, una persona, una llamada ni las capacidades de Alma.

## Independiente de la web de Weedex

Extrae verificador.tar.gz en una carpeta. Con Node.js 22 o posterior, sin instalar paquetes:

    node verify-cli.mjs live

Para usar dos proveedores HTTPS propios, de operadores distintos:

    node verify-cli.mjs live https://TU_RPC_1 https://TU_RPC_2

El reto se genera LOCALMENTE, no se acepta de la respuesta del servidor. El script consulta el endpoint público de firmas (sin credenciales), comprueba Ethereum directamente, recupera la dirección EIP-712 y la compara con la clave autorizada. Guarda alma-proof.json. Nunca envía una transacción ni solicita una wallet.

Para volver a comprobar una prueba dentro de sus 60 segundos, proporciona el reto que TÚ generaste y guardaste antes de pedir la firma:

    node verify-cli.mjs check alma-proof.json 0xRETO_PROPIO_DE_64_HEX

Copiar el reto de un archivo de otra persona solo acredita una firma ajena, no una respuesta a tu solicitud actual. Después de 60 segundos esta herramienta rechaza la prueba; una evidencia guardada no acredita identidad actual.

## Criterios verificables

- Esquema, propósito, ENS, dominio EIP-712 y audiencia fijos.
- sessionBinding coincide exactamente con tu reto aleatorio de 256 bits.
- Firma recuperada coincide con clave autorizada; época, ventana de autorización y prueba comprobadas.
- Dos RPC HTTPS distintos coinciden en bloques comunes finalized/latest, registro completo, owners, resolver y anclajes de autoridad.
- Caducidad del dominio padre, permisos de la clave y código de cuentas comprobados. Los cambios pendientes/no finalizados y las discrepancias fallan de forma cerrada.
- El reloj local debe ser correcto; latest debe tener menos de 120 s y finalized menos de 30 minutos.
- Nunca se confía en campos de resultado o bloques del recibo remitido por Weedex.

## Modelo de confianza y límites

Los RPC proporcionan las lecturas Ethereum: esta herramienta no incorpora un cliente de consenso. Dos hosts distintos no prueban que sean operadores independientes. Puedes cambiar proveedores o auditar con infraestructura propia. Una web o pasarela comprometida puede servir código alterado: descarga, revisa y ejecuta el código fuera de ella. ENS/IPFS no convierte automáticamente una página en una certificación.

La prueba demuestra control de la clave autorizada para responder a un reto. Un intermediario puede retransmitir retos al servicio público: NO autentica el dominio de una web ajena, al interlocutor de una llamada o el transporte. Nunca interpretar el resultado como autenticación de una llamada sin un protocolo adicional de vinculación.

La clave sigue en un firmador sin red. El endpoint público solo acepta un reto hexadecimal, no documentos, transacciones, direcciones de destino ni mensajes arbitrarios. Límite global inicial: dos solicitudes por minuto, una por cliente y una simultánea; comparte el firmador existente con la integración privada. No hay autenticación ni exclusividad global de verificaciones: cada visitante verifica su propio reto. No se promete que una firma pública solo pueda ser inspeccionada una vez.

## ENS / IPFS

La misma carpeta estática puede publicarse en IPFS. El endpoint de firma sigue siendo un servicio HTTPS: distribuir la interfaz no descentraliza la custodia del firmador. Para enlazar alma.weedex.eth se necesita un contenthash firmado por su titular; el registro de identidad no se sustituye. Mantener pinning asegura disponibilidad, no basta con calcular un CID. No se ha publicado una web .eth por el mero hecho de preparar estos archivos.

## Dependencias

ethers (versión exacta conservada en VERSION.json), licencia MIT incluida. Documentación: https://docs.ethers.org/v6/api/hashing/ y https://docs.ens.domains/web/records/ . El protocolo propio ALMA_KEY_AUTH_V1 no es un estándar universal de agentes ni una acreditación de terceros.
