Resumen

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.near y minter.marketplace.near para 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.

      Fundamentos de desarrollo en Near Protocol