Plataforma descentralizada de venta y validación de boletos para eventos, construida sobre Ethereum (testnet Sepolia). Los boletos viven en la blockchain, lo que permite compra, reventa controlada y validación verificable sin intermediarios.
Inspirado en plataformas tradicionales como Ticketmaster, pero resolviendo dos de sus problemas históricos mediante contratos inteligentes: la reventa especulativa y la falsificación de boletos.
Aplicación que requiere MetaMask y estar conectado a la red de prueba Sepolia.
- Contrato desplegado:
0x299ecFDC8AA27051f645b4734cacA1C8197fa22Aen Sepolia - Para probarlo necesitas ETH de prueba, que puedes obtener gratis en un faucet de Sepolia.
- Compra de boletos on-chain: cada boleto es un token gestionado por el contrato inteligente, asociado a la wallet del comprador.
- Reventa con precio controlado: la transferencia de boletos entre usuarios pasa por el contrato, lo que permite imponer reglas sobre el precio de reventa y evitar la especulación.
- Validación con código QR: cada boleto genera un QR con un hash de verificación. El personal del evento valida la autenticidad sin poder falsificar boletos.
- Control de roles: el contrato distingue entre el owner (organizador, que crea eventos y retira fondos) y el staff (personal que valida boletos en la entrada).
- Panel de administración: creación de eventos, definición de precio, cantidad y límite por comprador, y retiro de fondos recaudados.
- Historial de transacciones: consulta de los boletos adquiridos y su estado.
| Capa | Tecnología |
|---|---|
| Frontend | Angular 21 + Angular Material |
| Blockchain | Ethereum (testnet Sepolia) |
| Contratos | Solidity |
| Interacción Web3 | ethers.js v6 |
| Wallet | MetaMask |
| QR | angularx-qrcode |
| Hosting | Firebase Hosting |
La aplicación se comunica directamente con el contrato inteligente desde el navegador a través de ethers.js y la wallet del usuario (MetaMask). No existe un backend propio que custodie fondos ni claves: cada transacción la firma el usuario desde su wallet.
El servicio Web3Service centraliza toda la lógica de interacción con la blockchain: conexión de wallet, verificación de red, lectura del estado del contrato y envío de transacciones (compra, transferencia, creación de eventos, retiro de fondos).
# Clonar el repositorio
git clone https://github.com/rayluisud/ticketchain.git
cd ticketchain
# Instalar dependencias
npm install
# Levantar el servidor de desarrollo
npm startLa aplicación quedará disponible en http://localhost:4200/.
Al abrirla, conecta tu wallet de MetaMask y asegúrate de estar en la red Sepolia. La aplicación verifica automáticamente que estés en la red correcta antes de permitir cualquier transacción.
npm run buildLos archivos optimizados se generan en dist/ticketchain/browser.
| Ruta | Descripción |
|---|---|
/ |
Página principal y catálogo de eventos |
/mis-boletos |
Boletos del usuario con su código QR |
/historial |
Historial de transacciones |
/admin |
Panel del organizador (crear eventos, retirar fondos) |
/validador |
Validación de boletos por QR para el personal |
Proyecto desarrollado como parte de la formación en Ingeniería en Sistemas Computacionales en el Instituto Tecnológico de Veracruz, con enfoque en sistemas distribuidos y tecnología blockchain aplicada a un caso de uso real.
Rayluis Uscanga Delgado rayluis.dev · LinkedIn
Este proyecto se distribuye con fines educativos y de portafolio.