Fundamentos de desarrollo en Near Protocol
Clase 3 de 7 • Curso de Desarrollo en Blockchain con NEAR
Contenido del curso
Sesión 2: Simple dApp Overview
Sesión 3: Interacción de un contrato con el frontend
Sesión 4: Llamada entre contratos
Sesión 5: NFT standard example
Construye con confianza en Near desde el día uno. Aquí encontrarás un recorrido claro para organizar tu equipo, preparar el entorno, entender los contratos inteligentes y desplegar tu primera dapp con Near CLI, sin perder de vista costos, identidad y buenas prácticas. Todo explicado de forma directa y accionable.
¿Cómo organizar el proyecto Near y el equipo?
Para avanzar rápido y con calidad, la organización es clave. Se propone trabajar en equipos de 4 personas y reportar avances semanales.
- Regístrate en el documento de equipos con nombre y Near ID de testnet.
- Usa Discord: Networking para compartir recursos. Aprendizaje/dudas técnicas para preguntas. Proyectos para avances semanales. Voice channel para consultas en vivo.
- Prepara prerrequisitos: wallet en testnet y Near CLI instalado.
- Sigue el espacio en Notion con actividades semanales.
- Entregables: definición de idea de proyecto a mitad de semana y reporte cada viernes en el canal de proyectos.
¿Qué es un contrato inteligente en Near y cómo funciona?
Un contrato inteligente es código que vive en la red de Near y se ejecuta en una máquina virtual de Web Assembly. La UX cambia: en web3 el usuario paga el cómputo.
¿Qué tipos de métodos existen y cuánto cuestan?
- view: solo lectura del estado. No tiene costo para el usuario.
- call: modifica el estado. Involucra transacción y fees.
- Almacenamiento: modelo key–value (pares llave–dato).
Ejemplo trabajado: un contrato de saludos con get_greeting (view) y set_greeting (call). Los logs con near.log quedan on-chain.
¿Qué aporta el objeto near en tiempo de ejecución?
Controla variables de entorno útiles para la lógica del contrato:
- Identidad: predecessor (quien invocó), signer (quien firmó), current account (el contrato).
- Dinero: attached deposit en yoctoNEAR (10^−24), account balance, account locked balance.
- Tiempo y cómputo: timestamp, block index, used gas, storage used.
Aplicaciones:
- Verificar quién compra un NFT usando predecessor y signer.
- Cobrar con attached deposit (por ejemplo, 3 NEAR en un marketplace).
¿Cómo impactan gas, almacenamiento y arquitectura?
- Modelo de ejecución tipo serverless: el método vive mientras corre. Límite aprox. de 1 segundo y hasta 300 TeraGas por llamada.
- Estructuras de datos:
Vector,LookupMap,UnorderedMap,UnorderedSet. Elige según iterabilidad, consumo de gas y velocidad. - Storage cost: cada ~100 KB ≈ 1 NEAR de respaldo en el contrato. Optimizar tamaño es esencial; por eso se usa Web Assembly y serialización (decoradores como el mencionado nearVinted en el ejemplo). Para NFT, se suele guardar el hash en IPFS y no la imagen en cadena.
- Llamadas asíncronas entre contratos: patrón de promesas entre
marketplace.nearyminter.marketplace.nearpara comprar y transferir.
¿Cómo versionar sin perder datos?
- En desarrollo: borrar carpeta
near-dev, recompilar y redeploy. - En producción: usar migraciones y upgrade de contrato para preservar y transformar el
state.
¿Cómo crear, compilar y desplegar una dapp con Near CLI?
Con Near CLI puedes crear cuentas, ver llaves, desplegar contratos, firmar transacciones y consultar estado. También se integra en pipelines CI/CD.
¿Cómo iniciar el proyecto y compilar a Web Assembly?
- Crear app sin front end en TypeScript y con contrato base.
npx create-near-app@latest
# Selecciona TypeScript y "No front end"
- Scripts clave en
package.json:build,deploy,test. - Compilar el contrato a Web Assembly:
npm run build
# Genera contract/build/hello-near.wasm
Estructura relevante: contract/ con src/ del contrato, build/ con el .wasm, y README con pasos.
¿Cómo autenticar, desplegar y probar métodos?
- Iniciar sesión y otorgar full access key a Near CLI:
near login
- Desplegar con cuenta de desarrollo en testnet:
near dev-deploy contract/build/hello-near.wasm
- Invocar método que escribe (call) y consultar (view):
# Escribir
near call $CONTRACT set_greeting '{"message":"Hola, comunidad de Platzi"}' --accountId TU_CUENTA.testnet
# Leer
near view $CONTRACT get_greeting
- Ver detalles en el Explorer: transacción firmada, logs on-chain, gas y storage.
¿Cómo gestionar llaves, redes y estado?
- Revisar llaves y sus permisos (incluye allowance de 0.25 NEAR para function-call):
near keys TU_CUENTA.testnet
- Cambiar red con variable de entorno y consultar estado:
NEAR_ENV=mainnet near state contrato.near
- Otras utilidades:
near send,near delete-account,near view-state.
—
Habilidades y conceptos que pondrás en práctica:
- Configuración de entorno con Near CLI y wallet de testnet.
- Modelado de contratos con métodos view y call.
- Uso del objeto near para identidad, depósitos y tiempo de ejecución.
- Optimización por gas y storage cost en Web Assembly.
- Operaciones de despliegue: build, dev-deploy, llamadas y lectura de estado.
- Manejo de access keys y precisión con yoctoNEAR.
- Patrones de llamadas entre contratos y nociones de sharding con Nightshade.
¿Tienes dudas o quieres compartir el avance de tu equipo y tu idea de proyecto? Déjalo en los comentarios y cuéntanos qué quieres construir en Near.