Ruta técnica
Qué se hace en cada bloque técnico, minuto a minuto y por nivel, y qué entrega el equipo la semana siguiente. La meta no es la cantidad de commits: es que cada persona pueda explicar lo que construyó.
Fundamentos y Builders
El Kahoot diagnóstico de la sesión 1 asigna el nivel. Se alcanza el nivel con el 80 % del checklist: 6 de 7 habilidades en Fundamentos y 7 de 9 en Builders. Quien completa Fundamentos puede pasar a Builders en cualquier sesión.
Fundamentos
| Habilidad observable | Sesión |
|---|---|
| Crear una cuenta en testnet y fondearla con Friendbot | 1–2 |
| Enviar un pago y encontrarlo en el explorador | 1–2 |
| Explicar qué son cuenta, secuencia, fee y reserva base | 2 |
| Crear una trustline y emitir un activo propio en Stellar Lab | 2 |
| Hacer un path payment o un pago en un activo distinto a XLM | 2 |
| Conectar Freighter a una app plantilla y firmar desde ella | 3 |
| Explicar por qué el problema del equipo necesita (o no) blockchain | 3 |
Builders
| Habilidad observable | Sesión |
|---|---|
| Compilar un contrato Soroban a WASM y correr sus pruebas | 2 |
| Desplegar e invocar un contrato en testnet desde la CLI | 2 |
Usar require_auth correctamente en una función que cambia estado | 3 |
| Elegir el tipo de storage (instance, persistent, temporary) y justificarlo | 3 |
| Devolver errores tipados en lugar de panics genéricos | 3 y 4 |
| Generar bindings TypeScript e invocar el contrato desde un frontend | 3 y 4 |
| Escribir al menos tres pruebas, incluida una de fallo esperado | 4 |
| Resolver un error de compilación o despliegue sin ayuda | 4 |
| Explicar dos funciones de su contrato elegidas al azar, sin IA | 4 |
Diagnóstico y arranque
Objetivo: medir de dónde parte cada persona, asignar su nivel y dejar a todos con GitHub listo y el mapa de la documentación de Stellar para arrancar la semana.
Antes, de 2:40 a 3:00 p. m., se hace el onboarding del Ambassador Program, BAF y Stellar, con el Linktree de la Ruta.
- Todos: lectura de Stellar Docs → Learn → Fundamentals: Accounts, Assets, Operations y Transactions.
Activos, operaciones y primer contrato
Objetivo: entender el modelo de cuentas y activos de Stellar haciéndolo (emitir un activo propio) y, en Builders, desplegar e invocar el primer contrato Soroban en testnet.
createAccount, payment, changeTrust, manageSellOffer, setOptions. Qué es un activo (código y emisor) y por qué existe la trustline. Demo en Stellar Lab: construir una transacción a mano y leerla en XDR.Fundamentos Emite tu propio activo
En lab.stellar.org, red Testnet.
- Crear dos cuentas, emisora y distribuidora, y fondearlas con Friendbot.
- Desde la distribuidora,
changeTrustal activoJAVEde la emisora. - Desde la emisora,
paymentde 1.000 JAVE a la distribuidora. - Enviar JAVE a la wallet Freighter de un compañero. Él tiene que agregar la trustline primero: ahí se entiende el concepto.
- Verificar en stellar.expert balances, trustlines y operaciones.
- Reto: bloquear la emisión con
setOptions(masterWeight 0) y explicar qué implica.
Builders Hello Soroban
Siguiendo developers.stellar.org → Build → Smart Contracts → Getting Started.
stellar contract init hello-javey recorrer la estructura:Cargo.toml,contracts/hello_world/src/lib.rs,test.rs.- Leer el contrato línea a línea:
#[contract],#[contractimpl],Env,Symbol,Vecy por qué esno_std. cargo testy modificar la prueba para que falle a propósito: entender qué verifica.stellar contract buildgenera el Wasm entarget/wasm32v1-none/release/.stellar contract deploy --wasm … --source-account alice --network testnet --alias hello_worldy guardar el Contract ID.stellar contract invoke --id hello_world --source-account alice --network testnet -- hello --to Javeriana, y leer el resultado y el fee en el explorador.- Reto: agregar una función
countcon un contador en instance storage, con su prueba.
- Fundamentos Script o secuencia documentada (Lab o JS SDK) que reproduzca la emisión del activo; diagrama propio, a mano está bien, de las cuentas, trustlines y pagos; explicación de 150 palabras de qué es un activo en Stellar.
- Builders Contrato
hello_worldconcountdesplegado en testnet, Contract ID en el README, pruebas pasando en CI (la plantilla trae GitHub Actions) y declaración de IA en la plantilla de PR. - Lecturas: Builders, Soroban → Learn → Storage y Authorization. Fundamentos, Stellar Docs → Learn → Anchors (prepara la sesión 3).
Wallets, anclas y la dApp
Objetivo: conectar lo que ya saben con un producto: una interfaz que firma con Freighter y habla con Stellar. Mientras tanto, la parte de negocio de cada equipo está en el taller del CJE.
signTransaction). Qué es un ancla y SEP-24 / SEP-31 a nivel conceptual: cómo entra y sale dinero real. Cómo un contrato Soroban se vuelve usable desde el navegador (bindings TypeScript y RPC). Demo: Scaffold Stellar en vivo.Fundamentos Tu app con wallet
- Clonar la plantilla
jave-wallet-starter(React y Freighter API). - Botón «Conectar wallet»: mostrar la dirección y los balances (XLM y el activo JAVE de la sesión 2).
- Formulario de pago: construir la transacción con el SDK, pedir la firma a Freighter, enviarla y mostrar el hash con enlace al explorador.
- Bocetar en Figma o en papel las tres pantallas de la dApp del Demo Day y definir qué operación de Stellar usa cada una.
Builders Contrato más frontend
- Crear el proyecto con Scaffold Stellar (o
stellar contract inity Vite) y conectarlo al contrato de la sesión 2. - Generar bindings:
stellar contract bindings typescript --network testnet --contract-id <ID> --output-dir packages/hello_world. - Invocar
helloycountdesde el frontend, con la cuenta de Freighter firmando. - Diseñar el contrato del Demo Day en una página: funciones, tipos, qué va en qué storage y quién debe autorizar qué (
require_auth). Se revisa en office hours antes de escribir código.
- Fundamentos App con conexión de wallet y pago funcionando en testnet; Figma o bocetos de las tres pantallas; README con el problema que resuelven (una frase) y qué operaciones usan.
- Builders Diseño del contrato aprobado; primer
lib.rscon las funciones firmadas, aunque estén vacías, y pruebas que describan el comportamiento esperado. Pueden fallar: eso es TDD. - Todos: lectura de Stellar Docs → Learn → Encyclopedia → Security (claves, multisig, phishing). Se pregunta en la sesión 4.
Taller integrador y medición de comprensión
Objetivo: cerrar el ciclo integrar, probar y desplegar del proyecto de cada equipo, y tomar las tres medidas de comprensión: reto sin IA, prueba oral y registro de depuración.
require_auth ausente, storage mal elegido o un panic sin manejar. Deben encontrarlo y explicarlo por escrito, sin IA y sin internet salvo la documentación oficial.Registro de depuración autónoma: entre el minuto 20 y el 75 cada equipo anota en DEBUG_LOG.md cada error que encuentre, qué intentó primero y si lo resolvió solo, con la documentación, con un compañero o con IA.
- Proyecto desplegado en testnet y funcionando de punta a punta.
- README final: problema, qué operaciones o contratos usa, Contract ID o cuentas, cómo correrlo y declaración de IA del proyecto completo.
- Pitch de 3 minutos ensayado (ver la ruta de emprendimiento) e informe técnico en
docs/informe.md.
Lo que no esté en testnet el martes 10 de noviembre se arregla en las office hours extra de ese día o no se presenta.
Demo Day y cierre de medición
Objetivo: que cada equipo demuestre un producto funcionando en testnet y lo explique, y cerrar la medición del aprendizaje.
Formato por equipo: 8 minutos
- 3 min de pitch.
- 3 min de demo en testnet, en vivo o en video. Si es un video, debe mostrar la transacción o la invocación y su hash o Contract ID, para verificarlo en el explorador.
- 2 min de preguntas del panel. Cualquier integrante debe poder explicar cualquier parte.
Cierre de medición
- Kahoot de salida con las mismas preguntas del diagnóstico, individual y sin IA.
- Encuesta de autoeficacia: «puedo crear una wallet y enviar un pago», «puedo explicar qué es una trustline», «puedo leer un contrato Soroban», «puedo desplegar un contrato en testnet», «puedo encontrar un error sin IA».
- Verificación de registro en el Ambassador Program y cuenta de testnet activa.
- Retro: qué sesión fue más útil y qué faltó.
Uso de IA
La IA (Cursor, Copilot, Claude, ChatGPT) está permitida y se enseña a usarla bien: pedir explicaciones antes que código, pedir pruebas antes que implementaciones y nunca aceptar un bloque que no se pueda explicar. Lo único prohibido es ocultarla: cada PR declara qué se generó con IA y qué se entendió y modificó. El reto sin IA y la prueba oral de la sesión 4 miden que la herramienta no haya reemplazado el aprendizaje.
La plantilla de PR con la declaración está en Entregables.