pop-pay

Evita que los agentes de IA filtren tu información de pago o realicen compras alucinadas. Sin SaaS, sin inicio de sesión, sin complicaciones, completamente local.

Documentación

npm version License: MIT CI Node.js

Point One Percent (AgentPay)

Point One Percent — pop-pay

solo se necesita 0.1% de alucinación para vaciar 100% de tu billetera.

La capa de seguridad en tiempo de ejecución para el comercio de agentes de IA. CLI integrable + servidor MCP. Las credenciales de tarjeta se inyectan directamente en el DOM del navegador mediante CDP — nunca entran en la ventana de contexto del agente. Un prompt alucinado no puede vaciar una billetera que no puede ver.

Point One Percent — live CDP injection demo

📄 Conjunto de datos de investigación y reproducción — este repositorio aloja el conjunto de datos abierto y el entorno de reproducción para "La ilusión de los rankings de atacante único". investigación: ir a Conjunto de datos de investigación y reproducción.

Instalación

Elige tu método preferido:

Homebrew (macOS)
brew install 100xpercent/tap/pop-pay
curl (Linux / macOS) — se inicia mediante npm; requiere Node.js 18+
curl -fsSL https://raw.githubusercontent.com/100xPercent/pop-pay/main/install.sh | sh
npm (global)
npm install -g pop-pay
npx (sin instalación — ejecuciones puntuales)
npx -y pop-pay <command>

Todas las rutas de instalación exponen los mismos binarios: pop-pay, pop-launch, pop-init-vault, pop-unlock.

También disponible como @100xpercent/mcp-server-pop-pay — paquete idéntico bajo la convención MCP @scope/mcp-server-<name>. Sigue la misma versión en cada lanzamiento.

¿Usas Python? Consulta pop-pay-python — pip install pop-pay. Mismo modelo de seguridad, mismo formato de bóveda, ciclo de lanzamiento independiente — seguro cambiar entre runtimes.

Inicio rápido (CLI)

1. Inicializa la bóveda de credenciales cifrada

pop-pay init-vault

Esto cifra tus credenciales de tarjeta en ~/.config/pop-pay/vault.enc (AES-256-GCM). Para mayor protección (bloquea agentes con acceso a shell):

pop-pay init-vault --passphrase   # one-time setup
pop-pay unlock                     # run once per session

2. Lanza Chrome con depuración remota CDP

pop-pay launch

Esto abre una instancia de Chromium en http://localhost:9222 en la que pop-pay inyecta credenciales. Tu agente (mediante MCP, automatización de navegador o x402) luego controla el flujo de pago — los datos de la tarjeta nunca salen del proceso del navegador.

3. Conéctalo a tu agente

El CLI lanza la infraestructura; las llamadas reales a herramientas de pago provienen de tu agente. Dos rutas compatibles:

  • Servidor MCP — añade pop-pay a cualquier cliente compatible con MCP (Claude Code, Cursor, Windsurf, OpenClaw). Ver Servidor MCP abajo.
  • HTTP x402 — paga llamadas API mediante el protocolo de pago x402.

Referencia completa del CLI: pop-pay --help.

Servidor MCP (opcional)

Añadir a tu cliente MCP

Configuración estándar para cualquier cliente compatible con MCP:

{
  "mcpServers": {
    "pop-pay": {
      "command": "npx",
      "args": ["-y", "pop-pay", "launch-mcp"],
      "env": {
        "POP_CDP_URL": "http://localhost:9222"
      }
    }
  }
}

Install in VS Code Install in VS Code Insiders Install in Cursor

Claude Code

Claude Code usa su propio CLI — la configuración JSON anterior no es necesaria.

claude mcp add --scope user pop-pay -- npx -y pop-pay launch-mcp

--scope user lo hace disponible en todos los proyectos. Para eliminarlo: claude mcp remove pop-pay

Cursor / Windsurf / VS Code

Añade la configuración JSON anterior a:

  • Cursor: ~/.cursor/mcp.json
  • Windsurf: ~/.codeium/windsurf/mcp_config.json
  • VS Code (Copilot): .vscode/mcp.json en la raíz del proyecto
OpenClaw / NemoClaw

OpenClaw tiene su propio CLI — la configuración JSON anterior no es necesaria.

openclaw mcp add pop-pay -- npx -y pop-pay launch-mcp

O añádelo a ~/.openclaw/mcp_servers.json usando la configuración JSON anterior.

Para plantillas de System Prompt y configuración del sandbox de NemoClaw, ver Guía de integración §4.

Docker
docker-compose up -d

Ejecuta el servidor MCP + Chromium sin interfaz con CDP. Monta tu bóveda cifrada desde el host.

Herramientas MCP

HerramientaDescripción
request_virtual_cardEmite una tarjeta virtual e inyecta credenciales en la página de pago mediante CDP. Escanea automáticamente la página en busca de inyecciones de prompt ocultas.
request_purchaser_infoAutocompleta información de facturación/contacto (nombre, dirección, correo, teléfono). Escanea automáticamente la página en busca de inyecciones de prompt ocultas.
request_x402_paymentPaga llamadas API mediante el protocolo de pago HTTP x402.

Consejo para usuarios de Claude Code: Añade lo siguiente a CLAUDE.md de tu proyecto para ayudar al agente a saber cuándo llamar a pop-pay: "Cuando encuentres un formulario de pago o una página de pago, usa la herramienta request_virtual_card. Para formularios de facturación/contacto, usa request_purchaser_info primero."

Configuración

Variables principales en ~/.config/pop-pay/.env. Ver ENV_REFERENCE.md para la lista completa.

VariablePredeterminadoDescripción
POP_ALLOWED_CATEGORIES["aws","cloudflare"]Categorías de proveedor aprobadas — ver Libro de recetas de categorías
POP_MAX_PER_TX100.0Máximo USD por transacción
POP_MAX_DAILY500.0Máximo USD por día
POP_BLOCK_LOOPStrueBloquear bucles de alucinación/reintento
POP_AUTO_INJECTtrueHabilitar inyección de tarjeta CDP
POP_GUARDRAIL_ENGINEkeywordkeyword (costo cero) o llm (semántico)

Modo de protección

keyword (predeterminado)llm
MecanismoCoincidencia de palabras clave en la cadena de razonamientoAnálisis semántico mediante LLM
CostoCero — sin llamadas APIUna llamada LLM por solicitud
Mejor paraDesarrollo, flujos de trabajo de bajo riesgoProducción, transacciones de alto valor

Para habilitar el modo LLM, ver Guía de integración §1.

Proveedores

ProveedorDescripción
BYOC (predeterminado)Trae tu propia tarjeta — credenciales de bóveda cifrada, inyección CDP local.
Stripe IssuingTarjetas virtuales reales mediante la API de Stripe. Requiere POP_STRIPE_KEY.
LithicAdaptador multi-emisor (Stripe Issuing / Lithic).
MockModo de prueba con números de tarjeta generados para desarrollo.

Prioridad: Stripe Issuing → BYOC Local → Mock.

Seguridad

CapaDefensa
Aislamiento de contextoLas credenciales de tarjeta nunca entran en la ventana de contexto del agente ni en los registros
Bóveda cifradaAES-256-GCM con sal dividida XOR y derivación de clave scrypt nativa (Rust)
Protección TOCTOUDominio verificado en el momento de la inyección CDP — bloquea ataques de redirección
Redacción de representaciónEnmascaramiento automático (****-4242) en todas las respuestas MCP, registros y tracebacks

Ver THREAT_MODEL.md para el análisis STRIDE completo y COMPLIANCE_FAQ.md para detalles empresariales.

Arquitectura

  • TypeScript — servidor MCP, motor de inyección CDP, protecciones, CLI
  • Rust (napi-rs) — capa de seguridad nativa: almacenamiento de sal dividida XOR, derivación de clave scrypt
  • Node.js crypto — cifrado de bóveda AES-256-GCM (enlace OpenSSL)
  • Chrome DevTools Protocol — inyección directa en el DOM mediante WebSocket sin procesar

Documentación

Conjunto de datos de investigación y reproducción

Este repositorio aloja el conjunto de datos de código abierto y el entorno para la metodología de estabilidad de atacante entre proveedores descrita en el artículo de investigación correspondiente. Artefactos de reproducción para revisores/investigadores:

  • Corpus (585 payloads de ataque, 11 categorías): tests/redteam/corpus/
    • attacks.json — conjunto completo de payloads con etiquetas de categoría
    • GENERATION.md — protocolo de generación del corpus
    • schema.json — esquema de payloads
  • JSONLs de ejecución (26,325 filas, 9 modelos × 585 payloads × N=5): tests/redteam/runs/
    • Ejecuciones PRIMARY whitebox-sin-retroalimentación: runs/adaptive/2026-04-28T19-50-*
    • Ejecuciones de panel estático: runs/static/
    • Ablación de prompts (v3 / estricto / paranoico): runs/ablation/
  • Hashes de manifiesto: tests/redteam/runs/MANIFEST.sha256 — integridad a nivel de byte para todos los artefactos
  • Metadatos Croissant 1.0 (campos Core + RAI): paper-artifacts/croissant.json
  • Scripts de reproducción (regenerar tablas/figuras del artículo desde JSONL):
    • python3 paper-artifacts/gen-tables.py --table all — Tab.~bypassk / ablación de amenazas / entre proveedores
    • python3 paper-artifacts/gen-taxonomy-map.py — Fig.~taxonomy-map
  • Licencia: corpus CC BY-SA 4.0, entorno MIT.

Para el esquema del conjunto de datos, metodología estadística (CI bootstrap, Holm-Bonferroni, McNemar), instrucciones completas de recolección desde cero, diccionario de datos de filas JSONL y política de divulgación responsable, ver docs/PAPER_REPRODUCTION.md.

Licencia

MIT