Nexalo Logo

NEXALO

Institutional Logic

← Volver al protocolo
WhitepaperDocs v1.0 — Mayo 2026
Documentación Técnica

NEXALO Docs

Arquitectura, Contratos y Seguridad del Protocolo

BNB Smart Chain · Solidity 0.8.20 · Auditoría Completa

1. Arquitectura del Sistema

NEXALO es un ecosistema de 8 contratos inteligentes interconectados desplegados en BNB Smart Chain (BSC). Todos los contratos están compilados con Solidity 0.8.20 usando la opción via-ir y el optimizador a 200 runs.

// Diagrama de Arquitectura

┌─────────────────────────────────────────────────┐
│                  NexumManager                    │
│         (Core — VRFConsumerBaseV2)               │
│  ┌─────────┬──────────┬──────────┬────────────┐  │
│  │ Products│ Rounds   │ VRF     │ Settlement │  │
│  │ (6)     │ (state)  │ (rand)  │ (auto)     │  │
│  └────┬────┴────┬─────┴────┬────┴─────┬──────┘  │
└───────┼─────────┼──────────┼──────────┼──────────┘
        │         │          │          │
   ┌────▼───┐ ┌──▼─────┐ ┌─▼──────┐ ┌─▼──────────┐
   │NXLToken│ │Referral│ │Treasury│ │Ambassador  │
   │(ERC20) │ │Network │ │  BTC   │ │ Registry   │
   └────────┘ └────────┘ └────────┘ └────────────┘
        │                    │
   ┌────▼───┐           ┌───▼────┐
   │Staking │           │Buyback │
   │(WBTC)  │           │Contract│
   └────────┘           └────────┘
              

Cada contrato tiene una responsabilidad única (Single Responsibility Principle) y se comunica con los demás a través de interfaces definidas. El NexumManager es el hub central que orquesta la lógica de lotería, distribución de fondos y settlement.

2. Contratos Inteligentes

Todos los contratos heredan de OpenZeppelin v5 y siguen las mejores prácticas de seguridad:

ContratoHerenciaFunción
NXLTokenERC20, Ownable2StepToken deflacionario con rewards pool
NexumManagerVRFConsumerBaseV2, Ownable2Step, ReentrancyGuardCore de lotería, 6 productos, settlement
ReferralNetworkOwnable2Step, ReentrancyGuardReferidos multinivel (3 niveles)
TreasuryBTCOwnable2Step, ReentrancyGuardTesorería DAO en WBTC
AmbassadorRegistryOwnable2Step, ReentrancyGuardRegistro y pago de embajadores
BuybackContractOwnable2Step, ReentrancyGuardRecompra automática de NXL
NexaloStakingOwnable2Step, ReentrancyGuardStaking NXL con rewards WBTC
DonationVaultOwnable2StepVault de donaciones e impacto social

3. NXLToken — Token Deflacionario

NXLToken es un ERC-20 con supply fijo de 100,000,000 NXL y mecanismos de vesting integrados.

Distribución Inicial

Rewards Pool
96M NXL
96%
Fundador (2Y vesting)
3M NXL
3%
Partner (1Y vesting)
1M NXL
1%

Funciones Clave

// Solo NexumManager puede distribuir rewards
function distributeReward(address to, uint256 amount) external onlyNexumManager

// setNexumManager solo se puede llamar UNA vez
function setNexumManager(address _mgr) external onlyOwner

// Vesting lineal con cliff
function claimFounderVesting() external  // Solo founder, lineal 2 años
function claimPartnerVesting() external  // Solo partner, lineal 1 año

// Checkpoints para snapshot de balances (votación/DAO futuro)
function _afterTokenTransfer() // actualiza checkpoints automáticamente

Propiedades Formalmente Verificadas (Halmos)

distributeReward solo puede ser llamado por NexumManagerPROVEN ∀ inputs
distributeReward nunca incrementa el totalSupplyPROVEN ∀ inputs
setNexumManager solo puede llamarse una vezPROVEN ∀ inputs
transfer preserva el totalSupplyPROVEN ∀ inputs

4. NexumManager — Core de Lotería

El contrato más complejo del ecosistema. Gestiona 6 productos de lotería con rondas independientes, cada uno con su propio pool de premios y configuración de tickets.

Productos (Nexums)

IDNombrePrecioTicketsJackpotNXL/ticket
0⚡ FLASH$11,000$5000.10
1🎯 ORIGINAL$110,000$5,0000.25
2💎 PREMIUM$201,000$10,0000.50
3🚀 ELITE$1010,000$50,0000.55
4👑 VIP$2001,000$100,0000.85
5🌟 BLACKBLOK$20010,000$1,000,0001.00

Ciclo de Vida de una Ronda

1. OPEN       → Usuarios compran tickets (buyTickets)
2. FUNDED     → Liquidez completa, se solicita VRF
3. VRF_SENT   → Esperando número aleatorio de Chainlink
4. SETTLING   → Distribuyendo premios (settlement en chunks)
5. SETTLED    → Ronda cerrada, nueva ronda abre automáticamente

// Función principal de compra
function buyTickets(
    uint256 productId,     // 0-5
    uint256[] ticketNums,  // números elegidos
    address referrer       // address(0) si sin referido
) external nonReentrant

5. Sistema de Distribución Automática

Cuando una ronda se completa, el 100% de los fondos se distribuye automáticamente según reglas fijas e inmutables:

50%
Jackpot al Ganador
10%
Airdrops Instantáneos (10 winners)
10%
Treasury BTC (DAO)
10%
Referidos Multinivel
7%
Operaciones Fundador
5%
Embajadores
4%
Inversor / Partner
4%
Buyback NXL + Audit + Ops

La distribución es atómica — ocurre en la misma transacción que el settlement. No hay intermediarios, delays, ni custodia manual de fondos.

6. Chainlink VRF — Aleatoriedad Verificable

NEXALO utiliza Chainlink VRF v2 para generar números aleatorios criptográficamente verificables. Esto garantiza que nadie — ni el equipo, ni los mineros, ni Chainlink — puede predecir o manipular el resultado.

// Solicitud VRF (automática cuando ronda completa)
function requestRandomWords() internal {
    VRFCoordinatorV2Interface(vrfCoordinator)
        .requestRandomWords(
            keyHash,          // BSC VRF key
            subscriptionId,   // Chainlink subscription
            3,                // confirmaciones
            500000,           // gas limit callback
            1                 // 1 palabra aleatoria
        );
}

// Callback de Chainlink (solo el Coordinator puede llamar)
function fulfillRandomWords(
    uint256 requestId,
    uint256[] memory randomWords
) internal override {
    // Selección de ganador: randomWord % totalTickets
    // Settlement automático
}

El timeout VRF protege contra fallos del oráculo: si Chainlink no responde en el tiempo configurado, el owner puede re-solicitar o manejar la ronda. Tras finalizeAutonomy(), esta protección opera sin intervención.

7. Sistema de Referidos (ReferralNetwork)

Sistema de referidos de 3 niveles con protecciones anti-gaming:

Nivel 1 (Directo)
5%
de la compra
Nivel 2
3%
del referido del referido
Nivel 3
2%
tercer nivel

Protecciones integradas: anti-ciclos (A→B→C→A no permitido), un solo referrer por usuario, validación de zero address, y pagos automáticos en USDT en el mismo bloque de la compra.

8. Tesorería Bitcoin (TreasuryBTC)

El 10% de cada ticket alimenta un fondo DAO que acumula USDT para convertir en WBTC. Los holders de NXL pueden redimir sus tokens por WBTC proporcionalmente durante ventanas de redención anuales.

// Estrategias DeFi integradas
interface IYieldStrategy {
    function deposit(uint256 amount) external;
    function withdraw(uint256 amount) external;
    function totalDeposited() view returns (uint256);
    function harvest() external returns (uint256);
}

// Implementaciones:
// - AaveStrategy: Lending en Aave v3
// - VenusStrategy: Lending en Venus Protocol

9. NexaloStaking

Los usuarios pueden hacer stake de NXL y recibir rendimientos en WBTC provenientes de la tesorería. El contrato usa ReentrancyGuard y Ownable2Step para máxima seguridad.

10. Seguridad y Auditoría

El protocolo ha pasado por un pipeline de seguridad exhaustivo con 6 herramientas profesionales:

HerramientaTipoResultadoEjecuciones
SlitherAnálisis Estático0 exploitables201 checks
HardhatUnit Tests88/88 pass88
FoundryFuzz Testing19/19 × 1,000 iter19,000
EchidnaProperty Fuzzing5/5 holding100,201
MythrilSymbolic Execution7/7 contracts, 0 issues7
HalmosFormal Verification4/4 proven ∀ inputs

11. Medidas de Seguridad Implementadas

🛡️
Ownable2StepTransferencia de ownership en 2 pasos (proponer + aceptar) en todos los contratos
🛡️
ReentrancyGuardProtección contra reentrancy en todas las funciones que mueven fondos
🛡️
nonReentrant firstModificador nonReentrant siempre como primer modificador en la cadena
🛡️
Pragma pinnedpragma solidity 0.8.20 (sin rangos) para reproducibilidad exacta
🛡️
SafeERC20Uso de SafeERC20 para todas las transferencias de tokens
🛡️
Zero address checksValidación de address(0) en constructores y setters
🛡️
Events indexadosTodos los eventos con parámetros indexados para trazabilidad
🛡️
VRF TimeoutProtección contra fallos del oráculo Chainlink con timeout configurable
🛡️
finalizeAutonomy()Función irreversible que renuncia a todo control administrativo

12. Guía de Integración

Para interactuar con el protocolo desde tu dApp o script:

Instalar dependencias

npm install ethers@6 wagmi viem @reown/appkit

Comprar tickets

import { parseUnits } from 'viem';

// 1. Approve USDT para NexumManager
await usdtContract.write.approve([
  NEXUM_MANAGER_ADDRESS,
  parseUnits('10', 18)  // 10 USDT
]);

// 2. Comprar tickets
await nexumManager.write.buyTickets([
  0,                    // productId: FLASH
  [42, 100, 777],       // ticket numbers
  referrerAddress       // o address(0) si no hay referido
]);

Consultar estado de ronda

// Obtener información de ronda actual
const round = await nexumManager.read.getCurrentRound([productId]);
// Returns: { roundId, ticketsSold, totalFunded, status, winner, ... }

// Verificar si un ticket ganó
const isWinner = await nexumManager.read.isWinner([
  productId, roundId, ticketNumber
]);

Claim de premios

// El ganador reclama su premio
await nexumManager.write.claimPrize([productId, roundId]);

// Verificar balance de premios pendientes
const pending = await nexumManager.read.getPendingPrize([
  userAddress, productId, roundId
]);