SupplyChainTracker: Transparencia en la Cadena de Suministro con Blockchain
Un sistema de trazabilidad de dispositivos educativos (netbooks) construido sobre la EVM usando Solidity, Foundry y una web en React con Wagmi.
¿Qué es SupplyChainTracker?
SupplyChainTracker es un sistema de trazabilidad descentralizado diseñado para rastrear el ciclo de vida completo de dispositivos educativos (netbooks) sobre la blockchain EVM. El proyecto fue desarrollado como parte del Master en Blockchain y Web3 de CodeCrypto Academy.
La premisa es simple pero poderosa: en lugar de confiar en bases de datos centralizadas y auditables solo por la entidad administradora, cada evento del ciclo de vida del dispositivo queda registrado de forma inmutable en la blockchain.

Arquitectura del Sistema
El sistema implementa un smart contract central (SupplyChainTracker) que gestiona toda la lógica de negocio:
// Operaciones clave del contrato
assignToStudent(serial, schoolHash, studentHash)
auditHardware(serial, passed, reportHash)
validateSoftware(serial, version, passed)
registerNetbooks(serials, batches, modelSpecs)
El control de acceso usa RBAC (Role-Based Access Control) nativo de OpenZeppelin, con roles como ADMIN, AUDITOR, SCHOOL y TECH.
Pantallas principales
La aplicación web cubre todo el flujo operativo:
- Gestión de dispositivos: Registro, asignación a estudiantes, auditoría de hardware y software.
- Gestión de roles: Solicitud, aprobación y revocación de roles on-chain.
- Dashboard de auditorías: Historial inmutable de todos los eventos.
- Diagnóstico de servicios: Panel de salud de la conexión con la blockchain.
Stack Tecnológico
| Capa | Tecnologías |
|---|---|
| Smart Contracts | Solidity, Foundry, OpenZeppelin |
| Frontend | React, Next.js, TypeScript |
| Web3 | Wagmi v2, Viem, Ethers.js |
| Local Blockchain | Anvil (Foundry) |
Lecciones Aprendidas
Este proyecto fue el primer contacto serio con el desarrollo full-stack Web3. Los desafíos más interesantes fueron:
- Sincronización de estado: Los datos on-chain son asíncronos y el UI necesita patrones específicos para evitar estados inconsistentes.
- Control de acceso on-chain: Implementar RBAC directamente en el contrato es más gas-eficiente que off-chain.
- Testing con Foundry: La velocidad de
forge testrespecto a Hardhat es notoria.
El código fuente está disponible en github.com/87maxi/SupplyChainTracker2