CatalystBet (Web3)
dApp de apuestas con temática de carreras de caballos (estilo Umamusume): prueba de concepto de aleatoriedad on-chain sin oráculos, sobre Sonic testnet. Solo frontend + smart contracts.
dApp de apuestas con temática de carreras de caballos, inspirada en Umamusume, que creé junto a un colega dev y auditor Web3. La idea era una prueba de concepto: generar números aleatorios on-chain mediante un relayer, sin depender de oráculos como Chainlink, buscando aportar un estándar en Ethereum. Corre sobre Sonic testnet (EVM): el usuario elige su personaje, apuesta USDC de prueba y espera a que terminen las fases para saber si ganó. Sin backend — solo frontend y smart contracts.
Aleatoriedad sin oráculos
El propósito del proyecto: demostrar que se pueden generar números aleatorios on-chain con un relayer, sin depender de oráculos externos (Chainlink y similares). Buscábamos sentar un estándar reutilizable en Ethereum.
Contador de bloques anti-manipulación
Usamos un contador de bloques para evitar que los validadores conozcan el resultado de antemano y puedan manipular la carrera — un punto clave para que la aleatoriedad sea confiable.
Sin backend: frontend + contratos
La app interactúa directo con los contratos ya desplegados vía wagmi + viem (ABIs y direcciones en el cliente). Yo me encargué del diseño y el frontend; mi colega, de crear y auditar los smart contracts.
Autenticación con firma (SIWE)
Además de conectar la wallet con RainbowKit, el usuario firma un mensaje (Sign-In With Ethereum + NextAuth) para tener una sesión real, no solo una wallet conectada.
- Lograr aleatoriedad confiable on-chain sin oráculos externos fue el reto central; resolverlo nos amplió mucho el panorama de Web3.
- Sincronizar el flujo por fases (betting → race → claim) con el estado on-chain sin un backend intermediario.