pop-pay

Impeça que agentes de IA vazem suas informações de pagamento ou façam compras alucinadas. Sem SaaS, sem login, sem dor, totalmente local.

Documentação

npm version License: MIT CI Node.js

Point One Percent (AgentPay)

Point One Percent — pop-pay

é preciso apenas 0,1% de alucinação para drenar 100% da sua carteira.

A camada de segurança em tempo de execução para o comércio de agentes de IA. CLI e servidor MCP prontos para uso. As credenciais de cartão são injetadas diretamente no DOM do navegador via CDP — elas nunca entram na janela de contexto do agente. Um prompt alucinado não pode drenar uma carteira que não consegue ver.

Point One Percent — live CDP injection demo

📄 Conjunto de Dados de Pesquisa e Reprodução — este repositório hospeda o conjunto de dados aberto e o ambiente de reprodução para "A Ilusão dos Rankings de Atacante Único". pesquisa: vá para Conjunto de Dados de Pesquisa e Reprodução.

Instalação

Escolha o método de sua preferência:

Homebrew (macOS)
brew install 100xpercent/tap/pop-pay
curl (Linux / macOS) — inicializa via npm; requer Node.js 18+
curl -fsSL https://raw.githubusercontent.com/100xPercent/pop-pay/main/install.sh | sh
npm (global)
npm install -g pop-pay
npx (sem instalação — execuções pontuais)
npx -y pop-pay <command>

Todos os caminhos de instalação expõem os mesmos binários: pop-pay, pop-launch, pop-init-vault, pop-unlock.

Também disponível como @100xpercent/mcp-server-pop-pay — pacote idêntico sob a convenção MCP @scope/mcp-server-<name>. Acompanha a mesma versão em cada lançamento.

Usando Python? Confira pop-pay-python — pip install pop-pay. Mesmo modelo de segurança, mesmo formato de cofre, ciclo de lançamento independente — seguro alternar entre runtimes.

Início Rápido (CLI)

1. Inicialize o cofre de credenciais criptografado

pop-pay init-vault

Isso criptografa suas credenciais de cartão em ~/.config/pop-pay/vault.enc (AES-256-GCM). Para proteção mais forte (bloqueia agentes com acesso ao shell):

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

2. Inicie o Chrome com depuração remota via CDP

pop-pay launch

Isso abre uma instância do Chromium em http://localhost:9222 na qual o pop-pay injeta credenciais. Seu agente (via MCP, automação de navegador ou x402) então conduz o fluxo de checkout — os detalhes do cartão nunca saem do processo do navegador.

3. Conecte ao seu agente

A CLI inicia a infraestrutura; as chamadas reais de ferramentas de pagamento vêm do seu agente. Dois caminhos suportados:

  • Servidor MCP — adicione pop-pay a qualquer cliente compatível com MCP (Claude Code, Cursor, Windsurf, OpenClaw). Veja Servidor MCP abaixo.
  • HTTP x402 — pague por chamadas de API via protocolo de pagamento x402.

Referência completa da CLI: pop-pay --help.

Servidor MCP (opcional)

Adicione ao seu cliente MCP

Configuração padrão para qualquer cliente compatível com 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

O Claude Code usa sua própria CLI — a configuração JSON acima não é necessária.

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

--scope user o disponibiliza em todos os projetos. Para remover: claude mcp remove pop-pay

Cursor / Windsurf / VS Code

Adicione a configuração JSON acima a:

  • Cursor: ~/.cursor/mcp.json
  • Windsurf: ~/.codeium/windsurf/mcp_config.json
  • VS Code (Copilot): .vscode/mcp.json na raiz do projeto
OpenClaw / NemoClaw

O OpenClaw tem sua própria CLI — a configuração JSON acima não é necessária.

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

Ou adicione a ~/.openclaw/mcp_servers.json usando a configuração JSON acima.

Para modelos de System Prompt e configuração do sandbox NemoClaw, veja Guia de Integração §4.

Docker
docker-compose up -d

Executa o servidor MCP + Chromium headless com CDP. Monte seu cofre criptografado a partir do host.

Ferramentas MCP

FerramentaDescrição
request_virtual_cardEmite um cartão virtual e injeta credenciais na página de checkout via CDP. Escaneia automaticamente a página em busca de injeções ocultas de prompt.
request_purchaser_infoPreenche automaticamente informações de cobrança/contato (nome, endereço, e-mail, telefone). Escaneia automaticamente a página em busca de injeções ocultas de prompt.
request_x402_paymentPaga por chamadas de API via protocolo de pagamento HTTP x402.

Dica para usuários do Claude Code: Adicione o seguinte ao CLAUDE.md do seu projeto para ajudar o agente a saber quando chamar o pop-pay: "Quando você encontrar um formulário de pagamento ou página de checkout, use a ferramenta request_virtual_card. Para formulários de informações de cobrança/contato, use request_purchaser_info primeiro."

Configuração

Variáveis principais em ~/.config/pop-pay/.env. Veja ENV_REFERENCE.md para a lista completa.

VariávelPadrãoDescrição
POP_ALLOWED_CATEGORIES["aws","cloudflare"]Categorias de fornecedores aprovadas — veja Cookbook de Categorias
POP_MAX_PER_TX100.0Máximo em USD por transação
POP_MAX_DAILY500.0Máximo em USD por dia
POP_BLOCK_LOOPStrueBloquear loops de alucinação/repetição
POP_AUTO_INJECTtrueHabilitar injeção de cartão via CDP
POP_GUARDRAIL_ENGINEkeywordkeyword (custo zero) ou llm (semântico)

Modo Guardrail

keyword (padrão)llm
MecanismoCorrespondência de palavras-chave na string de raciocínioAnálise semântica via LLM
CustoZero — sem chamadas de APIUma chamada de LLM por solicitação
Melhor paraDesenvolvimento, fluxos de trabalho de baixo riscoProdução, transações de alto valor

Para habilitar o modo LLM, veja Guia de Integração §1.

Provedores

ProvedorDescrição
BYOC (padrão)Traga Seu Próprio Cartão — credenciais de cofre criptografadas, injeção CDP local.
Stripe IssuingCartões virtuais reais via API Stripe. Requer POP_STRIPE_KEY.
LithicAdaptador multi-emissor (Stripe Issuing / Lithic).
MockModo de teste com números de cartão gerados para desenvolvimento.

Prioridade: Stripe Issuing → BYOC Local → Mock.

Segurança

CamadaDefesa
Isolamento de ContextoCredenciais de cartão nunca entram na janela de contexto do agente ou em logs
Cofre CriptografadoAES-256-GCM com sal dividido por XOR e derivação de chave scrypt nativa (Rust)
Proteção TOCTOUDomínio verificado no momento da injeção CDP — bloqueia ataques de redirecionamento
Redação de RepresentaçãoMascaramento automático (****-4242) em todas as respostas MCP, logs e tracebacks

Veja THREAT_MODEL.md para a análise STRIDE completa e COMPLIANCE_FAQ.md para detalhes empresariais.

Arquitetura

  • TypeScript — servidor MCP, mecanismo de injeção CDP, guardrails, CLI
  • Rust (napi-rs) — camada de segurança nativa: armazenamento de sal dividido por XOR, derivação de chave scrypt
  • Node.js crypto — criptografia de cofre AES-256-GCM (binding OpenSSL)
  • Chrome DevTools Protocol — injeção direta no DOM via WebSocket bruto

Documentação

Conjunto de Dados de Pesquisa e Reprodução

Este repositório hospeda o conjunto de dados de código aberto e o ambiente para a metodologia de estabilidade de atacante entre fornecedores descrita no artigo de pesquisa correspondente. Artefatos de reprodução para revisores/pesquisadores:

  • Corpus (585 payloads de ataque, 11 categorias): tests/redteam/corpus/
    • attacks.json — conjunto completo de payloads com rótulos de categoria
    • GENERATION.md — protocolo de geração do corpus
    • schema.json — esquema de payload
  • JSONLs de execução (26.325 linhas, 9 modelos × 585 payloads × N=5): tests/redteam/runs/
    • Execuções PRIMARY whitebox sem feedback: runs/adaptive/2026-04-28T19-50-*
    • Execuções de painel estático: runs/static/
    • Ablação de prompt (v3 / estrito / paranóico): runs/ablation/
  • Hashes de manifesto: tests/redteam/runs/MANIFEST.sha256 — integridade em nível de byte para todos os artefatos
  • Metadados Croissant 1.0 (campos Core + RAI): paper-artifacts/croissant.json
  • Scripts de reprodução (regenerar tabelas/figuras do artigo a partir de JSONL):
    • python3 paper-artifacts/gen-tables.py --table all — Tab.~bypassk / ablação de ameaças / entre fornecedores
    • python3 paper-artifacts/gen-taxonomy-map.py — Fig.~taxonomy-map
  • Licença: corpus CC BY-SA 4.0, ambiente MIT.

Para esquema do conjunto de dados, metodologia estatística (bootstrap CI, Holm-Bonferroni, McNemar), instruções completas de re-coleta do zero, dicionário de dados de linhas JSONL e política de divulgação responsável, veja docs/PAPER_REPRODUCTION.md.

Licença

MIT