Frisk

Avalie a contraparte de um pagamento x402 antes que seu agente efetue o pagamento: uma ferramenta determinística retorna allow/review/block com justificativas, e não faz nenhuma chamada de rede por padrão.

Documentação

Frisk

CI npm PyPI npm License: MIT

Triagem de risco pré-transação para agentes de IA autônomos.

Antes de seu agente pagar um vendedor x402 ou chamar uma ferramenta desconhecida, pergunte ao Frisk se a contraparte é confiável e se a transação está de acordo com sua política. O Frisk retorna um veredito — allow, review ou block — com uma pontuação de confiança e motivos legíveis por humanos. É consultivo: seu agente permanece no controle da decisão.

import { Client } from "frisk-screen";

const client = new Client(); // lite mode, no key required

const result = await client.screen("0x9a3f1b2c3d4e5f60718293a4b5c6d7e8f9a0bc12", {
  endpoint: "https://api.seller.x402/quote",
  amount: 2.5,
  asset: "USDC",
  policy: { maxPerCall: 5.0 },
});

if (!result.allowed) {
  console.log(result.verdict, result.trustScore, result.reasons);
}

Superfícies

SuperfíciePacoteFonte
SDK TypeScriptfrisk-screen (npm)typescript/
SDK Pythonfrisk-screen (PyPI)python/
Servidor MCPfrisk-mcp (npm)mcp/

Ambos os SDKs expõem o mesmo modelo: um Client com uma chamada screen(), um modo lite que roda localmente com zero dependências e um modo hospedado opcional para histórico de reputação e inteligência de ameaças em tempo real.

Servidor MCP

Para agentes que não podem importar uma biblioteca e para fazer a pergunta interativamente, as mesmas verificações estão disponíveis como um servidor MCP que expõe uma ferramenta, screen_payment:

{
  "mcpServers": {
    "frisk": {
      "command": "npx",
      "args": ["-y", "frisk-mcp"]
    }
  }
}

Sem chave de API e sem conta: sem configuração, ele faz a triagem inteiramente na sua máquina. Ele está listado no registro MCP como dev.tryfrisk/frisk.

Uma ferramenta MCP é executada somente quando um modelo escolhe chamá-la, então uma verificação que o modelo pode pular é uma garantia mais fraca do que a mesma verificação no caminho de código que assina o pagamento. Onde o dinheiro realmente se move, prefira o SDK. Detalhes em mcp/.

Modo Lite vs. hospedado

Lite (padrão)Hospedado (chave de API)
ExecuçãoLocal, offlineAPI Frisk
SinaisSomente verificações públicas e estruturaisGrafo de reputação, modelos treinados, feed de ameaças
ConfiançaSempre lowAumenta com a cobertura
CustoGratuitoBaseado no uso

O modo Lite detecta problemas óbvios — contrapartes malformadas, swaps payTo, endpoints inseguros, violações de política e uma pequena lista de bloqueio inicial — sem uma chamada de rede. A API hospedada (https://api.tryfrisk.dev) adiciona histórico de reputação e inteligência de ameaças atualizada continuamente.

O que um veredito cobre

O Frisk faz a triagem de quem você está pagando. Um allow significa que nada desqualificante foi encontrado pelas verificações para as quais você forneceu informação suficiente para executar: a contraparte é interpretada como um endereço e não está na lista de bloqueio, o payTo que o endpoint solicitou corresponde à contraparte que você nomeou, o endpoint é servido via HTTPS e o valor e o ativo estão dentro da política que você forneceu. Uma verificação cuja entrada você omitir não é executada e não falha — omita observedPayTo e nenhuma comparação de payTo acontece. No modo hospedado, um allow também significa que nenhum histórico de reputação adverso foi encontrado.

Ele não diz nada sobre o que vem de volta. Se a resposta corresponde à forma que você esperava, contém os dados pelos quais você pagou ou vale o preço é uma questão separada, e o Frisk deliberadamente não responde a ela. Verificar o contrato da resposta vale a pena; isso pertence depois da chamada, no lado do comprador, contra a própria definição do comprador de uma resposta satisfatória.

Um allow também não é uma afirmação de segurança em geral. No modo lite, a confiança é sempre low, porque as verificações são estruturais: uma contraparte sem histórico e sem defeitos é triada da mesma forma que uma com um longo histórico limpo. O veredito é uma entrada para sua decisão, e é por isso que é consultivo.

Princípios de design

  • Consultivo, não no caminho. O Frisk nunca retém seus fundos ou bloqueia um pagamento por conta própria; ele retorna um veredito e seu código decide.
  • Zero dependências em tempo de execução. O SDK TypeScript é construído na API fetch da plataforma (Node, Bun, Deno, Workers, navegador); o SDK Python usa apenas a biblioteca padrão.
  • Tipado. Ambos os SDKs são distribuídos com informações de tipo completas.

Contribuindo

Veja CONTRIBUTING.md. Divulgações de segurança: SECURITY.md.

Licença

MIT

A API hospedada em api.tryfrisk.dev é adicionalmente regida pelos Termos de Serviço.