Contenido del curso
Ethereum Fundamentals
Week 1: Kick off the program
Week 2: Smart Contracts: Upgradables with Oracles
Week 3: Ethereum Virtual Machine
Week 4: Mastering Solidity
Week 5: QA Solidity
Week 6: Descentralized applications
Week 7: Fleek and Pocket
Week 8: MakerDAO
Week 9: Push Notifications
Week 10: IPFS and ENS
Week 11: layer 2
Week 12: Modular Blockchains
Week 13: Zero Knowledge
Week 14: Community projects
Contenido complementario
Configura Hardhat y crea tu primer smart contract
Resumen
El Ethereum Developer Program es un programa intensivo de tres meses para aprender desarrollo blockchain, contratos inteligentes y aplicaciones descentralizadas. Aprenderás a pasar de Web2 a Web3 construyendo proyectos reales en comunidad, ideal si ya manejas JavaScript, Python o Solidity en nivel básico.
En esta sesión inaugural, Sandra Carrillo (egresada de la primera edición y profesora del curso de Stablecoins) comparte su experiencia, y Gerardo López, profesor de la Escuela de Blockchain y Criptomonedas, te guía paso a paso para crear tu primer smart contract: una fábrica de Pokémon.
¿Qué es el Ethereum Developer Program y para quién es?
Es un programa abierto de Platzi con una cohorte cerrada de 200 estudiantes en Discord, acompañados por mentores y profesores del ecosistema Web3. El objetivo final es que cada equipo construya y presente una dapp (aplicación descentralizada) ante especialistas de la industria [02:30].
Durante doce semanas vas a recorrer temas como la Ethereum Virtual Machine, desarrollo con Solidity, herramientas de arquitectura Web3 y seguridad. Si ya tienes nivel de React, la transición de frontend Web2 a Web3 te resultará más fluida.
¿Qué requisitos necesito para entrar al programa? Conocimientos básicos de JavaScript y, si aplicas por beca, completar un ejercicio práctico más los cursos de introducción al desarrollo blockchain y JavaScript básico.
¿Qué cuenta una egresada sobre la experiencia?
Sandra Carrillo, administradora de empresas venezolana, llegó al ecosistema buscando proteger su poder adquisitivo frente a la inflación con criptomonedas y stablecoins. De ahí saltó al desarrollo: aprendió JavaScript, CSS, HTML y React en Platzi, y descubrió que podía pasar de usuaria a builder, término que en Web3 identifica a quienes construyen sobre la tecnología [22:00].
Gracias al programa conectó con comunidades como Mujer DAO LATAM, asistió a Devcon Bogotá y obtuvo una beca para Ethereum Río. Su recomendación es clara: anímate aunque sepas poco de blockchain, porque la tecnología evoluciona tan rápido que nadie es totalmente especialista.
¿Qué es una blockchain y dónde encaja Ethereum?
Una blockchain es un conjunto de nodos descentralizados distribuidos por el mundo que intercambian información sin un dueño único. Si un nodo se apaga, la información persiste en los demás, lo que la hace prácticamente imposible de derribar [42:15].
Bitcoin fue la primera gran blockchain asociada a una criptomoneda. Ethereum dio el siguiente salto: además de tener su token, permite ejecutar lógica programable dentro de la red mediante smart contracts o contratos inteligentes, que son código con funcionalidades y restricciones que corre dentro de la blockchain [44:30].
¿Por qué Solidity es un lenguaje para titanes?
Solidity es el lenguaje de programación de Ethereum, parecido a JavaScript pero con peculiaridades importantes: tienes que pensar en memoria, almacenamiento y gas, que es el costo computacional que se paga por cada operación [46:00].
Aquí entra una regla de oro: entre más eficiente sea tu smart contract, menos gas consume y menos dinero gasta tu usuario. Las buenas prácticas no son cosméticas, son rentabilidad.
¿Qué es el gas en Ethereum? Es la unidad que mide el costo de ejecutar operaciones en la red. Cada instrucción de tu contrato consume gas, y quien lanza la transacción lo paga.
¿Cómo configurar Hardhat para tu primer smart contract?
Hardhat es un framework en Solidity que te crea el esqueleto de carpetas y herramientas para programar localmente antes de desplegar a la red. No va a producción: es tu ambiente de desarrollo.
Estos son los pasos del setup que mostró Gerardo [54:00]:
- Verifica que tengas instalado Node (mínimo v18) y npm con
node -vynpm -v. - Crea una carpeta, por ejemplo
pokemon-factory, y entra en ella. - Ejecuta
npm initpara generar tupackage.json. - Instala Hardhat con
npm install --save-dev hardhat. - Corre
npx hardhaty elige empty hardhat.config.js para empezar limpio. - Instala el plugin
@nomicfoundation/hardhat-toolbox, que añade compilación, testing y librerías comunes. - En
hardhat.config.js, agregarequire("@nomicfoundation/hardhat-toolbox").
La estructura recomendada usa una carpeta contracts para los .sol y una carpeta test para las pruebas en JavaScript.
¿Cómo se ve un smart contract de Pokémon en Solidity?
El contrato PokemonFactory.sol empieza declarando licencia y rango de versiones con pragma solidity >=0.7.0 <0.9.0. Trabajar con un rango evita romper compatibilidad cuando salgan versiones nuevas [01:08:00].
Dentro del contrato se define una struct Pokemon con un uint id y un string name. Se crea un array privado pokemons y dos mapping:
pokemonToOwner: relaciona el id del Pokémon con la address (dirección hash) de su dueño.ownerPokemonCount: cuenta cuántos Pokémon tiene cada address.
La función createPokemon(string memory _name, uint _id) recibe parámetros con guion bajo (convención para distinguirlos de variables globales) y usa la palabra clave memory, que indica que la variable solo existe durante la ejecución de la función y libera espacio al terminar, abaratando gas.
¿Qué hace
memoryen Solidity? Marca una variable como temporal: vive solo mientras corre la función y después se libera, evitando consumo permanente en la blockchain.
¿Cómo compilar, testear y validar tu contrato?
Para compilar, ejecuta npx hardhat compile. Hardhat genera la carpeta artifacts con el JSON del contrato listo para usarse [01:18:00].
Para probarlo, crea test/Pokemon.js usando ethers, que se conecta a tu contrato compilado. Hardhat levanta una blockchain temporal en memoria, despliega el contrato y te deja invocar métodos como getAllPokemons. Corres las pruebas con npx hardhat test y validas que el resultado coincida con lo esperado.
¿Cuáles son los retos para practicar esta semana?
Gerardo dejó cinco retos progresivos, desde nivel básico hasta Saiyajin Blue [01:22:00]:
- Investiga qué son los events en Solidity e implementa
event NewPokemonque se dispare al crear uno. - Investiga
requirey valida que elidsea mayor a cero, mostrando un mensaje si no lo es. - Crea una struct
Abilitycon nombre y descripción, y permite que un Pokémon tenga varias habilidades. - Modela que un Pokémon pertenezca a más de un tipo (ejemplo: Bulbasaur es grass y poison).
- Modela las debilidades (weaknesses) y crea un test que agregue dos Pokémon y valide la cantidad en la fábrica.
Si te interesa entrar al programa o reforzar bases antes del siguiente encuentro, complementa con el curso de Prework para desarrollo blockchain y el curso de introducción a smart contracts de la ruta de Solidity. Cuéntanos en los comentarios en qué reto vas y qué decisiones tomaste para optimizar gas.