En desarrollo · Sandbox disponible

Identidad verificada y mandatos para agentes, con estándares abiertos

Integra «Continuar con Avala» en tu sitio, haz que tu agente de IA actúe por una persona verificada con límites que ella controla, o verifica a los agentes que llegan a tu API. Todo con OpenID Connect, OAuth y credenciales firmadas que se verifican con llaves públicas.

Elige tu camino

Tres formas de construir con Avala

  • Tu sitio o app recibe identidades

    Flujo de OpenID Connect con FAPI 2.0 (PAR, PKCE, private_key_jwt, DPoP) y verified_claims.

    SDK de Go pkg/rp · SDK de Node.js @avala/rp, sin dependencias

  • Tu agente actúa por una persona

    Vinculación única, solicitudes de aprobación por CIBA, permisos continuos con límites, intercambio de tokens (RFC 8693) y comprobantes.

    SDK de Go pkg/agent · servidor MCP avala-mcp

  • Tu API o servidor MCP acepta agentes

    Verifica mandatos, comprobantes y firmas de Web Bot Auth con las llaves públicas de Avala, sin llamarnos en cada petición.

    Go pkg/rp, pkg/mcpauth, pkg/httpsig · Node.js MandateVerifier

Servidor MCP

Cualquier asistente compatible con MCP puede usar Avala

avala-mcp es un servidor del Model Context Protocol. Con él, asistentes como Claude Desktop, Claude Code o ChatGPT actúan por una persona verificada sin código a la medida.

avala_link_person
Vincula a la persona una sola vez.
avala_request_permission
Pide permiso; la persona aprueba con su llave de acceso.
avala_list_permissions
Muestra qué puede hacer y cuánto presupuesto queda.
avala_check_action
Revisa cada acción contra los límites antes de hacerla.
avala_prepare_request
Arma los encabezados que prueban la autorización ante un sitio.
Configuración en claude_desktop_config.json
{
  "mcpServers": {
    "avala": {
      "command": "/usr/local/bin/avala-mcp",
      "env": {
        "AVALA_ISSUER": "https://verificaid.link",
        "AVALA_AGENT_CLIENT_ID": "mi-asistente",
        "AVALA_AGENT_KEY": "~/.avala-mcp/agent.pem"
      }
    }
  }
}

Verificar agentes

Comprueba la autorización con una sola llamada

El verificador revisa la firma del mandato, que el agente lo presentó para tu sitio y no se está reutilizando, la lista de estado (revocado o en pausa), que cubre la acción y el comprobante de un solo uso. Cada falla trae su propio código de error.

Avala cuenta los montos que declara el agente. Quien cobra es quien conoce el monto real: nunca cobres más de lo que dice el comprobante.

Node.js con @avala/rp
import { MandateVerifier, amountWithin } from "@avala/rp";

const v = new MandateVerifier({
  issuer: "https://verificaid.link",
  audience: "https://tienda.example",
  requireReceipt: true,
});

const { mandate, receipt } = await v.authorize(req, "purchase");
if (!amountWithin(order.total, receipt.receipt.amount)) {
  return rechazar(); // nunca más de lo autorizado
}

Estándares que ya conoces

  • OpenID Connect
  • FAPI 2.0
  • PAR
  • PKCE
  • DPoP
  • RAR
  • CIBA
  • Token Exchange (RFC 8693)
  • SD-JWT VC
  • Token Status List
  • Shared Signals (SSF, CAEP, RISC)
  • Web Bot Auth (RFC 9421)
  • Protected Resource Metadata (RFC 9728)
  • WebAuthn / passkeys

Endpoints públicos

Pruebas

Mientras Avala está en desarrollo, RENAPO, INE y la prueba de vida usan proveedores de prueba: usas CURPs de ejemplo y eliges el resultado de la verificación. Los clientes de sandbox se aprueban al momento y solo funcionan fuera de producción.