Arquitectura Técnica
Candidatura al premio SCF Build · Pista de Integración
Proyecto: Agentes Comunitarios REAL8: inclusión financiera sobre Stellar, en toda América Latina
Versión: 1.1 · 23/04/2026
1. Resumen ejecutivo
REAL8 es un activo nativo de Stellar lanzado en 2018 con una misión de inclusión financiera en comunidades desatendidas. Esta propuesta describe lo que REAL8 construirá si se le concede un SCF Build Award: una red de agentes comunitarios — una plataforma de operadores independientes, con presencia local, que compran y venden REAL8 a cambio de una comisión, acercando el activo a personas excluidas de los circuitos bancarios convencionales. El despliegue inicial es una red piloto en México, El Salvador, Venezuela y Argentina — una primera fase deliberadamente multipaís que nos permite validar el modelo en distintas realidades regulatorias, bancarias y cambiarias antes de expandirlo al resto de América Latina y, después, a otras regiones donde existen las mismas necesidades estructurales. Venezuela está incluida como mercado específicamente habilitado ahora que el levantamiento parcial de las sanciones de la OFAC al Banco Central de Venezuela (Licencia General nº 57, abril de 2026) ha eliminado el riesgo legal previo que bloqueaba este tipo de trabajo.
La red se construye sobre la infraestructura ya existente de REAL8: aplicación de monedero, puente multicadena, servidor de federación SEP-2, integración con MoneyGram y pasarela de pago Stripe — todos ya en producción. Con este Build Award, REAL8 construirá las superficies nuevas necesarias para lanzar la red de agentes: alta del agente, anclaje del contrato, supervisión on-chain de la actividad, pago de bonificaciones, paneles de agente y de administración, y medidas de mitigación de fraude.
2. Alcance del proyecto
Entregables dentro del alcance (ventana de 3 a 5 meses)
- Flujo de alta del agente — recogida de documentación KYC, cribado de riesgo (OFAC SDN, PEP), flujo de aprobación, vinculación de cuenta Stellar.
- Firma del contrato y anclaje on-chain — contrato en PDF firmado fuera de cadena, hash SHA-256 anclado en Stellar mediante una transacción con memo, más una firma tipo SEP-10 en la que el agente firma con su clave para registrar la aceptación de los términos en cadena.
- Panel del agente — tablero de autoservicio para cada agente: operaciones, conteo de clientes únicos, bonificación mensual estimada, histórico de pagos, uso de límites.
- Panel de administración (equipo REAL8) — aprobación de agentes, suspensión, auditoría, revisión manual de bonificaciones grandes, panel de señales de fraude.
- Indexador de actividad on-chain — indexador respaldado por PostgreSQL que sigue los pagos salientes de REAL8 desde las cuentas Stellar de los agentes, los clasifica (venta a cliente, transferencia interna, dirección excluida) y mantiene agregados mensuales.
- Tarea mensual de bonificación — proceso programado que calcula la bonificación del 5% por agente, verifica el umbral de 25 clientes únicos y paga automáticamente en REAL8 a la cuenta Stellar del agente (con un umbral configurable por encima del cual se requiere auditoría manual).
- Capa de mitigación de fraude — antigüedad mínima de cuenta, tamaño mínimo de transacción, detección de patrones sospechosos, lista blanca para transferencias que no son ventas.
- Interfaz bilingüe (español e inglés) — siguiendo las convenciones de internacionalización ya establecidas en el monedero REAL8.
Expresamente fuera de alcance
- Custodia de efectivo o depósitos en garantía — el agente opera con su propio inventario de REAL8; REAL8.org nunca custodia sus activos ni su dinero fiduciario.
- KYC del cliente final — el agente es responsable de conocer a su cliente.
- Contratos de gobernanza en Soroban — se considerará en una segunda versión; no entra en este premio Build.
3. Arquitectura general
┌───────────────────────┐ ┌───────────────────────────┐
│ agent.real8.org │ │ admin panel (w.real8) │
│ (agent dashboard) │ │ (REAL8 team operations) │
└──────────┬────────────┘ └────────────┬──────────────┘
│ │
▼ ▼
┌───────────────────────────────────────────────────────────────┐
│ api.real8.org (Express + TypeScript) │
│ /agents · /agents/:id · /agents/:id/bonification · /admin/* │
└──────────────────────────────┬────────────────────────────────┘
│
┌────────────────────────┼────────────────────────┐
▼ ▼ ▼
┌──────────┐ ┌─────────────────┐ ┌─────────────────┐
│PostgreSQL│ │ OFAC / SDN API │ │ Stellar Horizon │
│ real8_ │ │ (Treasury gov) │ │ (public node) │
│ bridge │ └─────────────────┘ └─────────────────┘
└──────────┘
│
▼
┌────────────────────────────────────────────────────────────────┐
│ Background services │
│ │
│ agent-activity-indexer monthly-bonification-job │
│ (follows agent accounts, (runs 1st of month, │
│ classifies payments) pays 5% to qualifying agents) │
└────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────┐
│ Stellar Public Network │
│ │
│ REAL8 issuer · Agent accounts · Bonification distribution │
│ Federation ([email protected]) · Contract-anchor transactions │
└────────────────────────────────────────────────────────────────┘
Todos los componentes nuevos se integran detrás del back-end Express existente de api.real8.org y comparten su base de datos PostgreSQL (real8_bridge), capa de autenticación, middleware de geobloqueo MaxMind, limitadores de tasa y servicio de correo Postmark. El indexador y la tarea de bonificación se ejecutan como procesos PM2 adicionales junto a los servicios existentes real8-moneygram-api y bridge-automation.
4. Piezas de Stellar integradas
La Pista de Integración es específicamente para proyectos que «incorporan piezas existentes de Stellar». Esta propuesta integra:
| Pieza | Uso |
|---|---|
| Federación SEP-2 | Cada agente recibe una dirección de federación [email protected] mediante el servidor de federación ya en producción (tabla federation_records). Los clientes operan con direcciones legibles en lugar de cuentas G... sin procesar. |
| Autenticación web SEP-10 | El inicio de sesión del agente en el panel usa autenticación SEP-10, reutilizando el endpoint /auth y el flujo de firma ya utilizados para MoneyGram. Se adapta añadiendo una transacción XDR de «aceptación de términos» que el agente firma para dejar constancia de la firma del contrato en cadena. |
| Multifirma nativa de Stellar | Las cuentas Stellar de los agentes pueden configurarse opcionalmente como multifirma 2 de 3 para mayor seguridad de inventarios grandes — multifirma nativa, sin la sobrecarga de un contrato inteligente. |
| API Streaming de Horizon | El indexador de actividad del agente usa el endpoint /accounts/:id/payments de Horizon con persistencia del cursor (patrón reutilizado de stellarMonitorService.ts, ya en producción para el puente). |
| Memos de transacción Stellar | El anclaje del contrato escribe el SHA-256 del PDF firmado en el campo memo_hash de una transacción entre REAL8 y la cuenta del agente, produciendo un registro verificable y con sello de tiempo sin infraestructura adicional. |
| Pagos clásicos de REAL8 | El pago de la bonificación es un pago estándar del activo REAL8 desde una cuenta distribuidora dedicada hacia la cuenta del agente — reutilizando el patrón de distribución con secuencia aislada que ya se usa para la pasarela Stripe. |
Todas son primitivas nativas de Stellar, probadas en producción. El proyecto no requiere extensiones personalizadas del protocolo Stellar; compone SEPs y operaciones existentes en una red de inclusión financiera coherente.
5. Modelo de datos
Tablas nuevas de PostgreSQL en la base de datos existente real8_bridge:
-- Perfil del agente CREATE TABLE agents ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), stellar_address TEXT UNIQUE NOT NULL, federation_name TEXT UNIQUE, country_iso2 CHAR(2) NOT NULL, kyc_status TEXT NOT NULL, -- pending | approved | suspended | revoked kyc_documents JSONB, contract_anchor_tx TEXT, -- hash de la tx con memo SHA-256 contract_pdf_sha256 TEXT, bonification_auto_max_usd NUMERIC(10,2), daily_volume_cap_usd NUMERIC(10,2), monthly_volume_cap_usd NUMERIC(10,2), created_at TIMESTAMPTZ DEFAULT NOW(), approved_at TIMESTAMPTZ, suspended_at TIMESTAMPTZ ); -- Estado del indexador — una fila por agente CREATE TABLE agent_activity_cursor ( agent_id UUID PRIMARY KEY REFERENCES agents(id), last_horizon_cursor TEXT, last_indexed_at TIMESTAMPTZ ); -- Pagos salientes clasificados desde la cuenta del agente CREATE TABLE agent_transactions ( id BIGSERIAL PRIMARY KEY, agent_id UUID REFERENCES agents(id), stellar_tx_hash TEXT UNIQUE NOT NULL, destination_account TEXT NOT NULL, real8_amount NUMERIC(20,7) NOT NULL, usd_equivalent NUMERIC(20,2), classification TEXT NOT NULL, -- client_sale | internal_transfer | exchange | excluded classification_reason TEXT, counted_for_bonification BOOLEAN NOT NULL, ledger_closed_at TIMESTAMPTZ NOT NULL, indexed_at TIMESTAMPTZ DEFAULT NOW() ); -- Agregados mensuales y bonificación CREATE TABLE agent_monthly_summary ( id BIGSERIAL PRIMARY KEY, agent_id UUID REFERENCES agents(id), month DATE NOT NULL, eligible_sales_real8 NUMERIC(20,7) DEFAULT 0, eligible_sales_usd NUMERIC(20,2) DEFAULT 0, unique_clients INT DEFAULT 0, unique_client_threshold INT NOT NULL, threshold_met BOOLEAN DEFAULT FALSE, bonification_real8 NUMERIC(20,7), bonification_status TEXT, -- pending | approved | paid | held_for_audit bonification_paid_tx TEXT, audit_notes TEXT, UNIQUE(agent_id, month) ); -- Lista blanca de direcciones excluidas (exchanges, monederos del propio agente, tesorería de REAL8, etc.) CREATE TABLE agent_exclusion_addresses ( stellar_address TEXT PRIMARY KEY, kind TEXT NOT NULL, -- exchange | agent_own | real8_treasury | other notes TEXT, added_at TIMESTAMPTZ DEFAULT NOW() );
Durante la tarea de bonificación se usa bloqueo a nivel de fila (SELECT ... FOR UPDATE) sobre agent_monthly_summary, siguiendo el mismo patrón atómico adoptado para los límites de liberación del puente (tabla bridge_releases, api v1.6.1).
6. Flujos principales
6.1 Alta del agente
- El aspirante a agente se registra en
agent.real8.org/signup: correo electrónico, país, cuenta Stellar (nueva o existente). - Los documentos KYC se suben a almacenamiento cifrado (envoltura AES-256-GCM, siguiendo el mismo patrón de cifrado ya empleado para las claves privadas de airdrop, api v1.6.4).
- Cribado contra la lista SDN de la OFAC mediante la API pública del Tesoro de Estados Unidos.
- El equipo de REAL8 revisa en el panel de administración, aprueba o rechaza. Tras la aprobación: se crea el registro de federación; se genera el PDF del contrato con los datos legales y Stellar del agente precargados.
- El agente firma el PDF fuera de cadena (DocuSign o equivalente — se decide en el arranque).
- Se calcula el SHA-256 del PDF firmado y se escribe en el memo de una transacción Stellar desde la tesorería de REAL8 hacia la cuenta del agente, junto con una XDR estilo SEP-10 que el agente firma para dejar constancia de la aceptación.
- El hash de la transacción de anclaje se almacena en
agents.contract_anchor_tx. El agente queda operativo.
6.2 Venta al cliente (observada, no intermediada)
REAL8.org no interviene en la transacción. El agente vende REAL8 desde su propia cuenta Stellar a un cliente que le ha pagado en moneda local. Desde nuestro lado:
- El
agent-activity-indexerconsulta Horizon/accounts/:id/paymentspara cada agente aprobado (cadencia de 30 s, cursor persistido). - Por cada pago saliente de REAL8:
- Se comprueba el destino contra
agent_exclusion_addresses→ si coincide, se clasifica comointernal_transferoexchange(no cuenta). - Se comprueba la antigüedad del destino (fecha de creación de la trustline y primera operación vía Horizon): si alguna es < 30 días, se clasifica como
pending_review(no cuenta en este ciclo, se marca para auditoría). - Se comprueba si el destino ha tenido al menos una operación previa con una contraparte distinta del agente: si no, se marca para revisión antifraude.
- Se comprueba el importe: si es < mínimo configurable (por defecto 50 REAL8 ≈ 5 $), se clasifica como
below_threshold(no cuenta). - En caso contrario se clasifica como
client_saley se inserta enagent_transactionsconcounted_for_bonification = true.
- Se comprueba el destino contra
- Agregación de clientes únicos: un esquema HyperLogLog por agente y mes (usando la extensión
hllde PostgreSQL) para contar cuentas únicas con precisión sin guardar listas completas más tiempo del necesario.
6.3 Ciclo mensual de bonificación
El día 1 de cada mes a las 03:00 UTC:
- Para cada agente aprobado, se agregan las
agent_transactionsdel mes anterior concounted_for_bonification = true. - Se aplica el umbral progresivo de clientes únicos: 5 (mes 1) → 15 (2) → 20 (3) → 25 (mes 4 en adelante).
- Si se alcanza el umbral: se calcula el 5% de bonificación en REAL8 usando la cotización REAL8/USD al cierre del periodo obtenida del servicio de precios.
- Si la bonificación >
agent.bonification_auto_max_usd(por defecto 500 $): se marca comoheld_for_audity se avisa al administrador. - En caso contrario: se ejecuta un pago atómico — bloqueo de fila sobre
agent_monthly_summary, envío del pago Stellar desde la cuenta distribuidora de bonificaciones, guardado del hash y marcado comopaid. - Se envía un correo por agente vía Postmark (bilingüe ES/EN) con el desglose detallado.
6.4 Suspensión y apelaciones
El administrador puede suspender a cualquier agente desde el panel. La suspensión detiene la indexación y congela cualquier bonificación pendiente. Las apelaciones se registran como filas en el log de auditoría para la traza de cumplimiento.
7. Diseño antifraude
El riesgo de seguridad más relevante es que un agente cree cuentas Stellar falsas como destinos y se auto-pague para cobrar la bonificación del 5% sobre actividad inexistente. El coste del ataque sin mitigaciones es de unos 3 € para 25 cuentas falsas, y la bonificación podría ser arbitrariamente alta. Mitigaciones en capas aplicadas en esta arquitectura:
- Antigüedad mínima de la cuenta (30 días) sobre las cuentas destinatarias — aumenta el coste del ataque e introduce una ventana de 30 días para detectarlo.
- Requisito de contraparte previa — el destino debe haber tenido al menos una operación previa con alguien distinto del agente, lo que rompe los esquemas puramente cerrados sobre sí mismos.
- Tamaño mínimo por transacción — por debajo de 50 REAL8 (≈ 5 $) no cuenta, lo que evita la inflación por micropagos.
- Techo configurable de pago automático — por defecto 500 $; por encima de ese importe, revisión manual.
- Detección de patrones — racimos de cuentas destino con fechas de creación compartidas, IPs compartidas (en cualquier superficie propia de REAL8 que hayan tocado) o identificadores Stellar secuenciales se marcan.
- Fianza del agente (opcional) — depósito reembolsable de 100 REAL8 en el alta, que se pierde si se detecta fraude; configurable por agente desde el panel de administración.
Las mitigaciones son de nivel de implementación y configurables — la combinación concreta a activar se confirmará con los responsables administrativos del proyecto (las decisiones del lado de negocio se siguen en la incidencia #60 de GitHub) durante el hito de arranque.
8. Pila técnica
| Capa | Tecnología | Notas |
|---|---|---|
| Frontal (paneles de agente y administración) | React 19 + Vite 8 + MUI 7 + TypeScript 5.8 | Coincide con la pila existente del monedero app.real8.org; librería de componentes compartida |
| Back-end | Express 5.2 + TypeScript 5.8 sobre Node 20 | Mismo código base que api.real8.org — se añaden rutas nuevas, no hay un servicio separado |
| Base de datos | PostgreSQL 15 | Misma instancia real8_bridge — tablas nuevas, infraestructura existente |
| SDK de Stellar | @stellar/stellar-sdk 14.6.1 | Ya en uso para puente, federación y precios |
| Tareas en segundo plano | Procesos PM2 + node-cron | Patrón probado con bridge-automation |
| Correo electrónico | Postmark mediante el servicio emailService existente | Bilingüe ES/EN |
| Geobloqueo | Middleware basado en MaxMind ya existente (api v1.6.0) | Señales de país y ASN de hosting ya en producción |
| Hosting | VPS Webdock (api.real8.org) | Infraestructura de producción actual |
No requiere infraestructura nueva. Todo el trabajo se integra limpiamente en la pila existente.
9. Entregables e hitos
| Hito | Duración | Entregable |
|---|---|---|
| H1 — Arranque y congelación del esquema | Semanas 1–2 | Configuración final de mitigaciones antifraude con los responsables administrativos; migración del esquema de base de datos; roles de usuario administrador |
| H2 — Alta del agente y anclaje del contrato | Semanas 3–5 | Flujo de registro, recogida KYC, cribado OFAC, generación del PDF, anclaje on-chain y aceptación SEP-10 |
| H3 — Indexador de actividad y lista de exclusión | Semanas 6–8 | Lector de Horizon con persistencia de cursor, motor de clasificación, interfaz de administración de exclusiones |
| H4 — Panel del agente y federación | Semanas 9–11 | Tablero del agente (operaciones, progreso de clientes únicos, bonificación estimada), emisión de [email protected] |
| H5 — Panel de administración y tarea de bonificación | Semanas 12–14 | Cola de revisión del administrador, flujo de auditoría manual, cron mensual de bonificación con pago automatizado |
| H6 — Endurecimiento, auditoría externa y lanzamiento piloto | Semanas 15–18 | Revisión de seguridad externa, pruebas de penetración, simulacros de fraude, revisión bilingüe de UX, alta de los primeros agentes piloto en México, El Salvador, Venezuela y Argentina |
Entregable final: una red de agentes operativa y auditable, con agentes piloto dados de alta y operando con REAL8 en los cuatro mercados piloto (México, El Salvador, Venezuela, Argentina), dejando a REAL8 en posición de ampliar la red a otros países de América Latina y más allá en los trimestres siguientes.
10. Equipo, patrocinador y socio tecnológico
REAL8 es la marca comercial de Hispanopedia, una organización sin ánimo de lucro española registrada en Málaga. El proyecto REAL8 lleva desplegando de forma continua sobre Stellar desde 2018. La gobernanza, el cumplimiento en lo referente a financiación y la rendición de cuentas públicas se canalizan a través de la entidad sin ánimo de lucro.
Equipo principal (12 miembros en tres continentes)
| Nombre | Rol | Ubicación |
|---|---|---|
| Rafael Minuesa (Rafael Martinez Minuesa) | CEO y Desarrollo Web · firmante con MoneyGram | Marbella, España |
| Anselmo Rodríguez Manzo | Tesorero · operaciones multipaís (responsable de la incidencia #60) | Baton Rouge, Estados Unidos |
| Christophe de Landtsheer | Director Financiero | Bruselas, Bélgica |
| Lauren Pollack | Vicepresidenta de Marketing | Nueva York, Estados Unidos |
| Eduardo Marín Aznárez | Administrador de Sistemas | Edimburgo, Escocia |
| Emmanuel Chávez | Desarrollador Multimedia y Digital | Michoacán, México |
| Ángel Benzal | Relaciones con Inversores | Cartagena, España |
| Cecilia Velazquez Vertti | Directora de Comunicación | Puebla, México |
| Madeleine Arévalo Camacho | Vicepresidenta de Relaciones Públicas | Santa Marta, Colombia |
| Lucinda Olaseinde | Responsable de Redes Sociales | Florencia, Italia |
| Carlos Fernández Andrade | Asesor Histórico Estratégico | Sevilla, España |
| Daiki Fujii | Desarrollador de Blockchain y Web3 | Tokio, Japón |
El equipo está distribuido entre Europa, las Américas y Asia, con presencia directa en dos de los cuatro mercados piloto (México, a través de Emmanuel Chávez y Cecilia Velazquez Vertti) y cobertura latinoamericana adyacente mediante Madeleine Arévalo Camacho (Colombia). La cobertura de responsables de país para los demás mercados piloto (El Salvador, Venezuela, Argentina) se articula a través de la red ampliada de colaboradores que se describe más abajo.
Fichas completas del equipo: real8.org/en/our-team/
Patrocinador — Hispanopedia
Hispanopedia es la organización sin ánimo de lucro española que patrocina y aloja legalmente el proyecto REAL8. Al ser una no-profit, la misión de inclusión financiera y educativa de REAL8 forma parte de su carta fundacional, no es un añadido sobre una entidad con ánimo de lucro. Los acuerdos, subvenciones y obligaciones de cumplimiento los firma Hispanopedia.
Socio tecnológico — ProWoos
ProWoos es el socio tecnológico fundador de REAL8; aporta un equipo de más de 30 profesionales con experiencia repartidos por nueve ubicaciones clave en el mundo, entre ellas Buenos Aires, Davao, Cracovia, Madrid, Marbella, Nueva York, Porto Alegre y Santiago de Chile. ProWoos sostiene la capacidad de ingeniería de REAL8 y aporta la disciplina de entrega continua que ha mantenido el proyecto desplegando durante ocho años. La presencia de ProWoos en Buenos Aires y Latinoamérica es directamente relevante para esta propuesta: sitúa a personal técnico en la misma franja horaria que los mercados piloto durante toda la construcción y el despliegue.
Red ampliada
REAL8 colabora además con asociaciones culturales, ONGs aliadas, personal académico, contactos en instituciones financieras y representantes de agencias gubernamentales cuyos programas están alineados con la misión. Estas relaciones apoyan la activación por país, la revisión legal local y el trabajo comunitario en los mercados piloto.
Relaciones externas relevantes para esta propuesta
- MoneyGram Payment Systems, Inc. — contraparte comercial para entrada y salida de efectivo contra USDC en el monedero REAL8. Contactos: Sergio Garzón Forero (comercial) y Tim Dugan (técnico). La firma de los Términos de Servicio v3 está prevista para finales de abril de 2026.
- Stellar Development Foundation — el ecosistema sobre el que construimos; el SCF es el programa de subvenciones al que responde esta propuesta.
11. Riesgos y dependencias
- Revisión legal — por país piloto: cada uno de los cuatro mercados piloto (México, El Salvador, Venezuela, Argentina) tiene su propio contexto regulatorio y lo gestionan en paralelo los responsables de cada país. El caso de Venezuela queda específicamente desbloqueado por la Licencia General nº 57 de la OFAC (abril de 2026), que levantó las sanciones previas sobre el Banco Central de Venezuela; la confirmación legal específica por país sigue siendo un paso obligado en cada mercado antes del piloto en producción.
- Elección del proveedor de KYC: diferida al H1. Candidatos: Sumsub, Onfido. Alternativa: recogida manual de documentos con revisión interna durante la ventana piloto.
- DocuSign o equivalente: pequeña dependencia externa para la firma del PDF fuera de cadena. Puede sustituirse por cualquier proveedor de firma que devuelva un PDF canónico cuyo SHA-256 se pueda calcular.
- Dependencia de la infraestructura de Stellar: todas las operaciones usan Horizon público; el Horizon de SDF es el objetivo principal, con nodos de la comunidad como respaldo.
12. Relación con la infraestructura REAL8 existente
Lo que REAL8 entregaría con este Build Award extiende — no reemplaza — la infraestructura de producción actual de REAL8. Componentes ya desplegados sobre los que se apoya esta propuesta:
- app.real8.org (monedero, v4.4.0) — librería de componentes compartida y primitivas de autenticación.
- api.real8.org (back-end, v1.7.0) — aquí viven las nuevas rutas de agente; se reutilizan la federación SEP-2, la autenticación SEP-10, el geobloqueo MaxMind, el correo Postmark, la pasarela Stripe y los canales de precios.
- real8-bridge (wREAL8 multicadena) — el panel del agente expone el puente wREAL8 para agentes que operan en regiones multicadena, reutilizando la automatización del puente existente.
El efecto neto es una plataforma de inclusión financiera cohesionada y anclada en Stellar, donde la red de agentes se convierte en la última milla humana de una pila tecnológica nativa de Stellar, madura y en producción.
Fuente e historial de versiones: github.com/REAL8-crypto/governance
