Sobre el proyecto

Mergepay API es el servicio backend de Mergepay, una aplicación de liquidación grupal nativa de Stellar. Maneja autenticación, lógica de grupos y gastos, liquidación en cadena, integración con Stellar, tesorería multisig y flujos de anclaje SEP-24. El sistema se basa en la cadena de bloques de Stellar. Cada liquidación es un pago real en cadena: el inicio de sesión usa autenticación de cartera SEP-10, los pagos llevan un memo `MP:<código>` que los vincula a un gasto específico, los saldos se liquidan en XLM o USDC a través de líneas de confianza, las tesorerías compartidas usan multisig de Stellar, y la conversión fiduciaria entra y sale mediante anclas SEP-24. El servidor nunca guarda claves privadas de usuarios: construye sobres de transacción XDR sin firmar que la cartera del usuario firma antes de enviarlos a Horizon. Arquitectura: La API es un backend de Fastify + TypeScript respaldado por PostgreSQL. Se comunica con un frontend de Next.js mediante REST con autenticación JWT Bearer. Un trabajador en segundo plano maneja el envío de liquidaciones y el sondeo de anclas SEP-24 con seguimiento de trabajos basado en reclamos y recuperación de procesos bloqueados. Características clave incluyen: - Autenticación basada en cartera SEP-10 donde la clave pública del usuario es su identidad - Flujo de liquidación: la API construye un XDR de pago sin firmar con origen, destino, activo, monto y memo, lo registra como pendiente, la cartera lo firma, y la API valida el XDR firmado contra la intención almacenada antes de enviarlo a Horizon - Expiración de intención de transacción con plazos controlados por el servidor y tolerancia acotada de desviación de reloj - Tesorerías grupales compartidas usando multisig de Stellar para retiros que requieren múltiples firmantes - Puentes de depósito y retiro de anclas SEP-24 para conversión fiduciaria a Stellar - Protección de idempotencia en la ejecución de liquidaciones para prevenir envíos duplicados - Limitación de tasa integral por ruta con contadores compartidos respaldados por base de datos entre instancias - Límites de tamaño de solicitud en cuerpos JSON y cargas multiparte - Modo estricto de TypeScript aplicado en todo el código base - Todos los cuerpos de solicitud de API validados con Zod El proyecto requiere Node.js 20+ y PostgreSQL 14+ para ejecutarse. Puede desplegarse en Render, Fly.io o Railway con un Postgres aprovisionado de proveedores como Neon, Supabase o RDS. Las pruebas se ejecutan sin base de datos ni red usando Prisma y Horizon simulados, cubriendo el motor de liquidación, matemáticas de dinero, desafío/verificación SEP-10, validación de XDR firmado y rutas de autenticación. Un archivo `docs/api.http` incluido proporciona una colección de REST Client para exploración local de la API.