| Fechas | Del sábado 24 al viernes 30 de octubre de 2026 |
|---|---|
| Video | https://youtu.be/Mb_PvRvfNWw |
| Post en X | https://x.com/local402dev/status/2115198268162347431 |
Qué es Local402. Local402 permite cobrar por una API en la moneda local, con x402 en Stellar. x402 es un estándar abierto para pagar por HTTP: la API responde "402 Payment Required" con el precio, y el cliente (una persona o un agente de IA) paga y repite la petición. El vendedor pone el precio en cualquiera de 24 monedas o en UF; quien paga usa USDC, XLM o EURC en una sola transacción y el vendedor recibe el monto exacto en USDC.
Esta semana. El facilitador es el servicio que recibe el pago firmado, lo revisa, lo envía a la red y paga la comisión de la transacción. Hasta ahora solo existía el nuestro. Desde esta semana es un paquete de npm, local402-facilitator, que cualquiera puede correr con un comando o con Docker, y trae su documentación y un runbook. Una segunda instancia, instalada desde npm en una carpeta vacía sin nada de nuestro repositorio, liquidó pagos en testnet. Uno de ellos fue para kuyfi, un proyecto de otro desarrollador que corrió tal como está en GitHub.
local402-facilitator 1.0.0 en npm: se corre con npx local402-facilitator o con su Dockerfile.
keys crea las cuentas que pagan las comisiones, las fondea en testnet y solo imprime las direcciones públicas. Si ya hay llaves, no las pisa.check revisa el RPC (el servidor que conecta con la red de Stellar), el saldo de cada cuenta y el contrato FxPay antes de recibir tráfico, y sale con error si algo falla. Sirve para que un mal despliegue falle al arrancar o en CI, y no en el primer pago./health (el proceso está vivo) y /ready (puede liquidar ahora; responde 503 si una cuenta se queda sin saldo, si el RPC no responde o si falta FxPay).PAY_TO_ALLOWLIST): la instancia solo liquida para ellos y a cualquier otro le dice que no antes de gastar nada.apps/facilitator) y pasó a ser el paquete packages/facilitator. Nuestro despliegue en Vercel sigue igual.TRUST_PROXY lo diga.X-Forwarded-For (la cabecera que dice la IP original) y saltarse el límite de llamadas. Comprobado: 25 llamadas con una IP falsa distinta cada una, todas rechazadas con 429.PAY_TO_ALLOWLIST= vacío en un host de mainnet liquidaba para cualquier vendedor.