Competitions es un marketplace descentralizado para contratos de apuestas inteligentes que soporta múltiples cadenas de bloques simultáneamente. Permite a los usuarios desplegar y participar en competiciones verificadas por smart contracts con total transparencia.
Características principales
- Soporte multi-cadena: Ethereum, Polygon, Arbitrum, Optimism, BSC y Solana.
- Autenticación con wallet: MetaMask, Phantom vía NextAuth.js + SIWE (Sign-In With Ethereum); sin contraseñas.
- Despliegue CREATE2: direcciones de contratos determinísticas, predecibles antes del despliegue.
- Optimización de gas: soporte EIP-1559 con estimación inteligente de tarifas.
- Multicall batching: agrupa múltiples lecturas de contratos en una sola llamada RPC.
- Control de acceso RBAC: roles de Admin, Moderador y Usuario con permisos granulares.
- Internacionalización: inglés y español.
Stack tecnológico
- Framework: Next.js 15.5 con App Router, TypeScript modo estricto.
- Base de datos: PostgreSQL con Drizzle ORM (migrando desde Prisma).
- UI: Tailwind CSS + shadcn/ui + Radix UI.
- Blockchain: soporte multi-cadena con caché avanzada y deduplicación de peticiones.
Inicio rápido
npm install
npm run db:setup # Inicializar base de datos
npm run dev # http://localhost:3000
Seguridad
- Autenticación exclusiva por wallet (sin contraseñas).
- Validación de inputs con esquemas Zod.
- Prevención de inyección SQL mediante ORM.
- Rate limiting en todas las peticiones.