Volver

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.

Resumen

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.

Decisiones clave

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.

Retos y aprendizajes
  • 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.