| Sprint | Instawards octubre 2026, capítulo Stellar Chile |
|---|---|
| Proyecto | Local402 |
| Builder | Diego Poveda |
| Fechas | Del sábado 17 de octubre al viernes 13 de noviembre de 2026 |
| Estado | 5 de 5 entregables, las 4 semanas enviadas en Passport |
Local402 lets an API charge in local currency with x402 on Stellar: the seller prices in any of 24 currencies or UF, the payer settles in USDC, XLM or EURC in one transaction, and the seller receives the exact USDC amount.
October Instaward, Stellar Chile chapter, one builder: 5 of 5 deliverables shipped, all 4 weeks submitted in Passport.
Still limited: FxPay has no external audit, so the mainnet facilitator stays allowlisted with a minimum amount; kuyfi runs on testnet; exact-fx is proposed upstream (x402 issue #4091). Details, transaction links and videos below, in Spanish.
Local402 permite cobrar por una API en la moneda local, con x402 en Stellar. 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.
La meta del sprint era que otro builder de Stellar pudiera llevar una ruta con precio en su moneda de cero a cobrada en una tarde, solo con los paquetes publicados y la documentación. Al empezar, Local402 era un demo: cuatro paquetes en 0.1, 41 tests de TypeScript, sin guía de integración y con un facilitador que solo existía como el nuestro.
Al cerrar: cinco paquetes en 1.0 en npm, un facilitador que cualquiera puede correr, una guía probada por alguien de fuera del proyecto, 140 tests con una revisión programada de mainnet, y kuyfi, una API de otro desarrollador, cobrando con los paquetes 1.0. Cada entregable tiene su evidencia pública abajo.
| # | Entregable | Criterio de aceptación | Evidencia |
|---|---|---|---|
| D1 | Paquetes 1.0 | Los cuatro paquetes en 1.0.0 en npm, y un ejemplo que cobra una ruta en moneda local en menos de 20 líneas y compila en CI | local402-server en npm, ejemplo de 14 líneas en examples/quickstart, ‣ |
| D2 | Un facilitador que cualquiera puede correr | Una segunda instancia, instalada desde el kit y no desde nuestro repositorio, liquida en testnet para un vendedor que no es nuestro | local402-facilitator en npm, pago a kuyfi, ‣ |
| D3 | Guía de integración y referencia de la API | Alguien de fuera del proyecto la sigue desde cero, y cada punto donde se trabó queda corregido | La corrida de Pau Koh, issue #3, guía, ‣ |
| D4 | Tests, QA y CI | CI en verde en main, los números de antes y después, y la prueba programada visible en GitHub Actions | CI, prueba programada, ‣ |
| D5 | Una API externa cobrando con Local402 | kuyfi responde 402 con precio en CLP, hay pagos en testnet con los paquetes 1.0 y el plan de mainnet está en kuyfi#2 | PR #5 de kuyfi, aceptado, plan de mainnet, ‣ |
| Al empezar el sprint | Al cerrar | |
|---|---|---|
| Paquetes en npm | 4, en 0.1.x | 5, en 1.0.0 (se sumó local402-facilitator) |
| Tests de TypeScript | 41 | 140, más 4 que necesitan testnet |
| Tests del contrato FxPay | 11 | 17 |
| Cobertura de lo que se publica en npm | 63 por ciento (medida el 18 de octubre, antes de los tests nuevos) | 83 por ciento |
| Cobertura de FxPay | 98,7 por ciento de las líneas | 100 por ciento de las líneas |
| Guía de integración | No había | 10 pasos, probada desde cero en unos 8 minutos |
| Facilitadores que liquidan | Solo el nuestro | Cualquiera, desde npm o Docker |
| APIs de otros cobrando con la 1.0 | Ninguna | kuyfi, con el cambio en su repositorio |
| Bugs encontrados y arreglados en el sprint | 5: la cotización que duraba más que el precio del oráculo, la combinación de límites que rechazaba casi todos los pagos con XLM, el X-Forwarded-For falso que saltaba el límite de llamadas, el presupuesto que dos pagos simultáneos podían pasar, y el error 500 leído como recurso gratis |
Todos con los paquetes instalados desde npm, en carpetas vacías fuera del repositorio.