DEV Community

Eli Ara
Eli Ara

Posted on

Tutorial Completo: De Cero a SpeedRun Ethereum

📚 Índice

  1. Preparación del Entorno
  2. Conceptos Fundamentales
  3. Instalación de Herramientas
  4. Primer Proyecto con Scaffold-ETH
  5. Introducción a Solidity
  6. SpeedRun Challenge 0
  7. Próximos Pasos

🚀 Preparación del Entorno

¿Qué vamos a necesitar?

  • Una computadora con Windows, Mac o Linux(Team Linux)
  • Conexión a internet
  • Ganas de aprender blockchain y Web3

Software que instalaremos:

  • Visual Studio Code - Nuestro editor de código
  • Node.js - Para ejecutar JavaScript
  • Git - Para manejo de versiones
  • Scaffold-ETH - Framework de desarrollo Web3

🧠 Conceptos Fundamentales

¿Qué es Blockchain?

Imagínate un cuaderno que:

  • Nunca se puede borrar lo que está escrito
  • Todos tienen una copia exacta del cuaderno
  • Cada página nueva debe ser aprobada por la mayoría
  • Está numerado y cada página hace referencia a la anterior
Bloque 1 → Bloque 2 → Bloque 3 → Bloque 4 → ...
   ↓         ↓         ↓         ↓
 Hash A    Hash B    Hash C    Hash D

¿Qué es Web3?

Web 1.0: Páginas estáticas (solo leer)

Web 2.0: Redes sociales, interacción (leer y escribir)

Web 3.0: Aplicaciones descentralizadas (leer, escribir, poseer)


🚀 Ethereum: El Computador Mundial

Ethereum es como una computadora gigante que:

  • Funciona en miles de computadoras al mismo tiempo
  • Ejecuta programas llamados "Smart Contracts"
  • Usa una moneda digital llamada Ether (ETH)
  • Permite crear aplicaciones descentralizadas (dApps)

🧩 Conceptos Clave

  • Wallet: Tu billetera digital (clave privada + clave pública)
  • Gas: El "combustible" que se paga por usar la red
  • Smart Contract: Código que se ejecuta automáticamente
  • Transacción: Cualquier operación en la blockchain

💻 Instalacion de Herramientas

Paso 1: Instalar Visual Studio Code

  1. Ve a https://code.visualstudio.com/
  2. Descarga la versión para tu sistema operativo
  3. Instalar con las opciones por defecto
  4. Abrir VS Code

Extensiones recomendadas:

  • Solidity (por Juan Blanco)
  • Hardhat for Visual Studio Code
  • GitLens

Paso 2: Instalar Node.js

  1. Ve a https://nodejs.org/
  2. Descarga la versión LTS (Long Term Support)
  3. Instalar con las opciones por defecto
  4. Abrir una terminal y verifica:
node --version
npm --version

Paso 3: Instalar Git

  1. Ve a https://git-scm.com/
  2. Descargar e instalar para tu sistema operativo
  3. Verificar la instalación en la terminal:
git --version

Paso 4: Configurar Git (Primera vez)

git config --global user.name "Tu Nombre"
git config --global user.email "tu@email.com"

🏗️ Primer Proyecto con Scaffold ETH

¿Qué es Scaffold-ETH?

Scaffold-ETH es un framework desarrollado por BuidlGuidl que incluye:

  • Next.js para el frontend
  • Hardhat/Foundry para smart contracts
  • TypeScript para tipado
  • Herramientas integradas para desarrollo Web3

🚧 Creando tu primer proyecto

Crear el proyecto:

npx create-eth@latest mi-primer-dapp

Seleccionar opciones:

  • Framework: Hardhat ✅
  • Instalar dependencias: Sí ✅

Entrar al proyecto:

cd mi-primer-dapp

📂 Estructura del proyecto

mi-primer-dapp/
├── packages/
│   ├── hardhat/          # Smart Contracts
│   │   ├── contracts/    # Tus contratos
│   │   └── deploy/       # Scripts de despliegue
│   └── nextjs/           # Frontend
│       ├── pages/        # Páginas de la app
│       └── components/   # Componentes React
└── README.md

🚀 Ejecutando el proyecto

Terminal 1 - Blockchain Local:

yarn chain

Levanta una blockchain local con cuentas pre-financiadas.

Terminal 2 - Desplegar Contratos:

yarn deploy

Despliega el contrato de ejemplo en la blockchain local.

Terminal 3 - Frontend:

yarn start

Inicia la aplicación en http://localhost:3000


🔍 Explorando la Aplicación

Burner Wallet (arriba derecha):

  • Se genera automáticamente
  • Cada ventana incógnito = wallet diferente
  • ⚠️ NO es segura para dinero real

Faucet (grifo) de ETH:

  • Botón para obtener ETH gratis
  • Solo funciona en redes de desarrollo

Debug Tab:

  • Interfaz automática para tu contrato
  • Funciones de lectura (gratis)
  • Funciones de escritura (cuestan gas)

Block Explorer:

  • Se ven todas las transacciones
  • Perfecto para debugging

📝 Introduccion a Solidity

¿Qué es Solidity?

  • Lenguaje de programación para Smart Contracts
  • Sintaxis similar a JavaScript / C++
  • Se compila a bytecode para la EVM (Ethereum Virtual Machine)

📄 Tu Primer Contrato

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract MiPrimerContrato {
    // Variable de estado (se guarda en blockchain)
    string public saludo = "¡Hola Mundo!";
    uint256 public contador = 0;

    // Evento (como un log)
    event SaludoCambiado(string nuevoSaludo, address quien);

    // Función para cambiar el saludo
    function cambiarSaludo(string memory _nuevoSaludo) public {
        saludo = _nuevoSaludo;
        contador++;
        emit SaludoCambiado(_nuevoSaludo, msg.sender);
    }

    // Función de solo lectura
    function obtenerInfo() public view returns (string memory, uint256) {
        return (saludo, contador);
    }
}
Enter fullscreen mode Exit fullscreen mode

🧠 Conceptos Importantes

🛠️ Tipos de funciones:

  • public: Cualquiera puede llamarla
  • private: Solo desde el mismo contrato
  • view: Solo lee, no modifica estado
  • pure: No lee ni modifica estado

🔐 Modificadores de visibilidad:

  • public: Genera getter automático
  • private: Solo accesible internamente
  • internal: Accesible en contratos heredados
  • external: Solo desde fuera del contrato

🏃‍♂️ SpeedRun Challenge 0

¿Qué son los SpeedRun Challenges?

Son ejercicios prácticos creados por BuidlGuidl para aprender desarrollo Web3:

  • Paso a paso
  • Con explicaciones detalladas
  • Comunidad que ayuda
  • Certificados al completar

Challenge 0: Simple NFT Example

Objetivo: Crear y desplegar tu primera colección de NFTs


Paso 1: Clonar el Challenge

git clone https://github.com/scaffold-eth/se-2-challenges.git
cd se-2-challenges/challenge-0-simple-nft
yarn install
Enter fullscreen mode Exit fullscreen mode

Paso 2: Entender el Contrato NFT

contract YourCollectible is ERC721, Ownable {
    uint256 public tokenCounter;

    constructor() ERC721("YourCollectible", "YCB") {
        tokenCounter = 0;
    }

    function mintItem(address to, string memory tokenURI) 
        public 
        onlyOwner 
        returns (uint256) 
    {
        uint256 newItemId = tokenCounter;
        _safeMint(to, newItemId);
        _setTokenURI(newItemId, tokenURI);
        tokenCounter++;
        return newItemId;
    }
}
Enter fullscreen mode Exit fullscreen mode

Paso 3: Personalizar tu NFT

  • Cambia el nombre y símbolo

  • Modifica las imágenes en /packages/nextjs/public/

  • Actualiza los metadatos en /packages/nextjs/public/metadata/

# Terminal 1
yarn chain

# Terminal 2
yarn deploy

# Terminal 3
yarn start
Enter fullscreen mode Exit fullscreen mode

Paso 5: Mintear tu primer NFT

  • Hay que ir a la pestaña Debug
  • Buscar la función mintItem
  • Ingresar una dirección y URI
  • ¡Hacer clic en "Send"!

Paso 6: Desplegar en Testnet

  • Obtener ETH de prueba de un faucet
  • Configura la red en hardhat.config.ts
  • Desplegar:
yarn deploy --network sepolia
Enter fullscreen mode Exit fullscreen mode

🎯 Ejercicios Prácticos

Ejercicio 1: Modificar el Saludo

  • Cambia el mensaje por defecto del contrato
  • Agrega una función para contar caracteres del saludo
  • Despliega y prueba

Ejercicio 2: NFT Personal

  • Crea metadatos JSON para tus NFTs
  • Sube imágenes a IPFS
  • Mintea 3 NFTs únicos

Ejercicio 3: Funcionalidad Extra

  • Agrega una función reset() que vuelva el contador a 0
  • Implementa un sistema de "likes" para saludos
  • Crea eventos para cada acción

🔗 Recursos y Links Útiles

Documentación:

Tutoriales:

Herramientas:


🚀 Proximos Pasos

Challenge 1: Decentralized Staking App

  • Staking de tokens
  • Recompensas automáticas
  • Interacción con DeFi

Challenge 2: Token Vendor

  • Crear tu propio token ERC20
  • Sistema de compra/venta
  • Liquidez automática

Challenge 3: Dice Game

  • Juego de dados on-chain
  • Randomness segura
  • Sistema de apuestas

🎉 ¡Felicitaciones!

Ahora podes decir que tenes:

  • Un entorno de desarrollo configurado
  • Conocimientos básicos de blockchain
  • Tu primer dApp funcionando
  • Las herramientas para seguir aprendiendo

📞 Ayuda y Soporte

¿Dudas? No te preocupes, es normal:

  • Podes buscarnos en Git Hub a Tati y a mi para saber más sobre Blockchain y nuestro aprendizaje

  • Lee los errores - Los errores de Solidity son muy descriptivos

  • Usa el Debug Tab - Te muestra exactamente qué pasó

  • Revisa el Block Explorer - Ve las transacciones fallidas

El desarrollo Web3 es un viaje, no un destino. ¡A seguir rompiendo! 🏗️

Top comments (1)

Collapse
 
jtorchia profile image
Juan Torchia

Un tutorial de Ethereum en español que arranque desde cero y no asuma que el lector ya sabe qué es una wallet es algo que genuinamente falta en la comunidad. La parte del entorno local es donde la mayoría abandona porque las versiones de Hardhat, ethers.js y Solidity cambian constantemente y los tutoriales quedan desactualizados en semanas. ¿Qué versiones específicas usás en el tutorial? Eso marca mucho si alguien puede seguirlo hoy o no.