callx402
Diagnóstico de pagos x402 de solo lectura: diagnosticar, evidencia, explicar, recuperar, resolver, estado. Cero dependencias
Documentación
Payload — Infraestructura para desarrolladores para x402, pagos de agentes e ingresos programables. PAYLOAD → VEYLINE (producto insignia) → CALLX402 (capa de acción) → REVRULE (separado) → productos para desarrolladores → utilidades gratuitas. Este repositorio: callx402 by Payload — la capa de acción universal hacia la infraestructura x402 de Veyline.

Desarrollado por Veyline. Cuando x402 falla, callx402.
callx402 es la capa de acción universal hacia la infraestructura x402 de Veyline. Di lo que necesitas en lenguaje natural (o usa un endpoint HTTP) y callx402 lo enruta al sistema de producción que hace el trabajo real: diagnosticar un pago x402 roto, rescatar una transacción fallida, enrutar un trabajo de agente a la ruta viable más barata, resolver el estado de liquidación a partir de evidencia en cadena, o ejecutar bajo un presupuesto explícito con reglas de seguridad de cierre ante fallo.
Por qué existe: los fallos de x402 son costosos y opacos. Un intento de liquidación termina en settlement_pending y nadie sabe si el dinero se movió. Una respuesta 402 que tu wallet malinterpreta. Un reintento que firma una segunda autorización para la misma intención y paga dos veces. callx402 existe exactamente para esos momentos: diagnose fija el fallo a una etapa, rescue clasifica el incidente, resolve resuelve la cuestión a partir de evidencia, route encuentra la ruta viable más barata, execute ejecuta bajo un presupuesto estricto.
Pruébalo (dos minutos, sin configuración, sin cuenta):
npm install -g callx402
callx402 status
callx402 'complete this job for under $1'
status imprime un informe honesto de accesibilidad por subsistema, sin necesidad de credenciales. La línea de intención analiza y planifica tu solicitud, y luego se detiene antes de ejecutar nada: sin un endpoint de herramienta en vivo conectado, informa "no hay ruta ejecutable disponible", por lo que no se mueve dinero. (Usa comillas simples: con comillas dobles tu shell consumiría el $1.)
Verificaciones gratuitas de solo lectura contra el rail de Payload en vivo:
curl https://payload-rail.fly.dev/v1/callx402/actions
curl 'https://payload-rail.fly.dev/v1/callx402/quote?action=diagnose'
El primero devuelve el catálogo de acciones pagadas con precios; el segundo devuelve una cotización de precio gratuita para una acción. Invocar una acción del rail se paga por acción mediante checkout (ver https://payloadhq.github.io/agents.json); estos comandos nunca pagan nada.
Si te ahorra una sesión de depuración, dale una estrella al repositorio y sigue leyendo.
Servidor MCP: conéctate en 60 segundos
Este repositorio incluye un servidor MCP de solo lectura, sin dependencias (mcp/index.js, solo stdlib de node, transporte stdio) que expone seis herramientas de diagnóstico x402_*. Nada aquí cobra, ejecuta, reintenta o reembolsa.
git clone https://github.com/Payloadhq/callx402
# no npm install needed for the MCP server
Agrega este bloque a la configuración de tu cliente MCP (reemplaza la ruta) y luego reinicia el cliente:
| Cliente | Archivo de configuración |
|---|---|
| Claude Desktop | claude_desktop_config.json (~/Library/Application Support/Claude/ en macOS, %APPDATA%\Claude\ en Windows) |
| Cursor | ~/.cursor/mcp.json (ámbito de usuario) o .cursor/mcp.json (ámbito de proyecto) |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
{
"mcpServers": {
"callx402": {
"command": "node",
"args": ["/absolute/path/to/callx402/mcp/index.js"]
}
}
}
Pide al cliente que liste sus herramientas MCP: las seis herramientas x402_* deberían aparecer. Notas por cliente y el handshake de prueba stdio sin procesar: integrations/mcp-clients/.
Nota: x402_status funciona sin configuración. Las otras cinco herramientas se despachan al árbol de subsistemas v2.0.0, por lo que informan subsystem_unreachable hasta que CALLX402_V2_ROOT apunte al árbol (ver "Comandos de subsistema completos" arriba) y la bandera correspondiente esté habilitada.
La relación
- PAYLOAD = la empresa matriz.
- VEYLINE = infraestructura de producción para x402 + MCP. La marca insignia.
- CALLX402 BY PAYLOAD = la capa de respuesta/acción x402, impulsada por Veyline. La acción de entrada a la infraestructura de producción de Veyline, no el nombre insignia. Nada aquí renombra a Veyline.
Ruta de descubrimiento: un desarrollador que busca x402 encuentra callx402, lo usa y aprende sobre Veyline. Payload no está afiliado a la x402 Foundation.
Qué hace
- Diagnosticar un fallo de x402 o MCP
- Rescatar una transacción fallida (restringido por autenticación)
- Enrutar un trabajo de agente pagado a la ruta viable más barata
- Resolver el estado de liquidación a partir de evidencia en cadena
- Ejecutar bajo un presupuesto explícito, con reglas de seguridad de cierre ante fallo
Lenguaje de uso conductual (no afirmaciones de marca):
- "¿Necesitas diagnosticar x402? callx402."
- "¿Necesitas rescatar una transacción? callx402."
- "¿Necesitas enrutar un trabajo de agente pagado? callx402."
- "¿Necesitas certeza de liquidación? callx402."
- "¿Necesitas ejecutar bajo un presupuesto? callx402."
Inicio rápido
1. Instalación
npm install -g callx402
O localmente en un proyecto: npm install callx402 (el binario está entonces en node_modules/.bin/callx402).
Alternativa, instala directamente desde GitHub:
npm install Payloadhq/callx402
Desarrollo local:
git clone https://github.com/Payloadhq/callx402
cd callx402
npm install
npm link # exposes the `callx402` command
2. Primera ejecución: qué funciona sin configuración
callx402 status
callx402 'complete this job for under $1'
status es el punto de partida honesto: un informe de accesibilidad por subsistema. En una instalación npm básica, lee 0/15 subsystems reachable, lo cual es esperado (ver paso 3). La línea de intención planifica en lenguaje natural y se detiene antes de la ejecución, por lo que siempre es segura de ejecutar; usa comillas simples para que tu shell no consuma $1.
Verificaciones gratuitas de solo lectura contra el rail de Payload en vivo (sin cuenta, sin claves):
curl https://payload-rail.fly.dev/v1/callx402/actions
curl 'https://payload-rail.fly.dev/v1/callx402/quote?action=diagnose'
Estas devuelven el catálogo de acciones pagadas con precios y una cotización de precio gratuita para una acción. Invocar una acción del rail se paga por acción mediante checkout (puerta de entrada de máquina: https://payloadhq.github.io/agents.json); nada aquí paga nada.
3. Runtime autoalojado (avanzado, opcional)
Por defecto, cada comando de subsistema se enruta al rail alojado — sin configuración necesaria. Si prefieres ejecutar todo en tu propia máquina, establece CALLX402_LOCAL=1 y apunta CALLX402_V2_ROOT al árbol v2.0.0 (el x402 Paid API Starter Kit, un producto separado):
export CALLX402_LOCAL=1
export CALLX402_V2_ROOT=/path/to/x402-paid-api-starter-kit/v2.0.0
callx402 status # now: 15/15 reachable, 0/15 enabled
Sin CALLX402_LOCAL=1, estos comandos usan el rail alojado en su lugar — ese es el camino estándar y no necesita nada más que el paquete npm.
(El valor predeterminado es un directorio x402-paid-api-starter-kit/v2.0.0 junto a tu checkout de callx402.)
Los subsistemas están deshabilitados por defecto; status nombra la bandera que habilita cada uno. Establece una bandera y luego ejecuta su comando:
export PAYLOAD_MCP_DOCTOR=1
callx402 diagnose --target 'https://api.example.com/x402/pay'
Más ejemplos (cada uno necesita su bandera de subsistema habilitada; ejecuta callx402 status para ver los nombres de las banderas):
callx402 rescue --incident inc_123
callx402 route --goal 'fetch 100 product prices for under 0.50 USD'
callx402 resolve --evidence '{"txHash":"0xabc..."}'
Nota las comillas simples: el texto del objetivo contiene cantidades estilo $ que un shell expandiría dentro de comillas dobles.
Alternativa al árbol local: ejecuta en modo remoto contra tu propio servidor callx402 (server/index.js):
export CALLX402_MODE=remote
export CALLX402_REMOTE_URL=http://127.0.0.1:8787
SDK de JavaScript
const { callx402 } = require('callx402');
const result = await callx402({
intent: 'complete this job for under $1',
maxBudget: 1.00,
networks: ['base'],
assets: ['USDC'],
approvalThreshold: 5.00,
idempotencyKey: 'job-42',
});
SDK de Python
import callx402
result = callx402.callx402(
intent="complete this job for under $1",
max_budget=1.00,
networks=["base"],
assets=["USDC"],
approval_threshold=5.00,
idempotency_key="job-42",
)
Servidor HTTP
CALLX402_PORT=8787 node server/index.js
curl -X POST http://127.0.0.1:8787/call \
-H 'Content-Type: application/json' \
-d '{"intent":"complete this job for under $1","maxBudget":1.00,"dryRun":true}'
Superficie HTTP completa: server/openapi.yaml (servida en vivo en GET /openapi.json).
Comandos
| Comando | Qué hace |
|---|---|
callx402 "natural language intent" | Modo de intención: analizar, planificar, verificar presupuesto, enrutar, ejecutar |
callx402 status [--json] | Accesibilidad de subsistemas y estado de banderas |
callx402 diagnose [--target ...] | Diagnosticar un fallo de x402 / MCP |
callx402 rescue --incident <id> | Rescatar una transacción (restringido por autenticación) |
callx402 route --goal <text> | Enrutar un trabajo pagado a la ruta viable más barata |
callx402 resolve --evidence <json|@file> | Resolver el estado de liquidación a partir de evidencia |
callx402 doctor | Ejecutar las verificaciones del doctor MCP |
callx402 execute --intent <text> [--max-budget N] [--dry-run] | Ejecutar bajo un presupuesto explícito |
callx402 monitor [--once|--watch] | Observar el estado de subsistemas/incidentes |
callx402 preflight | Verificaciones previas antes de una ejecución pagada |
callx402 inspect [--query <text>] | Inspeccionar el grafo de capacidades / estado |
callx402 evidence <operationId> [--dir <path>] | Mostrar evidencia registrada para una operación (solo lectura) — solo MCP/rail en 1.0.1, no un comando CLI publicado |
callx402 explain <operationId> [--dir <path>] | Evaluación de estado en lenguaje natural para una operación (solo lectura) — solo MCP/rail en 1.0.1, no un comando CLI publicado |
callx402 recover <operationId> [--identity <id> | --evidence <json>] | Decisión de recuperación segura: RECOVERABLE / SAFE_RETRY / HUMAN_REVIEW (solo lectura) — solo MCP/rail en 1.0.1, no un comando CLI publicado |
callx402 config list | get <k> | set <k> <v> | Gestionar configuración local |
Comandos de subsistema (diagnose, rescue, route, resolve, doctor, monitor, preflight, inspect) necesitan el árbol v2.0.0 más la bandera de funcionalidad correspondiente (ver "Comandos de subsistema completos" arriba); sin ellos, salen con código 3 y no hacen nada. status, el modo de intención y config funcionan sin configuración.
Modos de ejecución
callx402 funciona de fábrica. Hay dos modos:
| Modo | Qué es | Costo | Configuración | Qué obtienes |
|---|---|---|---|---|
| CLI de callx402 — Alojado (predeterminado) | El paquete npm como cliente ligero del Payload Rail alojado | Cotización gratuita, luego pago por acción (p. ej., diagnose $0.10, resolve $0.25 en la ruta x402) | npm install callx402 — sin configuración | diagnose, resolve, recover, preflight, evidence, explain y más, ejecutados en el servidor: cotización gratuita primero, pago verificado exactamente una vez en cadena, invocación medida y auditable, resultado devuelto. |
| Runtime de callx402 — Autoalojado (avanzado) | CLI + el árbol de runtime v2.0.0 (CALLX402_LOCAL=1, CALLX402_V2_ROOT establecidos) | Gratis | Apunta CALLX402_V2_ROOT al árbol del x402 Paid API Starter Kit v2.0.0 + habilita banderas de funcionalidad | Ejecución local completa en tu máquina contra la evidencia que proporciones. Análisis de solo lectura; nunca firma, nunca reintenta, nunca mueve dinero. |
Un npm install callx402 simple te da el modo alojado — sin árbol separado, sin configuración, sin claves. El árbol v2 nunca es necesario para el uso estándar.
Diagnósticos pagados únicos (sin suscripción)
Las herramientas CLI y MCP anteriores son el nivel local gratuito: diagnósticos de solo lectura que nunca cobran, nunca ejecutan y nunca mueven dinero. Cuando un diagnóstico gratuito no es suficiente — necesitas una invocación pagada, medida y auditable con cotización antes del pago y semántica de pago exactamente una vez — cada acción también está disponible como acción de rail pagada única. Sin suscripción, sin cuenta: cotiza y luego paga deliberadamente.
Qué compra el pago: el rail autoriza la acción, valida el pago exactamente una vez en cadena, mide la invocación contra tu organización, la registra para auditoría, aplica reglas de gobernador/cuota para suscriptores — y luego ejecuta el diagnóstico de solo lectura en el servidor y devuelve el resultado. Sin configuración local, sin árbol separado, sin claves. El rail nunca falsifica la ejecución: cada resultado es producido por los módulos de diagnóstico sobre la evidencia que proporciones.
El flujo alojado de cotización antes del pago:
# 1. Obtain a free quote. No money moves.
curl "https://payload-rail.fly.dev/v1/callx402/quote?action=resolve&path=x402"
# 2. Run the interactive client. Pay explicitly by card or with USDC.
# For USDC redemption, the paying wallet must EIP-191-sign the exact
# authorization message displayed by the CLI.
callx402 resolve --evidence '{"txHash":"0x..."}'
# 3. Agents with an external wallet-produced signature can redeem the
# ORIGINAL canonical quote with a signed authorization file:
callx402 resolve --evidence '{"txHash":"0x..."}' \
--tx-hash 0xYOUR_SETTLED_PAYMENT_HASH \
--payer-auth @signed-auth.json --approve
Un hash de transacción público por sí solo nunca autoriza una acción. La autorización firmada vincula la wallet que paga, la acción, el hash de transacción, la cotización, el destinatario, la red y las entradas de la solicitud. Conserva el quote_inputs original con la autorización firmada; solicitar una nueva cotización no autoriza un pago anterior. Nunca le des a Payload una clave privada, frase semilla o frase de recuperación de wallet. El canje de wallet de contrato EIP-1271 no está habilitado actualmente. Los créditos de Stripe usan una ruta de canje separada.
Programa de tarifas en vivo: GET https://payload-rail.fly.dev/v1/callx402/actions (responde "model":"paid on-demand per action; no subscription required"). El precio de la ruta x402 es la tarifa de la ruta Stripe dividida por 20 — por ejemplo, resolve es $5.00 vía Stripe, $0.25 vía la ruta x402. Nunca reintentes a ciegas un pago para alcanzar una acción pagada: obtén la cotización primero.
Mapa de problema a acción (qué acción pagada responde a qué fallo, con la ruta CLI/MCP gratuita para cada uno): docs/problem-map.md.
Integraciones
Puntos de entrada funcionales para marcos de agentes, automatización, clientes MCP y facilitadores x402 — todos en integrations/ y probados contra el rail en vivo:
- LangChain — 9 herramientas (
integrations/langchain/): diagnosticar, recuperar, resolver, evidenciar, explicar, reintento seguro, riesgo de pago duplicado, verificación previa, más el cronograma de tarifas en vivo gratuito - CrewAI — las mismas acciones que CrewAI Tools (
integrations/crewai/) - n8n — flujo de trabajo de guardia de incidentes importable (
integrations/n8n/): mapea un incidente a una acción de callx402, obtiene la cotización en vivo gratuita, se invoca cuando tiene credenciales, de lo contrario emite instrucciones de pago — nunca paga automáticamente - Clientes MCP — configuración de Claude Desktop / Cursor / Windsurf para el servidor MCP
gratuito de solo lectura (
integrations/mcp-clients/) - Facilitadores x402 —
settle-guard.js(integrations/facilitator/): resolver el estado de liquidación a partir de la evidencia antes de re-transmitir un pago
Mapa de problema → acción: docs/problem-map.md.
Puerta de entrada de máquina para agentes: https://payloadhq.github.io/agents.json.
Reglas de seguridad del dinero
- La liquidación DESCONOCIDA nunca se reintenta automáticamente ni se reembolsa.
- Las intenciones que exceden el presupuesto se rechazan sin efectos secundarios.
- Los umbrales de aprobación fallan de forma cerrada.
- Las claves de idempotencia deduplican — las repeticiones devuelven el original, nunca re-ejecutan.
- Los subsistemas deshabilitados o inalcanzables fallan de forma cerrada — el éxito nunca se falsifica.
- Sin custodia — callx402 despacha trabajo; nunca retiene fondos ni claves privadas.
Lo que callx402 no es
- No es el nombre del producto insignia. El producto es Veyline.
- No es un corredor, negociador o custodio. Despacha; nunca retiene fondos.
- Las frases anteriores son lenguaje de uso, no afirmaciones de exclusividad.
Enlaces
- Documentación canónica: https://payloadhq.github.io/
- Perfil de la organización Payload: https://github.com/Payloadhq/Payloadhq
- RevRule de Payload (producto separado): https://github.com/Payloadhq/revrule-console
Referencia completa del subsistema: docs/README.md. Lenguaje de comportamiento: docs/ACTION_LANGUAGE.md.
Especificación de diseño: SPEC.md.
Licencia
MIT. Ver LICENSE.
Más de Payload · payloadhq.github.io · todos los repos de Payload
Relacionados: x402-manifest-check · x402-observatory · flow-agentic-demo