<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Derlys</title>
    <description>The latest articles on DEV Community by Derlys (@derlys).</description>
    <link>https://dev.to/derlys</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F375762%2F5c1dc5d8-5244-451a-a432-13995700188c.png</url>
      <title>DEV Community: Derlys</title>
      <link>https://dev.to/derlys</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/derlys"/>
    <language>en</language>
    <item>
      <title>Cómo empezar a utilizar herramientas de IA en Solana</title>
      <dc:creator>Derlys</dc:creator>
      <pubDate>Mon, 20 Apr 2026 16:27:03 +0000</pubDate>
      <link>https://dev.to/derlys/como-empezar-a-utilizar-herramientas-de-ia-en-solana-1fn8</link>
      <guid>https://dev.to/derlys/como-empezar-a-utilizar-herramientas-de-ia-en-solana-1fn8</guid>
      <description>&lt;p&gt;Esta guía va acompañada de un&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=O6tKgtYQZDY" rel="noopener noreferrer"&gt;vídeo tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Parte 1: Desarrollo asistido por IA con Solana MCP (&lt;strong&gt;Machine Conversation Protocol&lt;/strong&gt;)
&lt;/h2&gt;


&lt;h3&gt;
  
  
  Uso de herramientas de IA con Solana MCP
&lt;/h3&gt;



&lt;p&gt;Una de las formas más potentes de aprovechar la IA para el desarrollo de Solana es a través del &lt;a href="https://mcp.solana.com/" rel="noopener noreferrer"&gt;Solana Developer MCP&lt;/a&gt; (Machine Conversation Protocol). Esta integración lleva el conocimiento especializado de Solana directamente a&lt;br&gt;
tu IDE, lo que hace que tus agentes estén más al día sobre la documentación actualizada de Solana. Esto hace que el desarrollo de Solana sea más rápido y eficiente.&lt;/p&gt;
&lt;h2&gt;
  
  
  ¿Qué es Solana MCP?
&lt;/h2&gt;

&lt;p&gt;Solana MCP (Machine Conversation Protocol) es un asistente de IA especializado que se integra directamente en entornos de desarrollo integrados (IDE) compatibles con IA, como Cursor y Windsurf. Cuando haces preguntas específicas sobre Solana, consulta automáticamente el servidor MCP para proporcionar información precisa y actualizada. La herramienta MCP está entrenada con recursos exhaustivos de Solana, entre los que se incluyen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;La &lt;a href="https://docs.solana.com/" rel="noopener noreferrer"&gt;documentación de Solana&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;La &lt;a href="https://www.anchor-lang.com/docs" rel="noopener noreferrer"&gt;documentación del marco Anchor&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Los
&lt;a href="https://github.com/solana-developers/program-examples" rel="noopener noreferrer"&gt;ejemplos de programas&lt;/a&gt; de Solana&lt;/li&gt;
&lt;li&gt;Preguntas y
respuestas de &lt;a href="https://solana.stackexchange.com/" rel="noopener noreferrer"&gt;Solana Stackexchange&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Ejemplos de casos de uso
&lt;/h3&gt;

&lt;p&gt;Puedes utilizar MCP para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Preguntar sobre conceptos de Solana&lt;/li&gt;
&lt;li&gt;Depurar errores de programación&lt;/li&gt;
&lt;li&gt;Obtener recomendaciones sobre buenas prácticas&lt;/li&gt;
&lt;li&gt;Aprender de ejemplos de expertos&lt;/li&gt;
&lt;li&gt;O simplemente desarrollar más rápido con la ayuda de un experto&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Configuración de Solana MCP
&lt;/h3&gt;

&lt;p&gt;Encuentra una guía detallada de configuración y primeros pasos en la &lt;a href="https://mcp.solana.com/" rel="noopener noreferrer"&gt;página web de Solana MCP&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Parte 2: Trabajar con LLM y agentes en Solana
&lt;/h2&gt;

&lt;p&gt;Antes de profundizar en herramientas específicas, veamos los componentes clave de la pila de desarrollo de IA:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Modelos de lenguaje a gran escala (LLM)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Los modelos de IA fundamentales (como GPT-4, Claude o Llama)&lt;/li&gt;
&lt;li&gt;Procesan y generan lenguaje natural&lt;/li&gt;
&lt;li&gt;Proporcionan inteligencia básica y capacidades de razonamiento&lt;/li&gt;
&lt;li&gt;Ejemplos: GPT-4 de OpenAI, Claude de Anthropic, Llama de Meta&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Marcos de agentes (como Eliza)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Construidos sobre los LLM para crear agentes autónomos&lt;/li&gt;
&lt;li&gt;Gestionan las personalidades y los comportamientos de los agentes&lt;/li&gt;
&lt;li&gt;Manejan la memoria y el contexto&lt;/li&gt;
&lt;li&gt;Proporcionan integración multiplataforma&lt;/li&gt;
&lt;li&gt;Ejemplos: Eliza, LangChain, AutoGPT, Vercel AI&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Kits de agentes específicos para cada dominio (como Solana Agent Kit)&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Diseñados para casos de uso específicos (por ejemplo, operaciones de blockchain)&lt;/li&gt;
&lt;li&gt;Proporcionan herramientas e integraciones pre configuradas&lt;/li&gt;
&lt;li&gt;Abstraen la complejidad técnica&lt;/li&gt;
&lt;li&gt;Funciones de blockchain listas para usar&lt;/li&gt;
&lt;li&gt;Ejemplos: Solana Agent Kit, GOAT Toolkit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Piénsalo de esta manera:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Los modelos de lenguaje grande (LLM) son el «cerebro» capaz de comprender y generar lenguaje.&lt;/li&gt;
&lt;li&gt;Los marcos de agentes son el «sistema operativo» que gestiona el comportamiento de la IA.&lt;/li&gt;
&lt;li&gt;Los kits específicos de dominio son las «aplicaciones» que dotan a la IA de capacidades concretas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Creación de agentes de IA para Solana
&lt;/h2&gt;

&lt;p&gt;Esta guía te mostrará cómo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crear un agente de IA básico utilizando el kit de agentes de Solana de SendAI&lt;/li&gt;
&lt;li&gt;Crear un bot de Twitter con el marco Eliza&lt;/li&gt;
&lt;li&gt;Comprender las opciones de integración de IA en cadena&lt;/li&gt;
&lt;li&gt;Opciones para crear bots de trading avanzados&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Introducción a los agentes de IA en Solana
&lt;/h2&gt;

&lt;p&gt;Los agentes de IA en Solana son programas autónomos capaces de interactuar con la cadena de bloques mediante el procesamiento del lenguaje natural y el aprendizaje automático. Pueden:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ejecutar transacciones&lt;/li&gt;
&lt;li&gt;Supervisar la actividad de la cadena de bloques&lt;/li&gt;
&lt;li&gt;Interactuar con contratos inteligentes&lt;/li&gt;
&lt;li&gt;Proporcionar asistencia al usuario&lt;/li&gt;
&lt;li&gt;Automatizar flujos de trabajo complejos&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Marcos disponibles
&lt;/h2&gt;

&lt;p&gt;Existen varios marcos disponibles para crear agentes de IA en Solana:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Kit de agente de Solana de SendAI&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Una colección de herramientas para crear agentes en Solana.&lt;/li&gt;
&lt;li&gt;Compatible con Eliza, Langchain y el SDK de IA de Vercel.&lt;/li&gt;
&lt;li&gt;Herramientas y utilidades de Solana integradas&lt;/li&gt;
&lt;li&gt;Capacidades de procesamiento del lenguaje natural&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sendaifun/solana-agent-kit" rel="noopener noreferrer"&gt;Kit de agentes de Solana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Documentación](&lt;a href="https://docs.solanaa" rel="noopener noreferrer"&gt;https://docs.solanaa&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Eliza Framework&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Combina la capa de datos, el modelo de lenguaje grande (LLM) y los agentes, y cuenta con un complemento específico para Solana&lt;/li&gt;
&lt;li&gt;Arquitectura de agentes extensible&lt;/li&gt;
&lt;li&gt;Fácil integración con proyectos existentes y se puede utilizar, por ejemplo, para
bots de Twitter (X), Telegram o Discord&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/elizaOS/eliza" rel="noopener noreferrer"&gt;Repositorio de GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;GOAT Toolkit&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Kit de herramientas de desarrollo completo&lt;/li&gt;
&lt;li&gt;Compatibilidad entre cadenas&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/goat-sdk/goat" rel="noopener noreferrer"&gt;Repositorio de GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Rig Framework&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Implementación nativa en Rust&lt;/li&gt;
&lt;li&gt;Ideal para bots de trading de alto rendimiento&lt;/li&gt;
&lt;li&gt;Se puede combinar con el kit de herramientas Listen.rs para la integración con Solana, la supervisión de transacciones
y el envío de transacciones utilizando, por ejemplo, paquetes Jito&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/0xPlaygrounds/rig" rel="noopener noreferrer"&gt;Repositorio de GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/piotrostr/listen" rel="noopener noreferrer"&gt;Repositorio de Listen.rs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si estás desarrollando un marco de IA, no dudes en enviar una solicitud de incorporación de cambios para añadir tu marco a la lista.&lt;/p&gt;
&lt;h2&gt;
  
  
  Primeros pasos con SendAI
&lt;/h2&gt;

&lt;p&gt;Empecemos por configurar un agente de IA básico utilizando el Solana Agent Kit de SendAI, que&lt;br&gt;
puede realizar acciones en la cadena de bloques de Solana y con el que podemos chatear:&lt;/p&gt;



&lt;h3&gt;
  
  
  Instalar las dependencias
&lt;/h3&gt;

&lt;p&gt;Para esta guía se recomienda utilizar un IDE moderno. En este ejemplo utilizaremos &lt;a href="https://www.cursor.com/" rel="noopener noreferrer"&gt;Cursor&lt;/a&gt;, que cuenta con funciones de IA integradas y puede ayudarte a resolver cualquier error que te puedas encontrar.&lt;/p&gt;

&lt;p&gt;Deberás tener instalado &lt;a href="https://nodejs.org/en/download/" rel="noopener noreferrer"&gt;node&lt;/a&gt; en su versión&lt;br&gt;
&lt;code&gt;23.x.x&lt;/code&gt;. Abre una carpeta vacía con VSCode o Cursor y ejecuta el siguiente comando en el terminal:&lt;/p&gt;

&lt;p&gt;&lt;br&gt;
  Esta guía requiere la versión &lt;code&gt;23.x.x&lt;/code&gt; de Node.js. Instálala con &lt;a href="https://github.com/nvm-sh/nvm" rel="noopener noreferrer"&gt;nvm&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node &lt;span class="nt"&gt;--version&lt;/span&gt;  &lt;span class="c"&gt;# Comprobar la versión actual&lt;/span&gt;
nvm &lt;span class="nb"&gt;install &lt;/span&gt;23  &lt;span class="c"&gt;# Instalar Node.js 23 si es necesario&lt;/span&gt;
nvm use 23      &lt;span class="c"&gt;# Cambiar a Node.js 23&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pnpm &lt;span class="nb"&gt;install &lt;/span&gt;solana-agent-kit
pnpm add@langchain/core@langchain/openai@langchain/langgraphv  bs58
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tu IDE debería crear el archivo &lt;code&gt;package.json&lt;/code&gt; automáticamente. Si no es así, este es el aspecto&lt;br&gt;
que debería tener:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;```json filename=package.json&lt;br&gt;
{&lt;br&gt;
  "dependencies": {&lt;br&gt;
    "@langchain/core": "^0.3.33",&lt;br&gt;
    "@langchain/langgraph": "^0.2.41",&lt;br&gt;
    "@langchain/openai": "^0.3.17",&lt;br&gt;
    "bs58": "^6.0.0",&lt;br&gt;
    "dotenv": "^16.4.7",&lt;br&gt;
    "solana-agent-kit": "^1.4.3"&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


&amp;lt;/Step&amp;gt;

&amp;lt;Step&amp;gt;
### Configurar el entorno

Crea un archivo `.env` en el directorio raíz del proyecto y añade lo siguiente:



```ini
OPENAI_API_KEY=your_openai_api_key
RPC_URL=https://api.devnet.solana.com
SOLANA_PRIVATE_KEY=your_private_key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Ten en cuenta que codificamos la clave privada en base58 antes de pasarla al constructor del agente de Solana en el script, por lo que aquí, en el archivo de entorno, basta con introducir la matriz de bytes [34,2,34...]&lt;/p&gt;

&lt;p&gt;Puedes crear una clave con el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;solana-keygen grind &lt;span class="nt"&gt;--starts-with&lt;/span&gt; ai:1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y copia el contenido en tu archivo &lt;code&gt;.env&lt;/code&gt; en la entrada &lt;code&gt;SOLANA_PRIVATE_KEY&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;La clave &lt;code&gt;OPENAI_API_KEY&lt;/code&gt; es la clave de la API de OpenAI y la puedes encontrar en la&lt;br&gt;
&lt;a href="https://platform.openai.com/api-keys" rel="noopener noreferrer"&gt;plataforma de OpenAI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por ahora, dejamos la URL de RPC en devnet.&lt;/p&gt;




&lt;h3&gt;
  
  
  Crear el script del agente
&lt;/h3&gt;

&lt;p&gt;Crea un nuevo archivo llamado &lt;code&gt;agent.ts&lt;/code&gt; con el siguiente contenido:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;```typescript filename=agent.ts&lt;br&gt;
import { SolanaAgentKit, createSolanaTools } from "solana-agent-kit";&lt;br&gt;
import { HumanMessage } from "@langchain/core/messages";&lt;br&gt;
import { ChatOpenAI } from "@langchain/openai";&lt;br&gt;
import { createReactAgent } from "@langchain/langgraph/prebuilt";&lt;br&gt;
import { MemorySaver } from "@langchain/langgraph";&lt;br&gt;
import * as dotenv from "dotenv";&lt;br&gt;
import bs58 from "bs58";&lt;br&gt;
import * as readline from "readline";&lt;/p&gt;

&lt;p&gt;dotenv.config();&lt;/p&gt;

&lt;p&gt;async function initializeAgent() {&lt;br&gt;
  const llm = new ChatOpenAI({&lt;br&gt;
    modelName: "gpt-4-turbo-preview",&lt;br&gt;
    temperature: 0.7&lt;br&gt;
  });&lt;/p&gt;

&lt;p&gt;// Convert array string to actual array, then to Uint8Array, then to base58&lt;br&gt;
  const privateKeyArray = JSON.parse(process.env.SOLANA_PRIVATE_KEY!);&lt;br&gt;
  const privateKeyUint8 = new Uint8Array(privateKeyArray);&lt;br&gt;
  const privateKeyBase58 = bs58.encode(privateKeyUint8);&lt;/p&gt;

&lt;p&gt;const solanaKit = new SolanaAgentKit(privateKeyBase58, process.env.RPC_URL!, {&lt;br&gt;
    OPENAI_API_KEY: process.env.OPENAI_API_KEY!&lt;br&gt;
  });&lt;/p&gt;

&lt;p&gt;const tools = createSolanaTools(solanaKit);&lt;br&gt;
  const memory = new MemorySaver();&lt;/p&gt;

&lt;p&gt;return createReactAgent({&lt;br&gt;
    llm,&lt;br&gt;
    tools,&lt;br&gt;
    checkpointSaver: memory&lt;br&gt;
  });&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;async function runInteractiveChat() {&lt;br&gt;
  const agent = await initializeAgent();&lt;br&gt;
  const config = { configurable: { thread_id: "Solana Agent Kit!" } };&lt;br&gt;
  const rl = readline.createInterface({&lt;br&gt;
    input: process.stdin,&lt;br&gt;
    output: process.stdout&lt;br&gt;
  });&lt;/p&gt;

&lt;p&gt;// Clear console and start chat with a small delay&lt;br&gt;
  setTimeout(() =&amp;gt; {&lt;br&gt;
    console.clear(); // Clear any initialization messages&lt;br&gt;
    console.log("Chat with Solana Agent (type 'exit' to quit)");&lt;br&gt;
    console.log("--------------------------------------------");&lt;br&gt;
    askQuestion();&lt;br&gt;
  }, 100);&lt;/p&gt;

&lt;p&gt;const askQuestion = () =&amp;gt; {&lt;br&gt;
    rl.question("You: ", async (input) =&amp;gt; {&lt;br&gt;
      if (input.toLowerCase() === "exit") {&lt;br&gt;
        rl.close();&lt;br&gt;
        return;&lt;br&gt;
      }&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  const stream = await agent.stream(
    {
      messages: [new HumanMessage(input)]
    },
    config
  );

  process.stdout.write("Agent: ");
  for await (const chunk of stream) {
    if ("agent" in chunk) {
      process.stdout.write(chunk.agent.messages[0].content);
    } else if ("tools" in chunk) {
      process.stdout.write(chunk.tools.messages[0].content);
    }
  }
  console.log("\n--------------------------------------------");

  askQuestion(); // Continue the conversation
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;};&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;runInteractiveChat().catch(console.error);&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


&amp;lt;/Step&amp;gt;

&amp;lt;Step&amp;gt;
### Ejecutar el agente

Puedes ejecutar este script con el siguiente comando:



```bash
npx tsx agent.ts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Esto iniciará una conversación sencilla con el agente.&lt;/p&gt;




&lt;h3&gt;
  
  
  Probar las funciones básicas
&lt;/h3&gt;

&lt;p&gt;Ahora puedes pedirle que te muestre tu saldo de Solana y que solicite algo de Solana de la red de desarrollo:&lt;/p&gt;

&lt;p&gt;Puedes decirselo en Ingles&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Please show me my wallet address and request some devnet sol
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;o español 😉&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Por favor, muéstrame la dirección de mi monedero y solicita un poco de SOL de la red de desarrollo.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Si el grifo de devnet está vacío, puedes utilizar en su lugar el &lt;a href="https://faucet.solana.com" rel="noopener noreferrer"&gt;grifo web&lt;/a&gt; y pegar tu dirección de Solana.&lt;/p&gt;





&lt;h3&gt;
  
  
  Crear una colección de NFT
&lt;/h3&gt;

&lt;p&gt;A continuación, pregúntale al agente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Por favor, crea una colección NFT llamada «trains» con el símbolo TRN utilizando esta URL: https://scarlet-fancy-minnow-617.mypinata.cloud/ipfs/bafkreif43sp62yuy3sznrvqesk23tfnhpdck4npqowdwrhrzhsrgf5ao2e
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;







&lt;h3&gt;
  
  
  Acuñar un NFT
&lt;/h3&gt;

&lt;p&gt;Una vez creada la colección, acuña un NFT:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Por favor, acuña un NFT para mí en esa colección con el nombre: Train1 y utilizando este URI: https://scarlet-fancy-minnow-617.mypinata.cloud/ipfs/bafkreif43sp62yuy3sznrvqesk23tfnhpdck4npqowdwrhrzhsrgf5ao2e
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esto generará un NFT con el nombre «Train1» y la imagen de un tren.&lt;/p&gt;

&lt;p&gt;También puedes utilizar cualquier otro metadato para tu NFT, que puedes subir a través de&lt;br&gt;
&lt;a href="https://app.pinata.cloud/" rel="noopener noreferrer"&gt;pinata&lt;/a&gt; o cualquier otro proveedor de almacenamiento. El resultado debería ser algo como esto[devnet train nft(&lt;a href="https://explorer.solana.com/address/6dTVGn2M8LdAB6vrxzt7X8fm8HiP1QxN9j8jeh1dbyv8?cluster=devnet" rel="noopener noreferrer"&gt;https://explorer.solana.com/address/6dTVGn2M8LdAB6vrxzt7X8fm8HiP1QxN9j8jeh1dbyv8?cluster=devnet&lt;/a&gt;)&lt;/p&gt;



&lt;p&gt;¿Y ahora qué?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ahora puedes, por ejemplo, importar la clave privada a la cartera de tu extensión de navegador para ver el NFT.&lt;/li&gt;
&lt;li&gt;Puedes pedirle al agente que te muestre todos tus NFT. Verás que aparece un error al realizar esta acción. Esto se debe a que la acción predeterminada para solicitar activos utiliza la API de Helius Asset, por lo que para ello tendrás que añadir una &lt;a href="https://www.helius.dev/" rel="noopener noreferrer"&gt;clave API de Helius&lt;/a&gt; a tu archivo &lt;code&gt;.env&lt;/code&gt; y pasarla al agente.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;```ts filename=agent.ts&lt;br&gt;
const solanaKit = new SolanaAgentKit(privateKeyBase58, process.env.RPC_URL!, {&lt;br&gt;
  OPENAI_API_KEY: process.env.OPENAI_API_KEY!,&lt;br&gt;
  HELIUS_API_KEY: process.env.HELIUS_API_KEY!&lt;br&gt;
});&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


- Ahora puedes empezar a escribir tus propias acciones siguiendo la [Guía de contribución](https://github.com/sendaifun/solana-agent-kit/blob/main/CONTRIBUTING.md)

También hay un[ejemplo de chat web(https://github.com/sendaifun/solana-agent-kit/tree/main/examples/agent-kit-nextjs-langchain)
para tu agente que utiliza React y que puedes, por ejemplo, implementar en Vercel.

Todavía no todas las acciones funcionan al 100 %, como por ejemplo la solicitud de saldo,que a veces falla, pero puedes ver los avances en el [repositorio del kit de agente de Solana(https://github.com/sendaifun/solana-agent-kit) y también contribuir con tus propias acciones para que las utilicen todos.

## Building with Eliza Framework

The [ElizaOS](https://github.com/elizaOS/eliza) (formerly known as Ai16z) is an
AI framework. That means it combines multiple applications into one and
organizes their interactions. It combines:

1. Different LLMs to understand the user
2. Blockchain agents with different actions (like minting an NFT for example)
3. Datalayers to store the characters state between actions using for example
   Redis, PostgreSQL DB or local storage
4. Different clients like X, telegram, discord. etc.

Its takes all these things and puts them together in a way that you can create a
"Character" that can interact with users or autonomously. These Characters are
defined in a JSON file, which defines which actions it can perform, which LLM it
should use and different prompts that define the behaviour of the character.

### Building a Twitter (X) bot that can mint NFTs on request

What we will build now is a helpful solana developer assistant that can help
developers on the platform X to get started with solana and it will also be able
to mint NFTs to the users on demand.

&amp;lt;Steps&amp;gt;

### Clone the repository

First clone the Eliza repository:



```bash
git clone https://github.com/elizaOS/eliza.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Set up the environment
&lt;/h3&gt;

&lt;p&gt;&lt;br&gt;
  This guide requires Node.js version &lt;code&gt;23.x.x&lt;/code&gt;. Install it using &lt;a href="https://github.com/nvm-sh/nvm" rel="noopener noreferrer"&gt;nvm&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node &lt;span class="nt"&gt;--version&lt;/span&gt;  &lt;span class="c"&gt;# Check current version&lt;/span&gt;
nvm &lt;span class="nb"&gt;install &lt;/span&gt;23  &lt;span class="c"&gt;# Install Node.js 23 if needed&lt;/span&gt;
nvm use 23      &lt;span class="c"&gt;# Switch to Node.js 23&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;p&gt;Then install the dependencies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pnpm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--no-frozen-lockfile&lt;/span&gt;
pnpm build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configure environment variables
&lt;/h3&gt;

&lt;p&gt;Create your environment file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What we are interested in for this guide is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="py"&gt;TWITTER_USERNAME&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;               &lt;span class="c"&gt;# Account username
&lt;/span&gt;&lt;span class="s"&gt;TWITTER_PASSWORD=               # Account password&lt;/span&gt;
&lt;span class="py"&gt;TWITTER_EMAIL&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;
&lt;span class="py"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;                 &lt;span class="c"&gt;# Get this from: https://platform.openai.com/api-keys
&lt;/span&gt;&lt;span class="s"&gt;SOLANA_RPC_URL=https://api.devnet.solana.com # Lets work on devnet for now&lt;/span&gt;
&lt;span class="py"&gt;SOLANA_PRIVATE_KEY&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;             &lt;span class="c"&gt;# Get this from: https://solana.com/wallet
&lt;/span&gt;&lt;span class="s"&gt;SOLANA_PUBLIC_KEY=&lt;/span&gt;
&lt;span class="py"&gt;SOLANA_CLUSTER&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;devnet # Default: devnet. Solana Cluster: 'devnet' | 'testnet' | 'mainnet-beta'&lt;/span&gt;
&lt;span class="py"&gt;SOLANA_ADMIN_PRIVATE_KEY&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;       &lt;span class="c"&gt;# This wallet is used to verify NFTs (you can use the same as the SOLANA_PRIVATE_KEY for now)
&lt;/span&gt;&lt;span class="s"&gt;SOLANA_ADMIN_PUBLIC_KEY=        # This wallet is used to verify NFTs (you can use the same as the SOLANA_PUBLIC_KEY for now)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make sure you have some&lt;br&gt;
&lt;a href="https://solana.com/de/developers/guides/getstarted/solana-token-airdrop-and-faucets" rel="noopener noreferrer"&gt;devnet sol&lt;/a&gt;&lt;br&gt;
in your wallet before you start the agent.&lt;/p&gt;
&lt;h3&gt;
  
  
  Encode private key (if needed)
&lt;/h3&gt;

&lt;p&gt;If you have your private key in hex format you can base58 encode your private&lt;br&gt;
key using the following js snippet:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;```ts filename=encode58.ts&lt;br&gt;
const bs58 = require('bs58');&lt;br&gt;
console.log(bs58.encode(new Uint8Array([213,29,143,...])));&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


And run it using



```bash
npx tsx encode58.ts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Create character configuration
&lt;/h3&gt;

&lt;p&gt;To create a new character we need to create a character.json file. You can find&lt;br&gt;
the preset characters in the characters folder of the Eliza project. To create a&lt;br&gt;
new character you can copy and change one of the already existing characters or&lt;br&gt;
you can use the&lt;br&gt;
&lt;a href="https://docs.cursor.com/composer/overview" rel="noopener noreferrer"&gt;composer feature in Cursor&lt;/a&gt; and tell&lt;br&gt;
it what kind of character you want to create.&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;```json filename=characters/sol.character.json&lt;br&gt;
{&lt;br&gt;
    "name": "Sol",&lt;br&gt;
    "clients": ["twitter"],&lt;br&gt;
    "modelProvider": "openai",&lt;br&gt;
    "settings": {&lt;br&gt;
        "voice": {&lt;br&gt;
            "model": "en_US-neural"&lt;br&gt;
        },&lt;br&gt;
        ...&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


The important part here are the clients and the modelProvider. In our case we
want to use twitter as a client and openai as the model provider because this is
what we also set our secrets for in the `.env` file.

### Run the agent

Now that the configuration is done we can run our character:



```bash
pnpm start --character="characters/sol.character.json"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This will start the agent and you can now interact with it on twitter. The&lt;br&gt;
character will automatically start posting tweets every few hours and when we&lt;br&gt;
interact with him it will be able to perform solana actions like minting NFTs&lt;br&gt;
for example.&lt;/p&gt;

&lt;p&gt;Here you can see the&lt;br&gt;
&lt;a href="https://x.com/solanadevhelper/status/1882222232656847143" rel="noopener noreferrer"&gt;character in action&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can also interact with the character locally using the following command:&lt;br&gt;
You may need to free your port 3000 and start your character with the &lt;code&gt;--host&lt;/code&gt;&lt;br&gt;
flag.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pnpm start &lt;span class="nt"&gt;--character&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"characters/sol.character.json"&lt;/span&gt; &lt;span class="nt"&gt;--host&lt;/span&gt;
pnpm start:client
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If your client does not connect make sure you run your agent with the &lt;code&gt;--host&lt;/code&gt;&lt;br&gt;
flag and that your port 3000 is not in use when you start the client.&lt;/p&gt;

&lt;p&gt;For more information follow the&lt;br&gt;
&lt;a href="https://elizaos.github.io/eliza/docs/quickstart/" rel="noopener noreferrer"&gt;official eliza documentation&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Disclaimer: The Solana integration and actions are not perfect yet but they are&lt;br&gt;
in constant development and are moving fast. There will be a direct integration&lt;br&gt;
of the SendAI agent kit into Eliza soon.&lt;/p&gt;
&lt;h2&gt;
  
  
  Using GOAT Toolkit
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/goat-sdk/goat" rel="noopener noreferrer"&gt;GOAT&lt;/a&gt; is similar to Solana Agent Kit a&lt;br&gt;
collection of many different blockchain tools that also supports different&lt;br&gt;
Solana actions and other chains. It can also be integrated into the Eliza&lt;br&gt;
framework for example and supports many different wallets, frameworks and block&lt;br&gt;
chains. This&lt;br&gt;
&lt;a href="https://github.com/goat-sdk/goat/tree/main/typescript/examples/by-use-case/solana-purchase-on-amazon" rel="noopener noreferrer"&gt;example&lt;/a&gt;&lt;br&gt;
shows you how you can use &lt;a href="https://www.crossmint.com/" rel="noopener noreferrer"&gt;Crossmint&lt;/a&gt; directly in&lt;br&gt;
&lt;a href="https://codeium.com/windsurf" rel="noopener noreferrer"&gt;Windsurf code editor&lt;/a&gt; to buy Items on Amazon.&lt;br&gt;
There is also a&lt;br&gt;
&lt;a href="https://x.com/windsurf_ai/status/1903118960633188485" rel="noopener noreferrer"&gt;demo video&lt;/a&gt; available.&lt;/p&gt;
&lt;h2&gt;
  
  
  On chain program agent integration
&lt;/h2&gt;

&lt;p&gt;If you want to use an agents reply within a solana program you need to use an&lt;br&gt;
oracle that writes the reply data into an account that your program can read.&lt;br&gt;
You can find an example of an LLM which will transfer tokens to any user that&lt;br&gt;
answers questions correctly here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/GabrielePicco/super-smart-contracts" rel="noopener noreferrer"&gt;On chain program LLM interaction&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is an example of an onchain program that integrates with an LLM (AI) oracle&lt;br&gt;
to create an interactive token-dispensing agent named "Mar1o".&lt;/p&gt;
&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AI Agent Interaction&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users can chat with Mar1o to try to earn tokens&lt;/li&gt;
&lt;li&gt;Agent evaluates user's Solana knowledge to decide token amounts&lt;/li&gt;
&lt;li&gt;Responses are in JSON format with reply text and token amount&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Token Management&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creates MAR1O tokens with metadata&lt;/li&gt;
&lt;li&gt;Can mint between 0-10,000 tokens based on AI response&lt;/li&gt;
&lt;li&gt;Uses PDAs for token management&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Program flow explained
&lt;/h3&gt;

&lt;p&gt;Here's how this program works:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Initialize the AI agent with personality&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;AGENT_DESC&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"You are an AI agent called Mar1o which can dispense MAR1O tokens..."&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// User interaction flow:&lt;/span&gt;
&lt;span class="c1"&gt;// 1. User sends message to agent&lt;/span&gt;
&lt;span class="c1"&gt;// 2. Oracle processes with LLM&lt;/span&gt;
&lt;span class="c1"&gt;// 3. Agent responds with JSON containing reply and amount&lt;/span&gt;
&lt;span class="c1"&gt;// 4. If amount &amp;gt; 0, tokens are minted to user&lt;/span&gt;

&lt;span class="c1"&gt;// Example response:&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;"reply"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Great answer! Here's a reward."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;"amount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This demonstrates how to combine AI capabilities with onchain token mechanics to&lt;br&gt;
create interactive blockchain experiences. Here is a&lt;br&gt;
&lt;a href="https://mar1o.xyz/" rel="noopener noreferrer"&gt;live example&lt;/a&gt; where you can try to convince the Agent to&lt;br&gt;
transfer you some tokens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advanced Rust agents for algorithmic trading
&lt;/h2&gt;

&lt;p&gt;If you want to write your agents in Rust you can use the&lt;br&gt;
&lt;a href="https://github.com/0xPlaygrounds/rig" rel="noopener noreferrer"&gt;Rig framework&lt;/a&gt; and the&lt;br&gt;
&lt;a href="https://github.com/piotrostr/listen" rel="noopener noreferrer"&gt;Listen.rs&lt;/a&gt; library.&lt;/p&gt;

&lt;p&gt;These two work nicely together. While the Rig framework gives you an easy way to&lt;br&gt;
connect to LLMs the Listen.rs toolkit provides you the Solana integration&lt;br&gt;
including Transaction monitoring and sending transactions using Jito bundles for&lt;br&gt;
example.&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Know that your agent has a private key and thus can access the funds in your
wallet. If someone can chat with your agent and it has a transfer action for
example users can probably get it to transfer them your funds.&lt;/li&gt;
&lt;li&gt;Use a paid &lt;a href="https://solana.com/rpc" rel="noopener noreferrer"&gt;RPC endpoints&lt;/a&gt;. The public endpoints
usually get rate limited&lt;/li&gt;
&lt;li&gt;Monitor agent activities and make sure they are not doing anything malicious
or get tricked into it by users interacting with them&lt;/li&gt;
&lt;li&gt;Implement priority fees and transaction retries to your agent actions so that
they also land when there is congestion on the network&lt;/li&gt;
&lt;li&gt;If possible test on devnet first before you deploy to mainnet. Most agents
just take the RPC url as an input and you can use a devnet one until your are
ready for mainnet. Not all actions maybe possible to do on devnet though.&lt;/li&gt;
&lt;li&gt;When writing your own actions add integration tests for them so that the
frameworks can monitor which actions are failing due to changed programs or
APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;AI agents on Solana open up new possibilities for automation and interaction&lt;br&gt;
with the blockchain. While not all integrations are perfect yet they are&lt;br&gt;
developed fast and offer lots of opportunity for contributions and are very&lt;br&gt;
flexible of adding your own integrations.&lt;/p&gt;

</description>
      <category>rust</category>
      <category>ai</category>
      <category>web3</category>
    </item>
    <item>
      <title>La Aventura de construir Kungu con Solana y IA</title>
      <dc:creator>Derlys</dc:creator>
      <pubDate>Sun, 05 Apr 2026 10:47:49 +0000</pubDate>
      <link>https://dev.to/derlys/la-aventura-de-construir-kungu-con-solana-y-ia-gcd</link>
      <guid>https://dev.to/derlys/la-aventura-de-construir-kungu-con-solana-y-ia-gcd</guid>
      <description>&lt;p&gt;¡Hola, comunidad! Hoy les traigo un caso de estudio completo sobre la creación de &lt;strong&gt;Kungu&lt;/strong&gt;, una app de directorios de comunidades hispanas sobre Solana. Este no es un tutorial lineal; es una crónica de un proceso de desarrollo real, lleno de prompts de IA, pivotes de diseño y soluciones a errores inesperados.&lt;/p&gt;

&lt;p&gt;El objetivo es mostrar cómo, partiendo de un template, se puede llegar a una aplicación con una identidad visual única, usando la IA como un copiloto de desarrollo.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. El Stack Tecnológico: La Caja de Herramientas
&lt;/h2&gt;

&lt;p&gt;La elección de herramientas fue clave para la agilidad del proyecto:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Base:&lt;/strong&gt; &lt;a href="https://github.com/beeman/solana-mobile-monorepo" rel="noopener noreferrer"&gt;Solana Mobile Monorepo de Beeman&lt;/a&gt;, instalado con &lt;code&gt;bun&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Generación de UI:&lt;/strong&gt; Prototipado inicial con &lt;a href="https://www.magicpatterns.com/" rel="noopener noreferrer"&gt;Magic Patterns&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Asistente de Código:&lt;/strong&gt; &lt;strong&gt;Codex&lt;/strong&gt; (o un asistente similar) integrado en el editor (WebStorm).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Styling:&lt;/strong&gt; Una configuración moderna y específica: &lt;strong&gt;Uniwind&lt;/strong&gt; (para usar clases de Tailwind en React Native), &lt;code&gt;tailwind-variants&lt;/code&gt; y &lt;code&gt;heroui-native&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Navegación:&lt;/strong&gt; &lt;strong&gt;Expo Router&lt;/strong&gt;, que permite una navegación basada en la estructura de archivos.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Animación:&lt;/strong&gt; &lt;code&gt;react-native-reanimated&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. El Kick-off: Clonar el Monorepo y Preparar la IA
&lt;/h2&gt;

&lt;p&gt;El primer paso fue establecer la base. El monorepo de Solana nos da toda la lógica de conexión de wallets lista para usar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Clonar el template&lt;/span&gt;
bun x create-seed@latest &lt;span class="nt"&gt;-t&lt;/span&gt; gh:beeman/solana-mobile-monorepo

&lt;span class="c"&gt;# 2. Abrir el proyecto en el editor&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Lección Clave:&lt;/strong&gt; Para que la IA (Codex) sea realmente útil, debemos usarla &lt;strong&gt;dentro del editor de código&lt;/strong&gt;. De esta forma, tiene acceso a la estructura de archivos del proyecto, el &lt;code&gt;package.json&lt;/code&gt; y el código existente, lo que permite generar respuestas mucho más precisas.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Fase 1: Creando el "Community Rolodex"
&lt;/h2&gt;

&lt;p&gt;La idea inicial era mostrar las comunidades en un formato de tarjetas apiladas, como un Rolodex. Para ello, usamos un prompt muy detallado dirigido a la IA.&lt;/p&gt;

&lt;h3&gt;
  
  
  El Prompt para Crear el Componente
&lt;/h3&gt;

&lt;p&gt;Este prompt se ejecutó en el chat del editor, especificando la ruta exacta (&lt;code&gt;apps/native&lt;/code&gt;) y las restricciones para no alterar la lógica de Solana.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Act as a React Native expert. I want to implement a 'Rolodex' style community directory in this specific project.&lt;br&gt;
&lt;strong&gt;Project Context:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Location:&lt;/strong&gt; &lt;code&gt;apps/native&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Routing:&lt;/strong&gt; Expo Router (file-based)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target File:&lt;/strong&gt; &lt;code&gt;apps/native/app/(drawer)/(tabs)/index.tsx&lt;/code&gt;
&lt;strong&gt;Tasks:&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Create a Component:&lt;/strong&gt; Create a new file &lt;code&gt;apps/native/components/CommunityRolodex.tsx&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Component Logic:&lt;/strong&gt; Define a &lt;code&gt;COMMUNITIES&lt;/code&gt; array (name, logoUrl, link). Use a &lt;code&gt;FlatList&lt;/code&gt; with a stacked card visual. Ensure it only renders for authenticated users.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Styling:&lt;/strong&gt; Use the project's existing styling solution (&lt;code&gt;uniwind&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Interaction:&lt;/strong&gt; Use &lt;code&gt;Linking.openURL&lt;/code&gt; for the external links."&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  El Reto del Estilo: Uniwind vs NativeWind
&lt;/h3&gt;

&lt;p&gt;Pronto descubrimos que el proyecto no usaba &lt;code&gt;NativeWind&lt;/code&gt;, sino &lt;code&gt;uniwind&lt;/code&gt;. Esto requirió un nuevo prompt enfocado exclusivamente en el estilo, indicándole a la IA que usara &lt;code&gt;className&lt;/code&gt; y se basara en los componentes de &lt;code&gt;heroui-native&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Fase 2: El Pivote de Diseño hacia el Neo-Brutalismo
&lt;/h2&gt;

&lt;p&gt;El efecto Rolodex se sentía apretado en móvil. En lugar de forzarlo, tomamos una decisión de diseño audaz: adoptar un estilo &lt;strong&gt;Neo-Brutalista&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;El Neo-Brutalismo en UI se caracteriza por colores de alto contraste, bordes y sombras duras, y una tipografía fuerte. Prioriza la honestidad de los materiales digitales.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Esto implicó unificar toda la UI de la app bajo esta nueva dirección visual, desechando el look &amp;amp; feel inicial del template.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Fase 3: Reestructuración de la Navegación y la UI
&lt;/h2&gt;

&lt;p&gt;Con el nuevo estilo definido, la estructura de la app también debía cambiar.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;De Drawer a Tab Bar:&lt;/strong&gt; Reemplazamos el menú lateral (Drawer) por una barra de navegación inferior (Bottom Tab Bar), un estándar de oro en UX móvil.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Home como Wallet:&lt;/strong&gt; Nos inspiramos en la distribución de la interfaz de &lt;strong&gt;Jupiter (Jup.ag)&lt;/strong&gt; para rediseñar la pantalla de inicio, enfocándonos en la utilidad y la visualización de activos, pero manteniendo nuestra estética Neo-Brutalista.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Ajuste de Iconos y Fuentes:&lt;/strong&gt; Un reto común fue que los iconos y textos del nuevo Tab Bar eran demasiado grandes. Se necesitó un prompt específico para que la IA ajustara los tamaños y los alineara con el nuevo diseño compacto y minimalista.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  6. Troubleshooting: Resolviendo Errores del Mundo Real
&lt;/h2&gt;

&lt;p&gt;Ningún proyecto está exento de errores. Aquí los dos más importantes que surgieron:&lt;/p&gt;

&lt;h3&gt;
  
  
  Error de Build en Android (Gradle Cache)
&lt;/h3&gt;

&lt;p&gt;Al compilar, apareció un error en la carpeta &lt;code&gt;.../android/app/build/intermediates/...&lt;/code&gt;. Esto no tenía que ver con el código de React Native, sino con la caché de Gradle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solución rápida desde la terminal:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;android &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; ./gradlew clean &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; ..
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Inconsistencia en el Modo Oscuro/Claro
&lt;/h3&gt;

&lt;p&gt;Al implementar el cambio de tema, &lt;code&gt;bun run check-types&lt;/code&gt; arrojó un error de tipos en TypeScript. El sistema no podía asegurar que el &lt;code&gt;systemColorScheme&lt;/code&gt; fuera siempre &lt;code&gt;'light'&lt;/code&gt; o &lt;code&gt;'dark'&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solución (Mapeo Seguro):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Mapeo seguro para que TypeScript no se queje&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;themeToSet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;systemColorScheme&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;light&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;systemColorScheme&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;dark&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
  &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;systemColorScheme&lt;/span&gt; 
  &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;dark&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Default a 'dark' si el valor es inesperado&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusión: Un Proceso Orgánico Guiado por la IA
&lt;/h2&gt;

&lt;p&gt;Kungu evolucionó de una simple idea de "tarjetas Rolodex" a una aplicación Web3 con una identidad visual fuerte y una estructura profesional. La lección más importante fue no tener miedo a pivotar. El diseño inicial no funcionó, pero nos llevó a una solución mucho más interesante y única.&lt;/p&gt;

&lt;p&gt;Usar la IA como un copiloto nos permitió externalizar la generación de código repetitivo y enfocarnos en las decisiones estratégicas de UX y diseño. &lt;/p&gt;

&lt;p&gt;¡Espero que esta crónica detallada te sirva de inspiración para tus propios proyectos! ¿Te animas a probar el Neo-Brutalismo en tus apps? ¡Te leo en los comentarios! 🚀&lt;/p&gt;

</description>
      <category>solana</category>
      <category>reactnative</category>
      <category>ai</category>
      <category>web3</category>
    </item>
    <item>
      <title>Onelingo MVP: Lo que aprendí cuando mi app de idiomas no salió como esperaba (Post-Mortem)</title>
      <dc:creator>Derlys</dc:creator>
      <pubDate>Tue, 17 Mar 2026 10:43:10 +0000</pubDate>
      <link>https://dev.to/derlys/onelingo-mvp-lo-que-aprendi-cuando-mi-app-de-idiomas-no-salio-como-esperaba-post-mortem-1em4</link>
      <guid>https://dev.to/derlys/onelingo-mvp-lo-que-aprendi-cuando-mi-app-de-idiomas-no-salio-como-esperaba-post-mortem-1em4</guid>
      <description>&lt;h2&gt;
  
  
  Onelingo MVP: Lo que aprendí cuando mi app de idiomas no salió como esperaba
&lt;/h2&gt;

&lt;p&gt;¡Hola a todos! Hoy no vengo a traerles el típico tutorial donde todo sale perfecto a la primera. Vengo a contarles la historia de &lt;strong&gt;Onelingo&lt;/strong&gt;, una app de micro-desafíos diarios de idiomas que intenté construir usando &lt;strong&gt;Hugging Face Spaces&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Aunque el resultado final no fue exactamente lo que visualicé inicialmente, el proceso me dejó lecciones invaluables sobre despliegue, autenticación y la importancia de una arquitectura limpia. Aquí les comparto mi "Post-Mortem" técnico.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. El concepto: Onelingo
&lt;/h2&gt;

&lt;p&gt;La idea era crear una alternativa a Duolingo pero sin niveles infinitos: solo 3 micro-desafíos diarios (Reading, Listening y Speaking).&lt;/p&gt;

&lt;h3&gt;
  
  
  El stack elegido:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Hosting:&lt;/strong&gt; Hugging Face Spaces (Static SDK).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;IA de apoyo:&lt;/strong&gt; HuggingChat (Llama 3 / Qwen).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Frontend:&lt;/strong&gt; HTML/JS/CSS con Tailwind vía CDN.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. El primer obstáculo: El "Rito de Iniciación" de Git
&lt;/h2&gt;

&lt;p&gt;Al intentar mover el código desde el editor web de Hugging Face a mi entorno local (WebStorm), me topé con el error que detiene a muchos principiantes:&lt;br&gt;
&lt;code&gt;remote: Invalid username or password. fatal: Authentication failed&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  El aprendizaje:
&lt;/h3&gt;

&lt;p&gt;Hugging Face no usa tu contraseña de usuario para las operaciones de Git. Necesitas un &lt;strong&gt;Access Token&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  La solución técnica:
&lt;/h3&gt;

&lt;p&gt;Si te sucede esto, debes forzar la URL del remoto para incluir tu token:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote set-url origin https://TU_USUARIO:TU_TOKEN_HF@huggingface.co/spaces/TU_USUARIO/onelingo-mvp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Tip: Genera tu token en Settings &amp;gt; Access Tokens con permisos de "Write".&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  3. El error de lógica: El "Esqueleto" sin cerebro
&lt;/h2&gt;

&lt;p&gt;inicialmente, la app se veía genial con Tailwind, pero al hacer clic en las opciones de respuesta, no pasaba nada. El código generado por la IA era visualmente correcto pero funcionalmente vacío.&lt;/p&gt;

&lt;h3&gt;
  
  
  El Aprendizaje:
&lt;/h3&gt;

&lt;p&gt;No confíes ciegamente en el primer bloque de código que te da una IA. Siempre verifica que las funciones de validación de estado (como el manejo de respuestas correctas/incorrectas) estén implementadas.&lt;/p&gt;

&lt;h3&gt;
  
  
  La solución futura:
&lt;/h3&gt;

&lt;p&gt;Para evitar esto, mi recomendación es separar la lógica en archivos distintos desde el principio:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;code&gt;index.html&lt;/code&gt;: Estructura.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;style.css&lt;/code&gt;: Diseño.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;app.js&lt;/code&gt;: El "cerebro" (validación de desafíos y Web Speech API).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. Implementando speaking: El reto del Navegador
&lt;/h2&gt;

&lt;p&gt;Intentamos usar la &lt;strong&gt;Web Speech API&lt;/strong&gt; para el reconocimiento de voz. Aunque funciona bien en Chrome de escritorio, puede ser muy inestable en navegadores móviles o integrados (como el de Instagram o Twitter).&lt;/p&gt;

&lt;h3&gt;
  
  
  Aprendizaje clave:
&lt;/h3&gt;

&lt;p&gt;Si tu app depende del micrófono, asegúrate de manejar los errores de permisos y de informar al usuario si su navegador no es compatible.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. ¿Qué haría diferente la próxima vez?
&lt;/h2&gt;

&lt;p&gt;Si estás pensando en crear un MVP similar, aquí te dejo mi hoja de ruta mejorada:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Arquitectura modular:&lt;/strong&gt; No metas todo en un solo &lt;code&gt;index.html&lt;/code&gt;. Usa una estructura de carpetas clara para que sea fácil de depurar.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Validación de IA:&lt;/strong&gt; En lugar de pedir "hazme la app", pide "hazme la lógica de validación para un array de objetos JSON". Es mucho más preciso.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Hugging Face vs Vercel:&lt;/strong&gt; Hugging Face es increíble para demos de IA, pero si tu app es puramente frontend (Static), Vercel o Netlify ofrecen un flujo de Git mucho más amigable para principiantes.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Conclusión
&lt;/h2&gt;

&lt;p&gt;A veces, el éxito de un proyecto no está en el despliegue final, sino en los &lt;strong&gt;bugs que lograste entender&lt;/strong&gt;. Onelingo me enseñó que la autenticación con tokens y la estructura de archivos son los cimientos de cualquier proyecto serio.&lt;/p&gt;

&lt;p&gt;¿Has tenido algún proyecto que no salió como esperabas? ¡Cuéntame tu experiencia en los comentarios y qué aprendiste de ello! 🚀&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Este tutorial es parte de mi serie de aprendizaje continuo como desarrolladora nómada. ¡Sigamos construyendo!&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>learnings</category>
      <category>beginners</category>
    </item>
    <item>
      <title>YouCanChef: ¿Cómo creé mi propio asistente de cocina nómada con IA?</title>
      <dc:creator>Derlys</dc:creator>
      <pubDate>Sat, 14 Mar 2026 11:53:32 +0000</pubDate>
      <link>https://dev.to/derlys/youcanchef-como-cree-mi-propio-asistente-de-cocina-nomada-con-ia-495l</link>
      <guid>https://dev.to/derlys/youcanchef-como-cree-mi-propio-asistente-de-cocina-nomada-con-ia-495l</guid>
      <description>&lt;h2&gt;
  
  
  YouCanChef: ¿Cómo creé mi propio asistente de cocina nómada con IA?
&lt;/h2&gt;

&lt;p&gt;¡Hola, nómadas y amantes de la cocina! Como alguien que viaja constantemente por el mundo, me encanta replicar las recetas que pruebo en los restaurantes locales. Sin embargo, el gran reto es: &lt;strong&gt;¿Cómo encuentro estos ingredientes en un país diferente?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hoy les comparto cómo construí &lt;strong&gt;"YouCanChef"&lt;/strong&gt;, una herramienta que analiza ingredientes y te dice si son fáciles de encontrar en tu ubicación actual o cómo reemplazarlos.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. El concepto: gastro-mapping e inteligencia de sustitución
&lt;/h2&gt;

&lt;p&gt;La idea es simple pero poderosa:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Input:&lt;/strong&gt; Nombre del plato o lista de ingredientes + Tu ubicación actual.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Proceso:&lt;/strong&gt; La IA analiza la "Cultura de Mercado" local.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Output:&lt;/strong&gt; Un semáforo de disponibilidad (🟢 Fácil, 🟡 Especialidad, 🔴 Inexistente) y sugerencias de sustitutos inteligentes.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. El stack tecnológico (100% Gratuito)
&lt;/h2&gt;

&lt;p&gt;Para este proyecto, utilicé herramientas que permiten prototipar a velocidad luz sin gastar un centavo:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Componente&lt;/th&gt;
&lt;th&gt;Herramienta&lt;/th&gt;
&lt;th&gt;¿Por qué?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cerebro (IA)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://aistudio.google.com/" rel="noopener noreferrer"&gt;Google AI Studio (Gemini)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Capa gratuita generosa y excelente razonamiento.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Prototipado Rápido&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://bolt.new/" rel="noopener noreferrer"&gt;Bolt.new&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Genera aplicaciones completas a partir de prompts.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Editor de Código&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;WebStorm / VS Code&lt;/td&gt;
&lt;td&gt;Para refinamiento técnico y control de versiones.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Despliegue&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Vercel&lt;/td&gt;
&lt;td&gt;Hosting rápido y gratuito para proyectos personales.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  3. El Plan de acción: Del MVP a Pro
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Fase 1: El MVP "Lean"
&lt;/h3&gt;

&lt;p&gt;En lugar de conectar APIs de inventarios de supermercados (que es complejo), usamos la &lt;strong&gt;base de conocimiento de la IA&lt;/strong&gt; para estimar la probabilidad de encontrar un ingrediente.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Ejemplo:&lt;/strong&gt; &lt;em&gt;"¿Qué tan probable es encontrar Achiote en Madrid?"&lt;/em&gt; -&amp;gt; IA: &lt;em&gt;"90% en tiendas latinas de Lavapiés, 20% en supermercados comunes"&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. Superando retos técnicos (Tips para devs)
&lt;/h2&gt;

&lt;p&gt;Durante la creación, me encontré con un par de "clásicos" que te ahorrarán tiempo:&lt;/p&gt;

&lt;h3&gt;
  
  
  El Error de la API Key en Bolt.new
&lt;/h3&gt;

&lt;p&gt;Si usas Bolt.new, a veces el código no detecta tu &lt;code&gt;GEMINI_API_KEY&lt;/code&gt; aunque esté en el archivo &lt;code&gt;.env&lt;/code&gt;.&lt;br&gt;
&lt;strong&gt;Solución:&lt;/strong&gt; Asegúrate de que la variable esté declarada con el prefijo &lt;code&gt;VITE_&lt;/code&gt; si estás usando Vite:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;tempKey&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;meta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;VITE_GEMINI_API_KEY&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  El modelo "Fantasma" (404 Not Found)
&lt;/h3&gt;

&lt;p&gt;Google actualiza sus modelos constantemente. Si recibes un error 404 al llamar a la API, verifica el nombre del modelo. Actualmente, &lt;code&gt;gemini-1.5-flash&lt;/code&gt; es la opción más estable, pero en entornos de preview podrías necesitar &lt;code&gt;gemini-3-flash-preview&lt;/code&gt; (según tu región y acceso).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;genAI&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getGenerativeModel&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;gemini-1.5-flash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  5. De bolt.new a producción
&lt;/h2&gt;

&lt;p&gt;Una vez que el prototipo funcionó en Bolt, el siguiente paso fue llevarlo a mi entorno local para tener control total:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Clonar el repo:&lt;/strong&gt; &lt;code&gt;git clone &amp;lt;tu-repo-de-bolt&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Instalar dependencias:&lt;/strong&gt; &lt;code&gt;npm install&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Configurar Git:&lt;/strong&gt; Si descargaste el ZIP, inicializa con &lt;code&gt;git init&lt;/code&gt; y conecta tu origen.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Deploy:&lt;/strong&gt; Conecta tu cuenta de GitHub con Vercel y ¡listo!&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Conclusión
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;YouCanChef&lt;/strong&gt; no es solo una app, es un compañero de viaje. Me enseñó que con la IA adecuada, las fronteras culinarias desaparecen. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Qué sigue?&lt;/strong&gt; Estoy trabajando en un motor de "Sustitución de sabores" que analice perfiles de sabor para sugerir reemplazos exactos cuando un ingrediente es imposible de hallar.&lt;/p&gt;

&lt;p&gt;¿Te animas a construir tu propio asistente de viajes? ¡Cuéntame en los comentarios qué otra utilidad le darías a la IA para nómadas! 🌍✈️&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; No esperes a tener la app perfecta. Lanza el MVP, prueba si la IA te da buenos consejos de cocina y luego añade las fotos y los mapas.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>nomad</category>
      <category>gemini</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Explicándole blockchain a mi mamá: Guía para principiantes</title>
      <dc:creator>Derlys</dc:creator>
      <pubDate>Fri, 13 Mar 2026 12:37:51 +0000</pubDate>
      <link>https://dev.to/derlys/explicandole-blockchain-a-mi-mama-guia-para-principiantes-2i19</link>
      <guid>https://dev.to/derlys/explicandole-blockchain-a-mi-mama-guia-para-principiantes-2i19</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;📚 &lt;strong&gt;Serie: Explicándole blockchain a mi mamá&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introducción a la economía &lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Explicándole blockchain a mi mamá: Guía para principiantes
&lt;/h2&gt;

&lt;p&gt;¡Hola a todos! A veces, los conceptos más complejos de la tecnología son más fáciles de entender cuando intentamos explicárselos a alguien que no tiene experiencia previa en el área. &lt;/p&gt;

&lt;p&gt;En este tutorial, basado en el primer episodio de mi serie "Explicándole blockchain a mi mamá", vamos a desglosar los pilares fundamentales de la economía actual y por qué la tecnología &lt;strong&gt;Blockchain&lt;/strong&gt; es una alternativa tan revolucionaria.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. El problema: Inflación y carestía
&lt;/h2&gt;

&lt;p&gt;Antes de hablar de tecnología, debemos entender el contexto económico. Seguramente has escuchado a tus padres o abuelos decir: &lt;em&gt;"Antes, con este mismo billete, compraba el doble de cosas"&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;A este fenómeno lo llamamos &lt;strong&gt;inflación&lt;/strong&gt; o, en términos más sencillos, &lt;strong&gt;carestía&lt;/strong&gt;. Es el proceso por el cual el dinero pierde su valor adquisitivo con el tiempo.&lt;/p&gt;

&lt;h3&gt;
  
  
  ¿Por qué sucede?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Emisión desmedida:&lt;/strong&gt; Los bancos centrales imprimen más dinero del que la economía puede respaldar.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Devaluación:&lt;/strong&gt; Al haber más dinero en circulación pero la misma cantidad de productos, los precios suben.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. El sistema tradicional: Centralización bancaria
&lt;/h2&gt;

&lt;p&gt;Hoy en día, dependemos de los bancos para mover nuestro dinero. Este es un sistema &lt;strong&gt;centralizado&lt;/strong&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Característica&lt;/th&gt;
&lt;th&gt;Sistema Bancario Tradicional&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Control&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;El banco decide si aprueba o bloquea tus transacciones.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Privacidad&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tu información financiera es privada para el público, pero totalmente visible para el banco y el gobierno.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Intermediarios&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Siempre necesitas a un tercero para validar que tienes el dinero.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  3. ¿Qué es blockchain? La revolución de la transparencia
&lt;/h2&gt;

&lt;p&gt;Imagina un libro contable donde se anotan todas las transacciones del mundo, pero con tres reglas mágicas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Es público:&lt;/strong&gt; Cualquiera puede ver las transacciones (aunque no necesariamente quién las hizo).&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Es inmutable:&lt;/strong&gt; Una vez que algo se escribe, no se puede borrar ni modificar.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Es descentralizado:&lt;/strong&gt; No le pertenece a un solo banco; miles de computadoras en todo el mundo guardan una copia de ese libro.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  La analogía del libro de cuentas
&lt;/h3&gt;

&lt;p&gt;En la blockchain, si yo te envío una "moneda digital", toda la red verifica que yo realmente tenía esa moneda antes de validar la transferencia. No necesitamos un banco que diga "sí, él tiene el dinero"; la propia red lo confirma mediante matemáticas y criptografía.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Seguridad y empoderamiento
&lt;/h2&gt;

&lt;p&gt;Uno de los puntos más debatidos es el &lt;strong&gt;control&lt;/strong&gt;. En el sistema tradicional, el banco es el dueño de la infraestructura. Si el banco cae o decide congelar tu cuenta, pierdes acceso a tus fondos.&lt;/p&gt;

&lt;p&gt;En la &lt;strong&gt;Blockchain&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Tú eres tu propio banco:&lt;/strong&gt; Tienes el control total de tus activos a través de llaves privadas.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Transparencia Total:&lt;/strong&gt; Al ser un registro público, es mucho más difícil cometer fraudes sin que alguien lo note.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Seguridad:&lt;/strong&gt; La descentralización hace que sea casi imposible hackear todo el sistema a la vez.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Conclusión: El primer paso
&lt;/h2&gt;

&lt;p&gt;Este es solo el comienzo. Entender que el dinero actual tiene fallas (como la inflación) y que existe una tecnología capaz de devolvernos el control de forma transparente es el primer paso para entrar al mundo de la Web3.&lt;/p&gt;

&lt;p&gt;En el próximo episodio, veremos &lt;strong&gt;cómo crear tu primera wallet&lt;/strong&gt; y empezar a interactuar con este nuevo ecosistema.&lt;/p&gt;

&lt;p&gt;¡Gracias por leer! Si tienes alguna pregunta sobre cómo explicarle esto a tus amigos o familiares, déjala en los comentarios. 🚀&lt;/p&gt;




</description>
      <category>blockchain</category>
      <category>solana</category>
      <category>education</category>
      <category>spanish</category>
    </item>
    <item>
      <title>CanguDev: ¿Cómo construí mi propio mentor de inglés técnico con Next.js y Gemini AI?</title>
      <dc:creator>Derlys</dc:creator>
      <pubDate>Fri, 13 Mar 2026 11:07:39 +0000</pubDate>
      <link>https://dev.to/derlys/cangudev-como-construi-mi-propio-mentor-de-ingles-tecnico-con-nextjs-y-gemini-ai-mmk</link>
      <guid>https://dev.to/derlys/cangudev-como-construi-mi-propio-mentor-de-ingles-tecnico-con-nextjs-y-gemini-ai-mmk</guid>
      <description>&lt;h2&gt;
  
  
  CanguDev: Cómo construí mi propio mentor de inglés técnico con Next.js y Gemini AI
&lt;/h2&gt;

&lt;p&gt;¡Hola, comunidad! Hoy quiero compartir con ustedes el proceso de creación de &lt;strong&gt;CanguDev&lt;/strong&gt;, una aplicación que nació de una necesidad personal: mejorar mi inglés técnico para alcanzar un nivel C1, enfocado específicamente en el mundo del desarrollo de software.&lt;/p&gt;

&lt;p&gt;En este tutorial, te guiaré paso a paso por el proceso de construcción, desde la idea inicial hasta el despliegue como una PWA (Progressive Web App).&lt;/p&gt;

&lt;h2&gt;
  
  
  1. El concepto: ¿Por qué CanguDev?
&lt;/h2&gt;

&lt;p&gt;Como desarrolladores, el inglés es nuestra "lengua materna" técnica. Sin embargo, pasar del nivel intermedio al avanzado requiere práctica constante con terminología real. &lt;strong&gt;CanguDev&lt;/strong&gt; actúa como un mentor que analiza textos técnicos y te proporciona feedback instantáneo, correcciones y explicaciones gramaticales contextualizadas.&lt;/p&gt;

&lt;h3&gt;
  
  
  El stack tecnológico
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Framework:&lt;/strong&gt; &lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;Next.js&lt;/a&gt; (App Router)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Lenguaje:&lt;/strong&gt; TypeScript&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Estilos:&lt;/strong&gt; Tailwind CSS&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;IA:&lt;/strong&gt; &lt;a href="https://ai.google.dev/" rel="noopener noreferrer"&gt;Google Generative AI&lt;/a&gt; (Gemini 1.5 Flash)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Despliegue:&lt;/strong&gt; Vercel&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. Inicialización del proyecto
&lt;/h2&gt;

&lt;p&gt;Primero, creamos nuestro proyecto base de Next.js. En la terminal, ejecutamos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx create-next-app@latest cangudev &lt;span class="nt"&gt;--typescript&lt;/span&gt; &lt;span class="nt"&gt;--tailwind&lt;/span&gt; &lt;span class="nt"&gt;--eslint&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Durante la configuración, asegúrate de seleccionar el uso de &lt;code&gt;App Router&lt;/code&gt; y &lt;code&gt;src/ directory&lt;/code&gt; si así lo prefieres.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Integrando el "Cerebro": Gemini AI
&lt;/h2&gt;

&lt;p&gt;Para que CanguDev pueda analizar inglés, necesitamos conectarlo con el modelo de Google.&lt;/p&gt;

&lt;h3&gt;
  
  
  Paso A: Obtener la API Key
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt; Ve a &lt;a href="https://aistudio.google.com/" rel="noopener noreferrer"&gt;Google AI Studio&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt; Crea un nuevo proyecto y genera tu API Key.&lt;/li&gt;
&lt;li&gt; En la raíz de tu proyecto, crea un archivo &lt;code&gt;.env.local&lt;/code&gt; y guarda tu llave:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GOOGLE_GENERATIVE_AI_API_KEY=Tu_API_Key_Aqui
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Paso B: Instalación de la SDK
&lt;/h3&gt;

&lt;p&gt;Instalamos la librería oficial de Google:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pnpm add @google/generative-ai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. Creando el analizador (Route Handler)
&lt;/h2&gt;

&lt;p&gt;En Next.js, creamos un endpoint en &lt;code&gt;app/api/analyze/route.ts&lt;/code&gt; que se encargará de procesar las peticiones. Aquí es donde ocurre la magia del &lt;strong&gt;Prompt Engineering&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;GoogleGenerativeAI&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@google/generative-ai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;NextResponse&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next/server&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;genAI&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;GoogleGenerativeAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;GOOGLE_GENERATIVE_AI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;POST&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;genAI&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getGenerativeModel&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gemini-1.5-flash&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`
      Actúa como un mentor de inglés técnico nivel C1 para desarrolladores.
      Analiza el siguiente texto y devuelve un JSON con:
      1. Correcciones gramaticales.
      2. Sugerencias de vocabulario técnico más avanzado.
      3. Una breve explicación del "por qué" de los cambios.

      Texto a analizar: "&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"
    `&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generateContent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;NextResponse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;analysis&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;text&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Error en la IA:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;NextResponse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Error procesando la IA&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  5. La experiencia de usuario: PWA e interfaz
&lt;/h2&gt;

&lt;p&gt;Queremos que CanguDev se sienta como una app nativa en nuestro móvil. Para ello, configuramos las capacidades de &lt;strong&gt;PWA&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuración del manifest
&lt;/h3&gt;

&lt;p&gt;Creamos un archivo &lt;code&gt;public/manifest.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CanguDev Mentor"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"short_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CanguDev"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Analizador de inglés técnico C1 para devs"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"start_url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"display"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"standalone"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"background_color"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"#f8fafc"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"theme_color"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"#2563eb"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"icons"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"src"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/logo.png"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"sizes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"192x192"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"image/png"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configuración del layout
&lt;/h3&gt;

&lt;p&gt;En &lt;code&gt;app/layout.tsx&lt;/code&gt;, añadimos los metadatos necesarios:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Metadata&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;CanguDev&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;AI Technical English Mentor&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;manifest&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/manifest.json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;appleWebApp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;capable&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;statusBarStyle&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;default&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;CanguDev&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  6. Desafíos y aprendizajes
&lt;/h2&gt;

&lt;p&gt;Durante el desarrollo, me encontré con algunos obstáculos interesantes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Conflictos de Node:&lt;/strong&gt; Aprendí que mezclar &lt;code&gt;npm&lt;/code&gt; y &lt;code&gt;pnpm&lt;/code&gt; puede causar errores de "lock file". La solución fue limpiar &lt;code&gt;node_modules&lt;/code&gt; y elegir un solo gestor.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Depuración de la IA:&lt;/strong&gt; Inicialmente, el modelo me devolvía errores de formato. Ajustar el &lt;code&gt;System Prompt&lt;/code&gt; y verificar que la API Key estuviera correctamente cargada en Vercel fue clave.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Instalación en iOS:&lt;/strong&gt; A diferencia de Android, en iOS los usuarios deben usar la opción "Añadir a pantalla de inicio" desde Safari para instalar la PWA.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  7. Despliegue
&lt;/h2&gt;

&lt;p&gt;Finalmente, subí el código a GitHub y lo conecté con &lt;strong&gt;Vercel&lt;/strong&gt;. ¡En menos de 2 minutos la app estaba en producción!&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusión
&lt;/h2&gt;

&lt;p&gt;Construir CanguDev no solo me ayudó a mejorar mi inglés, sino que me permitió entender mejor cómo integrar IA en aplicaciones modernas de forma gratuita (usando el tier gratuito de Gemini).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Qué sigue?&lt;/strong&gt; Planeo añadir reconocimiento de voz para practicar la pronunciación y un historial de errores comunes.&lt;/p&gt;

&lt;p&gt;Mira el repositorio 👉🏽 &lt;a href="https://github.com/Derlys/cangudev" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;¡Espero que este tutorial te inspire a crear tu propia herramienta personalizada! Si tienes dudas, déjalas en los comentarios. 🚀&lt;/p&gt;




</description>
      <category>nextjs</category>
      <category>ai</category>
      <category>tutorial</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Utilizando la librería Mongoose</title>
      <dc:creator>Derlys</dc:creator>
      <pubDate>Wed, 08 Jan 2025 15:48:14 +0000</pubDate>
      <link>https://dev.to/derlys/utilizando-la-libreria-mongoose-34ad</link>
      <guid>https://dev.to/derlys/utilizando-la-libreria-mongoose-34ad</guid>
      <description>&lt;p&gt;Si ya tienes una base de datos creada en &lt;code&gt;nestjs&lt;/code&gt; este tutorial es para ti con tan solo 6 simples pasos tienes la conexión a &lt;code&gt;Mongo&lt;/code&gt; que necesitas.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Si te gustaría seguir un tutorial desde cero donde creemos los mudulos y esquemas antes de la conexión te recomiento &lt;a href="https://dev.tourl"&gt;este&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;En este tutorial crearemos un &lt;code&gt;DatabaseModule&lt;/code&gt; que se basa en el paquete &lt;code&gt;Mongoose&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 1
&lt;/h2&gt;

&lt;p&gt;Instala la librería de &lt;code&gt;Mongoose&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; npm install --save mongoose
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Paso 2
&lt;/h2&gt;

&lt;p&gt;Establece la conexión con tu base de datos utilizando la función &lt;code&gt;connect ()&lt;/code&gt; esta función te devuelve una promesa, por eso debes generar un proveedor asíncrono.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crea un archivo llamado &lt;code&gt;database.provider.ts&lt;/code&gt; y escribe este código
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import * as mongoose from 'mongoose';

export const databaseProviders = [
  {
    provide: 'DATABASE_CONNECTION',
    useFactory: (): Promise&amp;lt;typeof mongoose&amp;gt; =&amp;gt;
      mongoose.connect('mongodb://localhost/nest'),
  },
];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;exporta el archivo anterior para que sea accesible al resto de la app, haz esto en el archivo &lt;code&gt;database.module.ts&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Paso 3
&lt;/h2&gt;

&lt;p&gt;Inyecta el objeto &lt;code&gt;Connection&lt;/code&gt; usando el decorador &lt;code&gt;@Inject()&lt;/code&gt; y, ya que en Mongo todo es un derivado de un esquema, defínelo en tu esquema, en este caso &lt;code&gt;cat.schema.ts&lt;/code&gt; y quedaría así:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
import * as mongoose from 'mongoose';

export const CatSchema = new mongoose.Schema({
  name: String,
  age: Number,
  breed: String,
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Paso 4
&lt;/h2&gt;

&lt;p&gt;El &lt;code&gt;CatsSchema&lt;/code&gt; pertenece a una carpeta llamada &lt;code&gt;cats&lt;/code&gt; y este representa al &lt;code&gt;CatsModule&lt;/code&gt; ahora crea un modelo &lt;code&gt;provider&lt;/code&gt; genere un archivo llamado &lt;code&gt;cats.provider.ts&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { CatSchema } from './schemas/cat.schema';

export const catsProviders = [
  {
    provide: 'CAT_MODEL',
    useFactory: (connection) =&amp;gt; connection.model('Cat', CatSchema),
    inject: ['DATABASE_CONNECTION'],
  },
];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Paso 5
&lt;/h2&gt;

&lt;p&gt;En el archivo &lt;code&gt;cats.service.ts&lt;/code&gt; usa el modelo en el servicio, inyectándolo con el decorador &lt;code&gt;@inject()&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
import { Injectable, Dependencies } from '@nestjs/common';

@Injectable()
@Dependencies('CAT_MODEL')
export class CatsService {
  constructor(catModel) {
    this.catModel = catModel;
  }

  async create(createCatDto) {
    const createdCat = new this.catModel(createCatDto);
    return createdCat.save();
  }

  async findAll() {
    return this.catModel.find().exec();
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;📝 Nota: Tu puedes crear una interfaz de &lt;code&gt;Cat&lt;/code&gt; y de esa manera extender el &lt;code&gt;Document&lt;/code&gt; desde el paquete &lt;code&gt;Mongoose&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Paso 6
&lt;/h2&gt;

&lt;p&gt;Por último, en el archivo &lt;code&gt;cats.module.ts&lt;/code&gt; importa el &lt;code&gt;CatsProvider&lt;/code&gt; y el &lt;code&gt;CatsService&lt;/code&gt; así:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
import { catsProviders } from './cats.providers';
import { DatabaseModule } from '../database/database.module';

@Module({
  imports: [DatabaseModule],
  controllers: [CatsController],
  providers: [
    CatsService,
    ...catsProviders,
  ],
})
export class CatsModule {}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y así puedes usar esta librería que es superútil al momento de conectar tu base de datos. Yo aprendí a usar &lt;code&gt;mongo&lt;/code&gt; recientemente y junto con &lt;code&gt;nestjs&lt;/code&gt; son buenos aliados para hacer una conexión rápida y sencilla.&lt;/p&gt;

&lt;p&gt;Únete a la comunidad de &lt;a href="https://discord.gg/MG4qsJzu" rel="noopener noreferrer"&gt;mododificildevs&lt;/a&gt; y aprendamos juntos. &lt;/p&gt;

</description>
      <category>mongodb</category>
      <category>nestjs</category>
      <category>tutorial</category>
      <category>developer</category>
    </item>
    <item>
      <title>Enviar y recibir Tokens en Solana</title>
      <dc:creator>Derlys</dc:creator>
      <pubDate>Mon, 19 Feb 2024 12:38:56 +0000</pubDate>
      <link>https://dev.to/derlys/enviar-y-recibir-tokens-en-solana-oid</link>
      <guid>https://dev.to/derlys/enviar-y-recibir-tokens-en-solana-oid</guid>
      <description>&lt;p&gt;Esta página describe cómo recibir y enviar tokens SOL utilizando las herramientas de línea de comandos con una wallet de línea de comandos como una wallet de papel, una wallet de sistema de archivos o una wallet de hardware. Antes de empezar, asegúrese de haber creado un monedero y de tener acceso a su dirección (pubkey) y al par de claves de firma. Consulte nuestras convenciones para introducir pares de claves para distintos tipos de monederos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pruebe su Wallet
&lt;/h2&gt;

&lt;p&gt;Antes de compartir tu clave pública con otros, es posible que quieras asegurarte primero de que la clave es válida y de que realmente posees la clave privada correspondiente.&lt;/p&gt;

&lt;p&gt;En este ejemplo, crearemos un segundo monedero además de tu primer monedero, y luego transferiremos algunos tokens a él. Esto confirmará que puedes enviar y recibir tokens en el tipo de monedero que elijas.&lt;/p&gt;

&lt;p&gt;Este ejemplo de prueba utiliza nuestra Developer Testnet, llamada devnet. Los tokens emitidos en devnet no tienen valor, así que no te preocupes si los pierdes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Airdrop algunos tokens para empezar
&lt;/h3&gt;

&lt;p&gt;Primero, envía algunas airdrops a la red de devnet( red de desarrollo).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;solana airdrop 1 &amp;lt;RECIPIENT_ACCOUNT_ADDRESS&amp;gt; --url https://api.devnet.solana.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Donde remplazas el texto &lt;code&gt;&amp;lt;RECIPIENT_ACCOUNT_ADDRESS&amp;gt;&lt;/code&gt; por la dirección de su public key (clave pública)/wallet address en base58.&lt;/p&gt;

&lt;p&gt;Se devolverá una respuesta con la firma de la transacción. Si el saldo de la dirección no cambia por la cantidad esperada, ejecute el siguiente comando para obtener más información sobre lo que potencialmente salió mal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;solana confirm -v &amp;lt;TRANSACTION_SIGNATURE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Compruebe su saldo
&lt;/h3&gt;

&lt;p&gt;Confirma que el AirDrop se ha realizado correctamente comprobando el saldo de la cuenta. Debería salir 1 SOL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;solana balance &amp;lt;ACCOUNT_ADDRESS&amp;gt; --url https://api.devnet.solana.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Crear una segunda dirección de monedero
&lt;/h3&gt;

&lt;p&gt;Necesitaremos una nueva dirección para recibir nuestros tokens. Crea un segundo par de claves y registra su pubkey:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;solana-keygen new --no-passphrase --no-outfile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;La salida contendrá la dirección después del texto &lt;code&gt;pubkey:&lt;/code&gt;. Copie la dirección. La utilizaremos en el siguiente paso.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pubkey: GKvqsuNcnwWqPzzuhLmGi4rzzh55FhJtGizkhHaEJqiV
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;También puede generar un segundo (o más) monedero de cualquier tipo: papel, sistema de archivos o hardware.&lt;/p&gt;

&lt;h3&gt;
  
  
  Transfiere tokens de tu primer monedero a la segunda dirección
&lt;/h3&gt;

&lt;p&gt;A continuación, demuestra que eres el propietario de los tokens aéreos( Airdrops) transfiriéndolos. El clúster Solana solo aceptará la transferencia si firmas la transacción con el par de claves privadas correspondiente a la clave pública del remitente en la transacción.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;solana transfer --from &amp;lt;KEYPAIR&amp;gt; &amp;lt;RECIPIENT_ACCOUNT_ADDRESS&amp;gt; 0.5 --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer &amp;lt;KEYPAIR&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Donde sustituyes  por la ruta a un par de claves en tu primer monedero, y sustituyes  por la dirección de tu segundo monedero.&lt;/p&gt;

&lt;p&gt;Confirme los saldos actualizados con solana balance:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;solana balance &amp;lt;ACCOUNT_ADDRESS&amp;gt; --url http://api.devnet.solana.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;donde  es la clave pública de tu par de claves o la clave pública del destinatario.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ejemplo completo de transferencia de pruebas
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ solana-keygen new --outfile my_solana_wallet.json   # Creating my first wallet, a file system wallet
Generating a new keypair
For added security, enter a passphrase (empty for no passphrase):
Wrote new keypair to my_solana_wallet.json
==========================================================================
pubkey: DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK                          # Here is the address of the first wallet
==========================================================================
Save this seed phrase to recover your new keypair:
width enhance concert vacant ketchup eternal spy craft spy guard tag punch    # If this was a real wallet, never share these words on the internet like this!
==========================================================================

$ solana airdrop 1 DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK --url https://api.devnet.solana.com  # Airdropping 1 SOL to my wallet's address/pubkey
Requesting airdrop of 1 SOL from 35.233.193.70:9900
1 SOL

$ solana balance DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK --url https://api.devnet.solana.com # Check the address's balance
1 SOL

$ solana-keygen new --no-outfile  # Creating a second wallet, a paper wallet
Generating a new keypair
For added security, enter a passphrase (empty for no passphrase):
====================================================================
pubkey: 7S3P4HxJpyyigGzodYwHtCxZyUQe9JiBMHyRWXArAaKv                   # Here is the address of the second, paper, wallet.
====================================================================
Save this seed phrase to recover your new keypair:
clump panic cousin hurt coast charge engage fall eager urge win love   # If this was a real wallet, never share these words on the internet like this!
====================================================================

$ solana transfer --from my_solana_wallet.json 7S3P4HxJpyyigGzodYwHtCxZyUQe9JiBMHyRWXArAaKv 0.5 --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer my_solana_wallet.json  # Transferring tokens to the public address of the paper wallet
3gmXvykAd1nCQQ7MjosaHLf69Xyaqyq1qw2eu1mgPyYXd5G4v1rihhg1CiRw35b9fHzcftGKKEu4mbUeXY2pEX2z  # This is the transaction signature

$ solana balance DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK --url https://api.devnet.solana.com
0.499995 SOL  # The sending account has slightly less than 0.5 SOL remaining due to the 0.000005 SOL transaction fee payment

$ solana balance 7S3P4HxJpyyigGzodYwHtCxZyUQe9JiBMHyRWXArAaKv --url https://api.devnet.solana.com
0.5 SOL  # The second wallet has now received the 0.5 SOL transfer from the first wallet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Recibir tokens
&lt;/h2&gt;

&lt;p&gt;Para recibir tokens, necesitarás una dirección a la que otros puedan enviar tokens. En Solana, la dirección del monedero es la clave pública de un par de claves. Hay una variedad de técnicas para generar pares de claves. El método que elijas dependerá de cómo elijas almacenar los pares de claves. Los pares de claves se almacenan en monederos. Antes de recibir tokens, tendrá que crear un monedero. Una vez creada, deberá tener una clave pública para cada par de claves que haya generado. La clave pública es una larga cadena de caracteres base58. Su longitud varía entre 32 y 44 caracteres.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enviar tokens
&lt;/h2&gt;

&lt;p&gt;Si ya tienes SOL y quieres enviar tokens a alguien, necesitarás una ruta a tu par de claves, su clave pública codificada en base58 y un número de tokens para transferir. Una vez que tengas todo esto, puedes transferir tokens con el comando solana transfer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;solana transfer --from &amp;lt;KEYPAIR&amp;gt; &amp;lt;RECIPIENT_ACCOUNT_ADDRESS&amp;gt; &amp;lt;AMOUNT&amp;gt; --fee-payer &amp;lt;KEYPAIR&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Confirme los saldos actualizados con solana balance:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;solana balance &amp;lt;ACCOUNT_ADDRESS&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A excepción de algunos links actualizados y párrafos, este tutorial fue escrito en el idioma inglés por &lt;a href="https://docs.solana.com/"&gt;Solana docs&lt;/a&gt;. Muchas gracias por crear este tipo de contenido.&lt;/p&gt;

&lt;p&gt;Espero esta traducción le sea de ayuda a la comunidad Hispanohablante que usa &lt;a href="https://solana.com/"&gt;Solana&lt;/a&gt; que está creciendo enormemente.&lt;/p&gt;

&lt;p&gt;Haz parte de la comunidad &lt;a href="https://discord.gg/sPVaqarbxY"&gt;SOLANA LATAM&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/+Axat5MuV6ow5NWY0"&gt;HispanaSol&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Generar direcciones personalizadas en Solana</title>
      <dc:creator>Derlys</dc:creator>
      <pubDate>Wed, 10 Jan 2024 17:04:58 +0000</pubDate>
      <link>https://dev.to/derlys/generar-direcciones-personalizadas-en-solana-1na5</link>
      <guid>https://dev.to/derlys/generar-direcciones-personalizadas-en-solana-1na5</guid>
      <description>&lt;p&gt;Las direcciones personalizadas dan cierta legibilidad a la cadena aleatoria de letras y números conocida como dirección del monedero Solana.&lt;/p&gt;

&lt;p&gt;Si alguna vez ha realizado una sola transacción en la blockchain Solana, hay una probabilidad muy alta de que haya interactuado antes con una de estas direcciones de vanidad. Algunos de los programas más conocidos utilizan una dirección, como estás:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://solscan.io/account/TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"&gt;TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA&lt;/a&gt;- SPL Token program&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://solscan.io/account/TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"&gt;TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb&lt;/a&gt;- SPL Token 2022 program&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://solscan.io/account/whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc"&gt;whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc &lt;/a&gt;- Orca Whirlpools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://solscan.io/account/srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"&gt;srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX&lt;/a&gt;- Openbook&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Observará que cada una de las direcciones de cuenta comienza con algunas palabras legibles (o partes de ellas). Todas son "Vanity Address".&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;¿Inmersión técnica?&lt;/p&gt;

&lt;p&gt;Puede leer todo acerca de &lt;a href="https://nick.af/articles/derive-solana-addresses"&gt;cómo se derivan y generan las direcciones Solana&lt;/a&gt; en mi profundización técnica al respecto. Incluyendo la comprensión de la "ruta de derivación" utilizada para generar direcciones vanidad con la Solana CLI. Cosas bastante interesantes 😀.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Cómo generar una dirección personalizada
&lt;/h2&gt;

&lt;p&gt;La manera más fácil y común de generar direcciones vanity es usando el &lt;a href="https://dev.to/derlys/introduccion-a-la-cli-de-solana-5e1m"&gt;CLI de Solana&lt;/a&gt;. Así que eso es lo que voy a demostrar aquí también.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Instale el Solana CLI&lt;/p&gt;

&lt;p&gt;Si usted no tiene el Solana CLI ya instalada y configurado en su computadora, entonces usted puede leer mi otro artículo sobre &lt;a href="https://dev.to/derlys/introduccion-a-la-cli-de-solana-5e1m"&gt;Como Instalar y Configurar el Solana CLI&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Asegúrese de que tiene el programa &lt;strong&gt;solana-keygen&lt;/strong&gt; instalado y funcionando ejecutándolo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;solana-keygen &lt;span class="nt"&gt;--version&lt;/span&gt;

&lt;span class="c"&gt;# output (note the version)&lt;/span&gt;
&lt;span class="c"&gt;# solana-keygen 1.17.6 (src:61caae6b; feat:3073089885, client:SolanaLabs)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Anote la versión que tiene instalada. Esto será importante si desea generar una dirección de vanidad para su uso en carteras web/navegadores como Phantom o Solflare. Más sobre esto en un momento.&lt;/p&gt;

&lt;p&gt;Utilizando el programa solana keygen, podemos buscar (es decir, generar por fuerza bruta) nuevas direcciones de vanidad que empiecen por, acaben por, o empiecen Y acaben por determinados caracteres.&lt;/p&gt;

&lt;p&gt;Para ver todas las opciones que puede utilizar para generar direcciones vanity aleatorias de Solana, consulte la ayuda de grind:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;solana-keygen grind --help
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Caracteres no admitidos
&lt;/h2&gt;

&lt;p&gt;Las direcciones públicas y las transacciones de Solana funcionan con el juego de caracteres base-58. Es decir, solo hay 58 caracteres posibles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;incluidas las mayúsculas A-Z, excluidas las mayúsculas &lt;strong&gt;O&lt;/strong&gt; e &lt;strong&gt;I&lt;/strong&gt;(como en &lt;strong&gt;Oscar&lt;/strong&gt; e &lt;strong&gt;India&lt;/strong&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;letras minúsculas de la A a la Z, excepto la &lt;strong&gt;l&lt;/strong&gt; minúscula (como en &lt;strong&gt;letter&lt;/strong&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;dígitos 1-9, (que no incluyen el &lt;strong&gt;0&lt;/strong&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Estas letras específicas están &lt;strong&gt;excluidas&lt;/strong&gt; del conjunto de caracteres base-58, ya que pueden confundirse fácilmente con otros caracteres. Y si se utiliza el carácter equivocado, ¡la dirección de la cadena de bloques es completamente diferente!&lt;/p&gt;

&lt;p&gt;Así que cuando intente generar direcciones vanity usando uno de los 4 caracteres no soportados, el CLI de Solana le dará un error.&lt;/p&gt;

&lt;h2&gt;
  
  
  Velocidad de generación de las direcciones de vanidad
&lt;/h2&gt;

&lt;p&gt;En el momento actual, el CLI de Solana solo soporta este método de fuerza bruta para generar direcciones de vanidad con todos los hilos de las CPUs de tu ordenador. Así que cuanto más potente sea tu CPU, menos tiempo tardará.&lt;/p&gt;

&lt;p&gt;Dato: mi portátil de gama media con una CPU Intel i7 de 8 núcleos puede generar 1.000.000 de direcciones de clave privada cada ~6,3 segundos.&lt;/p&gt;

&lt;p&gt;El otro gran factor que influye en la velocidad de generación de direcciones es la cadena de caracteres que se busca. Cuanto más larga sea la cadena (por ejemplo, 4 caracteres frente a 8 caracteres) y si se ignoran las mayúsculas o minúsculas (por ejemplo, "n" frente a "Nnn"), más tiempo se tardará.&lt;/p&gt;

&lt;p&gt;El último factor importante es si estás intentando generar la frase mnemotécnica o solo la clave privada. Generar la frase mnemotécnica llevará SIGNIFICATIVAMENTE MÁS TIEMPO que sin.&lt;/p&gt;

&lt;p&gt;Dato: el mismo ordenador del dato anterior puede generar &lt;code&gt;1.000.000&lt;/code&gt; de direcciones de frases mnemotécnicas cada &lt;code&gt;~15-20 minutos&lt;/code&gt;. Mucho más tiempo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rectificado básico
&lt;/h2&gt;

&lt;p&gt;Para iniciar el proceso de &lt;code&gt;grind&lt;/code&gt; buscando una dirección que empiece por una cadena establecida:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;solana-keygen grind --starts-with nemesis:1 --ignore-case
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este simple comando se ejecutará hasta que se encuentre &lt;code&gt;1&lt;/code&gt;dirección de vanidad que empiece por &lt;code&gt;nemeisis&lt;/code&gt; (ignorando las mayúsculas y minúsculas). Bastante simple.&lt;/p&gt;

&lt;p&gt;También hay que tener en cuenta que, una vez encontrada una dirección que coincida, la clave privada (en forma de matriz de bytes) se guardará en el directorio de trabajo actual de su terminal con el archivo denominado &lt;code&gt;&amp;lt;GENERATED_PUBKEY&amp;gt;.json&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Coincidencia de varias cadenas
&lt;/h2&gt;

&lt;p&gt;El comando &lt;code&gt;grind&lt;/code&gt; también le permite especificar múltiples cadenas que desea buscar y comparar. Esta suele ser una forma más eficaz de buscar si está buscando más de una dirección de vanidad posible.&lt;/p&gt;

&lt;p&gt;Para buscar y hacer coincidir varias cadenas, basta con especificar varias veces el indicador &lt;code&gt;--starts-with&lt;/code&gt; o &lt;code&gt;--ends-with&lt;/code&gt; o &lt;code&gt;--starts-and-ends-with&lt;/code&gt; (con su valor). Por ejemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;solana-keygen grind &lt;span class="nt"&gt;--ignore-case&lt;/span&gt; &lt;span class="nt"&gt;--starts-with&lt;/span&gt; n:2 &lt;span class="nt"&gt;--starts-with&lt;/span&gt; fress:2 &lt;span class="nt"&gt;--ends-with&lt;/span&gt; dominguez:2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este proceso continuará hasta que se encuentren &lt;code&gt;2&lt;/code&gt; coincidencias para &lt;strong&gt;CADA&lt;/strong&gt; una de las comparaciones de cadena dadas. Al final, se generarán 6 direcciones.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generar con frase mnemotécnica
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Vanidad con ruta mnemotécnica y de derivación
&lt;/h2&gt;

&lt;p&gt;El uso de la opción &lt;code&gt;--derivation-path&lt;/code&gt; le permitirá establecer una ruta de derivación personalizada en la CLI de Solana. Si no especifica una ruta de derivación personalizada, este indicador utilizará una ruta codificada de &lt;code&gt;m/44'/501'/0'/0'&lt;/code&gt; (que está lista para utilizarse con Phantom y Solflare).&lt;/p&gt;

&lt;p&gt;A diferencia del valor predeterminado de la CLI de Solana, la ruta de derivación de &lt;code&gt;m/44'/501'&lt;/code&gt; (que NO es compatible con los monederos de navegador).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./solana/target/release/solana-keygen grind --use-mnemonic --derivation-path --starts-with nick:1 --no-passphrase
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Si lo desea, también puede establecer una ruta de derivación personalizada como esta:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./solana/target/release/solana-keygen grind --use-mnemonic --derivation-path m/44/117/0/0 --starts-with nick:1 --no-passphrase
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Añade tu dirección de vanidad en el monedero de tu navegador
&lt;/h3&gt;

&lt;p&gt;El mnemotécnico resultante de este comando puede introducirse en el monedero de su navegador y funcionará.&lt;/p&gt;

&lt;p&gt;A continuación, puede utilizar cualquiera de las otras banderas de &lt;code&gt;grind&lt;/code&gt; para personalizar las direcciones de vanidad que está buscando, y ser más utilizable en el resto de la blockchain Solana 🙃&lt;/p&gt;

&lt;h2&gt;
  
  
  Cómo genero las direcciones personalizadas
&lt;/h2&gt;

&lt;p&gt;La forma en que me gusta generar direcciones de vanidad con mnemónicos es creando una carpeta &lt;code&gt;grind_keys&lt;/code&gt; separada en mi ordenador. A continuación, la salida de los mnemónicos generados a un archivo de texto en mi ordenador.&lt;/p&gt;

&lt;p&gt;A continuación, envío la salida del proceso a un archivo de texto (también conocido como mnemónico) para su uso posterior.&lt;/p&gt;

&lt;p&gt;Así:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir grinder_keys &amp;amp;&amp;amp; cd grind_keys
mkdir keys &amp;amp;&amp;amp; cd keys
./solana/target/release/solana-keygen grind --no-passphrase --use-mnemonic --derivation-path --ignore-case --starts-with nick:100 --starts-with more:100 &amp;gt;&amp;gt; ../mnemonics.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esto me permite simplemente ejecutar el mismo comando &lt;code&gt;grind&lt;/code&gt;cada vez que inicio mi ordenador. Así puedo generar direcciones durante periodos de tiempo más largos, como días y semanas, en mi ordenador de sobremesa. Sin miedo a perder la mnemotecnia generada.&lt;/p&gt;

&lt;p&gt;A excepción de algunos links actualizados y párrafos, este tutorial fue creado en el idioma inglés por &lt;a href="https://twitter.com/nickfrosty"&gt;Nick Frostbutter&lt;/a&gt;. Muchas gracias por crear este tipo de contenido.&lt;/p&gt;

&lt;p&gt;Espero esta traducción le sea de ayuda a la comunidad Hispanohablante que usa &lt;a href="https://solana.com/"&gt;Solana&lt;/a&gt; que está creciendo enormemente.&lt;/p&gt;

&lt;p&gt;Haz parte de la comunidad &lt;a href="https://discord.gg/sPVaqarbxY"&gt;SOLANA LATAM&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/+Axat5MuV6ow5NWY0"&gt;HispanaSol&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>2023: El año de la comunidad Solana</title>
      <dc:creator>Derlys</dc:creator>
      <pubDate>Fri, 22 Dec 2023 14:52:16 +0000</pubDate>
      <link>https://dev.to/derlys/la-comunidad-de-solana-en-2023-cki</link>
      <guid>https://dev.to/derlys/la-comunidad-de-solana-en-2023-cki</guid>
      <description>&lt;p&gt;¿Ya estamos en otro Solsticio de Solana? 2023 parece haber pasado volando: un año lleno de acontecimientos, marcado por retos y oportunidades. Y ahora que la comunidad echa la vista atrás, es importante recordar lo lejos que hemos llegado.&lt;/p&gt;

&lt;p&gt;El comienzo de 2023 fue la profundidad de los inviernos más fríos, un momento difícil para la gente en todo el ecosistema Solana y la comunidad blockchain en general. La comunidad Solana no solo se mantuvo firme, sino que se redobló.&lt;/p&gt;

&lt;p&gt;Un grito de guerra orgánico, "solo es posible con Solana", resumía la actitud de quienes seguían construyendo. El ecosistema de Solana puede ser el lugar donde las tarifas bajas y el alto rendimiento abren nuevos casos de uso, por supuesto, pero también es el lugar donde una comunidad comprometida, vibrante y orgánica lidera por encima de todo. Los aspectos más destacados y las victorias de 2023 no son obra de ningún equipo ni de ningún individuo, sino que pertenecen al gran colectivo de constructores, artistas, líderes y usuarios que hacen que Solana sea Solana.&lt;/p&gt;

&lt;p&gt;Solana les pertenece. De parte de los que trabajamos en la Fundación Solana, gracias.&lt;/p&gt;

&lt;p&gt;Así es como hiciste de 2023 el año de la comunidad de Solana.&lt;/p&gt;

&lt;h2&gt;
  
  
  Un resurgimiento liderado por la comunidad
&lt;/h2&gt;

&lt;p&gt;En diciembre de 2022, la gente empezó a recibir algo extraño en sus carteras (wallets): un token con el logotipo de un shiba inu. Los recibían por usar dApps y proyectos de Solana, por unirse a eventos y por ser participantes activos en la comunidad de Solana.&lt;/p&gt;

&lt;p&gt;Un año después, la manía Bonk ha arrasado el mundo de la web3.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1735344728995139609-860" src="https://platform.twitter.com/embed/Tweet.html?id=1735344728995139609"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1735344728995139609-860');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1735344728995139609&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;La historia de Bonk es la historia del renacimiento del ecosistema de Solana en 2023, y de cómo lo lideró la comunidad. Los planes que se habían trazado meses o años antes empezaron a dar sus frutos, y las personas que se quedaron y construyeron durante tiempos inciertos se convirtieron en los nuevos líderes de la comunidad. Tras un año de impulso, el ecosistema de Solana volvió a despegar.&lt;/p&gt;

&lt;p&gt;Por ejemplo, 2023 fue el año en que &lt;strong&gt;Saga&lt;/strong&gt;, de Solana Mobile, salió al mercado. A pesar de la expectación suscitada por el anuncio y el lanzamiento iniciales, no fue hasta que estalló el entusiasmo de la comunidad cuando el dispositivo móvil web3-nativo, insignia, se agotó en diciembre de 2023.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1735835498025832651-852" src="https://platform.twitter.com/embed/Tweet.html?id=1735835498025832651"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1735835498025832651-852');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1735835498025832651&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;En febrero, la comunidad de Helium votó a favor de migrar de su propia blockchain de capa-1 a Solana. La migración tuvo lugar a finales de marzo... y se produjo sin contratiempos, demostrando que Solana tiene un hogar para los proyectos de infraestructuras descentralizadas y allanando el camino para que futuros equipos den el salto por sí mismos.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1648725076571766786-596" src="https://platform.twitter.com/embed/Tweet.html?id=1648725076571766786"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1648725076571766786-596');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1648725076571766786&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Este ha sido el año de Solana DeFi 2.0: nuevos conjuntos de herramientas y proyectos, liderados por la comunidad descentralizada, que hacen posible la próxima generación de finanzas: &lt;strong&gt;Maple Finance&lt;/strong&gt; volvió a Solana con tokenized t-bills; Pyth se trasladó a la gobernanza comunitaria de su Solana Permissioned Environment; TBTC trajo BTC a Solana; &lt;strong&gt;Armada&lt;/strong&gt; lanzó una infraestructura de tokens de código abierto; el lanzamiento de múltiples nuevas stablecoins; y mucho más. Hace unos días, el volumen DEX de 24 horas de Solana superó al de Ethereum por primera vez en la historia.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1735842380257869974-528" src="https://platform.twitter.com/embed/Tweet.html?id=1735842380257869974"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1735842380257869974-528');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1735842380257869974&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Y la infraestructura de validadores dirigida por la comunidad siguió avanzando. Como una de las cadenas más descentralizadas en web3 por el coeficiente de Nakamoto, los clientes validadores alternativos como &lt;strong&gt;Firedancer&lt;/strong&gt; de Jump Crypto, el cliente de &lt;strong&gt;Jito Labs&lt;/strong&gt; y **Tinydancer **continuaron diversificando y asegurando la pila tecnológica de Solana.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1719310929593057720-861" src="https://platform.twitter.com/embed/Tweet.html?id=1719310929593057720"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1719310929593057720-861');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1719310929593057720&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  Desarrolladores que innovan
&lt;/h2&gt;

&lt;p&gt;Las innovaciones dentro del ecosistema Solana avanzaron a un ritmo vertiginoso en 2023, ya que los equipos colaboraron para introducir nuevos estándares y herramientas para toda la comunidad. Quizá nada lo ejemplifique mejor que el equipo de todo el ecosistema que trabaja para implantar la compresión de estados, una innovación que utiliza árboles de Merkle para reducir significativamente el coste del alquiler en la red Solana.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1643972968433975296-814" src="https://platform.twitter.com/embed/Tweet.html?id=1643972968433975296"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1643972968433975296-814');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1643972968433975296&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Del mismo modo, Solana Labs introdujo un plugin que permitía a la IA interactuar con la cadena de bloques Solana, permitiendo a los desarrolladores crear herramientas útiles que unían el poder de la cadena de bloques y la inteligencia artificial.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1650955017585606656-957" src="https://platform.twitter.com/embed/Tweet.html?id=1650955017585606656"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1650955017585606656-957');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1650955017585606656&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;No sólo trabajaron los grandes equipos: la comunidad de desarrolladores de Solana siguió creciendo. Dos &lt;a href="https://solana.com/hackathon"&gt;hackathones de Solana&lt;/a&gt;, &lt;strong&gt;Grizzlython&lt;/strong&gt; e &lt;strong&gt;Hyperdrive&lt;/strong&gt;, registraron un número récord de solicitudes y propuestas. En Hyperdrive se presentaron más de 900 proyectos, el mayor número hasta la fecha, a pesar de las difíciles condiciones del mercado.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1720579154737873218-647" src="https://platform.twitter.com/embed/Tweet.html?id=1720579154737873218"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1720579154737873218-647');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1720579154737873218&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Todo se debe a que la experiencia de los desarrolladores al construir sobre Solana sigue mejorando: en lugar del viejo meme de que construir sobre la blockchain Solana es como masticar vidrio, hoy es más como surfear sobre vidrio. Los &lt;strong&gt;nuevos recursos y herramientas para desarrolladores&lt;/strong&gt; han permitido a miles de desarrolladores crear la aplicación descentralizada de sus sueños. Más información en &lt;a href="https://solana.com/developers"&gt;el portal para desarrolladores de Solana.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/zTddk2pf2yI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Las instituciones se apoyan en Solana
&lt;/h2&gt;

&lt;p&gt;A medida que la vibrante comunidad de Solana proseguía su labor, las instituciones empezaron a tomar nota. En 2023, varias grandes empresas y firmas tradicionales empezaron a explorar el ecosistema de Solana.&lt;/p&gt;

&lt;p&gt;En abril, &lt;strong&gt;Mastercard&lt;/strong&gt;, en colaboración con la Fundación Solana, trabajó en herramientas para ayudar a asegurar las transacciones entre instituciones web2 y web3.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1652003395052380160-581" src="https://platform.twitter.com/embed/Tweet.html?id=1652003395052380160"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1652003395052380160-581');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1652003395052380160&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Visa&lt;/strong&gt; amplió su programa piloto de stablecoin USDC a la red Solana, tras meses de investigación exhaustiva sobre la pila tecnológica y las ventajas de la cadena de bloques Solana.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1699031109080945049-512" src="https://platform.twitter.com/embed/Tweet.html?id=1699031109080945049"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1699031109080945049-512');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1699031109080945049&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Solana Pay, un protocolo de pagos entre pares descentralizado y de código abierto construido sobre la cadena de bloques Solana por Solana Labs, se integró con &lt;strong&gt;Shopify&lt;/strong&gt; - desbloqueando pagos USDC a millones de empresas como una integración de aplicación aprobada.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1694336131599393186-254" src="https://platform.twitter.com/embed/Tweet.html?id=1694336131599393186"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1694336131599393186-254');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1694336131599393186&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Boba Guys&lt;/strong&gt;, una popular tienda de té, llevó a cabo una prueba piloto de su programa de fidelización basado en Solana en una tienda de San Francisco. ¿Los resultados? &lt;a href="https://cointelegraph.com/news/boba-guys-shopify-users-showcase-adoption-web3-tools-solana-breakpoint"&gt;Un 67% más&lt;/a&gt; de visitas mensuales entre los participantes en el programa de fidelización y un 65% más de consumo. El programa se extendió a todo el país en noviembre.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/yoZ2eF6Na7w"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Más allá de los productos dirigidos a consumidores y empresas, las grandes instituciones de infraestructuras también empezaron a integrar el soporte para la blockchain Solana. &lt;strong&gt;Google Cloud&lt;/strong&gt; integró los datos de &lt;a href="https://solana.com/news/solana-data-live-on-google-cloud-bigquery"&gt;Solana onchain en BigQuery&lt;/a&gt;, desbloqueando nuevos casos de uso.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1680654353357582337-853" src="https://platform.twitter.com/embed/Tweet.html?id=1680654353357582337"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1680654353357582337-853');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1680654353357582337&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon Web Services&lt;/strong&gt; también anunció que la &lt;a href="https://solana.com/news/solana-blockchain-node-development-blueprints-available-on-aws"&gt;compatibilidad con los nodos de red Solana&lt;/a&gt; estaba disponible para su despliegue.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/wqADZnNPSV0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Reunirse IRL (In real life)
&lt;/h2&gt;

&lt;p&gt;A pesar de las frías condiciones de la industria, en 2023 la comunidad de Solana tomó el mando. En ningún lugar esto fue más evidente que en las reuniones de la vida real de creadores, usuarios y fanáticos del ecosistema de Solana que tuvieron lugar en todo el mundo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Breakpoint&lt;/strong&gt;, la conferencia anual de la comunidad Solana organizada por la Fundación Solana, congregó a más de 3.000 asistentes en el Campus Solana, a las afueras de Ámsterdam, durante una semana de construcción y creación de redes. Pero fueron los actos organizados por la comunidad que proliferaron en el campus y fuera de él, desde conferencias como &lt;strong&gt;Block Zero&lt;/strong&gt;, &lt;strong&gt;DRiP Haus&lt;/strong&gt; y &lt;strong&gt;The Network State&lt;/strong&gt; hasta actos paralelos de &lt;strong&gt;Superteam&lt;/strong&gt; y otros proyectos del ecosistema, los que encarnaron el verdadero espíritu comunitario.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/0MoYSUxYDFk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Las Solanas Hacker Houses&lt;/strong&gt;, que muestran el trabajo del ecosistema Solana en ciudades de todo el mundo, vieron a más de 6.000 desarrolladores enviar y aprender colectivamente&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1620458593563574277-966" src="https://platform.twitter.com/embed/Tweet.html?id=1620458593563574277"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1620458593563574277-966');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1620458593563574277&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AthensDAOx&lt;/strong&gt;, un evento organizado por el equipo de DeansListDAO, causó sensación con un fin de semana centrado en la gobernanza.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1734927545156669615-293" src="https://platform.twitter.com/embed/Tweet.html?id=1734927545156669615"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1734927545156669615-293');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1734927545156669615&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Mientras tanto, &lt;strong&gt;Solana Crossroads&lt;/strong&gt; -una conferencia independiente en Estambul, organizada por Step Finance- mostró la creciente comunidad de constructores en Turquía.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1649042474449637382-95" src="https://platform.twitter.com/embed/Tweet.html?id=1649042474449637382"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1649042474449637382-95');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1649042474449637382&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;mtnDAO&lt;/strong&gt;, el hacker house comunitario de Salt Lake City, acogió una semana de talleres, aprendizaje y mucho más sobre el ecosistema Solana.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1625981076593348608-768" src="https://platform.twitter.com/embed/Tweet.html?id=1625981076593348608"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1625981076593348608-768');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1625981076593348608&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;La comunidad de creadores del ecosistema Solana &lt;a href="https://solana.com/art-basel"&gt;hizo su debut&lt;/a&gt; en &lt;strong&gt;Art Basel Miami Beach&lt;/strong&gt;, con artistas que organizaron estudios y crearon piezas en directo y experiencias organizadas por equipos de apoyo a los creadores de todo el ecosistema Solana.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1734653445171273838-893" src="https://platform.twitter.com/embed/Tweet.html?id=1734653445171273838"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1734653445171273838-893');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1734653445171273838&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Estos eventos no fueron los únicos. Desde festivales como &lt;strong&gt;PlayGG&lt;/strong&gt; hasta &lt;strong&gt;reuniones informales de la comunidad, desde Vancouver hasta Tokio&lt;/strong&gt;, la comunidad Solana demostró su fuerza en todo el mundo.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Y ahora qué?
&lt;/h2&gt;

&lt;p&gt;Según todos los indicios, la comunidad de Solana no ha hecho más que empezar. Si 2023 fue el año del renacimiento del ecosistema de Solana, 2024 volverá a ser el verano de Solana.&lt;/p&gt;

&lt;p&gt;Pero para que eso ocurra, la comunidad tiene que liderar, construir y seguir avanzando. Es un momento emocionante para el ecosistema Solana, con nuevos proyectos y noticias que aparecen a diario. Pero todo depende de ti.&lt;/p&gt;

&lt;p&gt;El impulso hacia adelante que la comunidad Solana está experimentando en este momento puede continuar, pero requiere un enfoque implacable y priorización.  Sigue escribiendo código innovador, sigue creando la próxima generación de arte, sigue esforzándote por encontrar el próximo caso de uso en el mundo real y sigue mostrando al mundo el poder de una blockchain que se mueve a la velocidad de la luz.&lt;/p&gt;

&lt;p&gt;El mejor momento para dar el paso y comenzar su proyecto Solana es ahora. ¿Qué vas a construir?&lt;/p&gt;

&lt;p&gt;Este tutorial fue creado en el idioma inglés por &lt;a href="https://solana.com/news/solana-solstice-2023-community-review"&gt;Solana&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Espero esta traducción le sea de ayuda a la comunidad Hispanohablante que usa &lt;a href="https://solana.com/"&gt;Solana&lt;/a&gt; que está creciendo enormemente.&lt;/p&gt;

&lt;p&gt;Haz parte de la comunidad &lt;a href="https://discord.gg/sPVaqarbxY"&gt;SOLANA LATAM&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Configurar Solana en Linux</title>
      <dc:creator>Derlys</dc:creator>
      <pubDate>Mon, 18 Dec 2023 17:14:49 +0000</pubDate>
      <link>https://dev.to/derlys/configurar-solana-en-linux-5f70</link>
      <guid>https://dev.to/derlys/configurar-solana-en-linux-5f70</guid>
      <description>&lt;p&gt;En este tutorial vamos a: Instalar las herramientas, crear una billetera local y crear un ejemplo de hola mundo. Programa para probar que está correctamente configurado.&lt;/p&gt;

&lt;p&gt;Configure su entorno de desarrollo Solana en Linux con esta guía de instalación completa&lt;/p&gt;

&lt;p&gt;Para configurar e instalar Solana en Linux, necesitará para instalar lo siguiente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NodeJS y Yarn&lt;/li&gt;
&lt;li&gt;Varios paquetes y bibliotecas del sistema Linux&lt;/li&gt;
&lt;li&gt;Rust and Cargo (usando Rustup)&lt;/li&gt;
&lt;li&gt;El conjunto de herramientas CLI de Solana&lt;/li&gt;
&lt;li&gt;El marco &lt;code&gt;Anchor&lt;/code&gt; (no es realmente necesario, ¡pero sí muy recomendable!)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Aviso: Es posible que se encuentre con errores del compilador o del generador durante el proceso de configuración, dependiendo de qué bibliotecas y dependencias ya tenga su sistema Linux instalado.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Instalar NodeJS y Yarn
&lt;/h2&gt;

&lt;p&gt;Seamos realistas, el mundo de web 3 y blockchain se está construyendo con Aplicaciones basadas en JavaScript/TypeScript. De los cuales, NodeJS y el paquete NPM  está a la vanguardia.&lt;/p&gt;

&lt;p&gt;Así que simplemente &lt;a href="https://nodejs.org/en"&gt;instala NodeJS&lt;/a&gt; (si eres uno de esos desarrolladores cripto curiosos que aún no lo tienen instalado). En Linux/Ubuntu, recomiendo instalar NodeJS usando &lt;a href="https://github.com/nvm-sh/nvm"&gt;administrador de versiones de nodo&lt;/a&gt;(también conocido como NVM). ¡Actualizar las versiones de Node es lo más sencillo posible!&lt;/p&gt;

&lt;p&gt;A continuación, recomiendo encarecidamente instalar el &lt;a href="https://www.npmjs.com/package/yarn"&gt;Administrador de paquetes de Yarn&lt;/a&gt;. Mucha gente está usando &lt;code&gt;Yarn&lt;/code&gt; en el ecosistema Solana. (¡&lt;a href="https://twitter.com/derlys_paola"&gt;Incluyéndome&lt;/a&gt; y al equipo &lt;code&gt;Anchor&lt;/code&gt;!):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;npm i -g yarn
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalar librerías y paquetes de Linux
&lt;/h2&gt;

&lt;p&gt;Para comenzar esta fiesta de Solana, asegúrese de que su sistema Linux esté actualizado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cada distribución de Linux es diferente. Y dependiendo del tipo de Linux que uses se están ejecutando, es posible que necesite instalar más o menos paquetes adicionales en tu sistema.&lt;/p&gt;

&lt;p&gt;La instalación de los siguientes paquetes debería cubrir la mayoría de los casos para sistemas basados ​​en Ubuntu o Debian:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;sudo apt-get install -y pkg-config build-essential libudev-dev libssl-dev
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Nota: En el pasado usaba Edición Parrot OS Home (Debian y apt) como mi conductor diario, y estos paquetes también eran necesarios para comenzar en el desarrollo de Solana.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Las personas a menudo se encuentran con varios errores al configurar la variedad de Solana. Herramientas de desarrollo en sistemas operativos basados ​​en Linux como Ubuntu o Parrot OS (que es lo que me gusta usar). Esto generalmente se debe a que falta en su sistema algunas dependencias diversas. Lo bueno es que si tienes algún problema al instalar o crear programas Solana, &lt;code&gt;Anchor&lt;/code&gt; y/o &lt;code&gt;Solana&lt;/code&gt;, su salida del terminal suele ser lo suficientemente descriptiva como para indicarle qué paquete/dependencia te falta. ¡Hermoso!&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalar Rust y Cargo
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A medida que avanza a través de este asistente de instalación de &lt;code&gt;Rust&lt;/code&gt;, se le dará algunas opciones al instalar. Cuando se le solicite, recomiendo seleccionar la opción de construcción &lt;code&gt;nocturna&lt;/code&gt;(nightly). Esto parece funcionar mejor con el conjunto de herramientas Solana CLI.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Nota: Este comando de instalación de &lt;code&gt;Rustup&lt;/code&gt; proviene directamente del sitio web &lt;a href="https://rustup.rs/"&gt;Rustup.rs&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Instale la CLI de Solana
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;sh -c "$&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;curl &lt;span class="nt"&gt;-sSfL&lt;/span&gt; https://release.solana.com/stable/install&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Nota: Este comando de instalación para el conjunto de herramientas Solana CLI proviene directamente de los documentos oficiales de Solana.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Instalar Anchor Lang para Solana
&lt;/h2&gt;

&lt;p&gt;Anchor es el framework más popular para crear programas Solana. Es un proyecto de código abierto que puede ayudar a simplificar tus programas, además de hacerlos más seguros.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Nota: El equipo de Anchor recomienda &lt;a href="https://www.anchor-lang.com/docs/installation"&gt;instalar Anchor&lt;/a&gt; usando la herramienta Anchor Version Manager, AVM, ¡así que eso es lo que usaremos aquí! Este proceso construirá AVM desde el código fuente y puede llevar un poco de tiempo, dependiendo del hardware de tu ordenador.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Una vez que haya instalado Cargo, puede instalar AVM con el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;cargo install --git https://github.com/coral-xyz/anchor avm --locked --force
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A continuación, podemos usar &lt;code&gt;AVM&lt;/code&gt; para instalar &lt;code&gt;Anchor CLI&lt;/code&gt; (esto puede tardar un poco), ya que &lt;code&gt;Cargo&lt;/code&gt; compilará la CLI durante la instalación):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;avm install latest
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finalmente, indique que configure la última versión de &lt;code&gt;Anchor&lt;/code&gt; como predeterminada de su sistema y verifique tu versión:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;avm use latest &amp;amp;&amp;amp; anchor --version
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Crea una billetera Solana local
&lt;/h2&gt;

&lt;p&gt;Una de las últimas cosas que necesitará desarrollar (más específicamente implementar) Los programas Solana son una billetera. No profundizaré en los detalles del uso de la Solana CLI aquí, sino más bien una comprensión superficial de los comandos para empezar a desarrollar.&lt;/p&gt;

&lt;h2&gt;
  
  
  TLDR;
&lt;/h2&gt;

&lt;p&gt;Las billeteras del sistema de archivos guardarán la clave privada de su billetera en un archivo local en su computadora&lt;br&gt;
debe seleccionar la red Solana correcta que desea mediante la CLI necesitarás enviar el token SOL a tu billetera&lt;/p&gt;
&lt;h2&gt;
  
  
  Crear una billetera Solana
&lt;/h2&gt;

&lt;p&gt;Cree una nueva billetera del sistema de archivos llamada "demo-wallet":&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;solana-keygen new --outfile ~/.config/solana/demo-wallet.json
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Seleccione la red Solana
&lt;/h2&gt;

&lt;p&gt;Seleccione Solana "testnet" red y configure su nueva billetera del sistema de archivos como la predeterminada:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;solana config set --url testnet --keypair ~/.config/solana/demo-wallet.json
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Verifique sus ajustes de configuración
&lt;/h2&gt;

&lt;p&gt;Lea la configuración de su CLI de Solana para verificar que su billetera esté correctamente configurado y estás en la red correcta:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;solana config get
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El resultado debería ser algo parecido a esto:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;Config File: /Users/derlys/.config/solana/cli/config.yml
RPC URL: https://api.devnet.solana.com
WebSocket URL: wss://api.devnet.solana.com/ (computed)
Keypair Path: /Users/derlys/.config/solana/id.json
Commitment: confirmed
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Yo utilice la red &lt;code&gt;devnet&lt;/code&gt; que es donde puedes hacer pruebas y solicitar &lt;code&gt;airDrop&lt;/code&gt;(sol para para probar tus DApps). En la &lt;code&gt;testdev&lt;/code&gt; también puedes solicitarlos sin embargo se usa mas que todo para comprobar que tus transacciones esten llegando correctamente.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Financia tu billetera con un AirDrop
&lt;/h2&gt;

&lt;p&gt;Obtenga un token SOL gratuito lanzado desde el AirDrop (también conocido como depositado) en su nueva billetera:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;solana airdrop 1 &amp;lt;RECIPIENT_ACCOUNT_ADDRESS&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;si ejecutas el comando sin especificar la direccion( publickey) te carga los soles en la billetera (wallet) que tengas configurada por defecto.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Para comprobar el saldo de la billetera de su sistema de archivos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;solana balance &amp;lt;RECIPIENT_ACCOUNT_ADDRESS&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ¿Qué sigue?
&lt;/h2&gt;

&lt;p&gt;Ahora que tiene todas las herramientas de desarrollo de Solana necesarias instaladas en su entorno local, ¡está listo para comenzar a crear sus primeros programas Solana!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/derlys/introduccion-a-la-cli-de-solana-5e1m"&gt;Introducción a Solana CLI&lt;/a&gt;: obtenga más información sobre comandos importantes y cómo navegar por la CLI de Solana.&lt;/p&gt;

&lt;p&gt;Implemente un programa Solana (próximamente): cree, edite, implemente y vuelva a implementar su primer programa Solana para blockchain.&lt;/p&gt;

&lt;p&gt;A excepción de algunos links y párrafos, este tutorial fue creado en el idioma inglés por &lt;a href="https://twitter.com/nickfrosty"&gt;Nick Frostbutter&lt;/a&gt;. Muchas gracias por producir este tipo de contenido.&lt;/p&gt;

&lt;p&gt;Espero esta traducción le sea de ayuda a la comunidad Hispanohablante que usa &lt;a href="https://solana.com/"&gt;Solana&lt;/a&gt; que está creciendo enormemente.&lt;/p&gt;

&lt;p&gt;Haz parte de la comunidad &lt;a href="https://discord.gg/sPVaqarbxY"&gt;SOLANA LATAM&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>espanol</category>
      <category>solana</category>
      <category>blockchain</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Introducción a la CLI de Solana</title>
      <dc:creator>Derlys</dc:creator>
      <pubDate>Wed, 13 Dec 2023 16:45:24 +0000</pubDate>
      <link>https://dev.to/derlys/introduccion-a-la-cli-de-solana-5e1m</link>
      <guid>https://dev.to/derlys/introduccion-a-la-cli-de-solana-5e1m</guid>
      <description>&lt;p&gt;Como parte de su viaje de desarrollo de Solana, deberá familiarizarse con la CLI de Solana.&lt;/p&gt;

&lt;p&gt;Es muy poderoso y muy importante comprender algunos comandos para realizar algunas tareas específicas:&lt;/p&gt;

&lt;p&gt;1️⃣ Crear billeteras&lt;br&gt;
2️⃣ Actualizar la configuración de su red Solana&lt;br&gt;
3️⃣ SOL gratuito desde el AirDrop (también conocido como fondos en su cuenta)&lt;br&gt;
4️⃣ Ejecutar un validador de prueba&lt;br&gt;
5️⃣ Implementar programas Solana&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;PD: También hay un &lt;a href="https://www.youtube.com/watch?v=pNzT3hgFbpg"&gt;video de YouTube&lt;/a&gt; para este tutorial de Solana.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Aprenda a utilizar la CLI de Solana
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Esta guía asume que ya tiene instalada la CLI de Solana. Si no es así, &lt;a href="https://solanacookbook.com/es/getting-started/installation.html#instalacion-de-cli"&gt;consulte esta guía sobre cómo instalar Solana CLI en  Linux&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Crea una billetera Solana para el desarrollo
&lt;/h2&gt;

&lt;p&gt;Para implementar programas Solana en la cadena de bloques (ya sea un validador local o un RPC remoto), necesitará crear una billetera Solana.&lt;/p&gt;

&lt;p&gt;Para simplificar, generaremos una billetera con sistema de archivos que almacenará nuestra clave privada (privateKey) en un archivo en su computadora. De esta manera, podemos decirle fácilmente a Solana CLI y/o Anchor CLI que usen esta billetera para implementar nuestros programas Solana.&lt;/p&gt;

&lt;p&gt;La billetera del sistema de archivos predeterminada generalmente se encuentra en &lt;code&gt;~/.config/solana/id.json&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Cuando crea nuevas wallets de sistema de archivos, puede especificar cualquier ubicación de archivo específica con el indicador &lt;code&gt;--outfile /path/to/file&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Para generar una nueva wallet (billetera) Solana utiliza este comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;solana-keygen new --outfile ~/.config/solana/solfate-dev.json
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Al generar cada wallet (billetera), también puedes establecer una frase de contraseña (como un archivo de claves SSH).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;¡RECOMIENDO ENCARECIDAMENTE establecer una frase de contraseña para la billetera, especialmente para cualquier billetera que pueda usar en producción en algún momento!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Para efectos de este tutorial he decidido no usar esta frase de contraseña.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;/blockquote&gt;

&lt;p&gt;Una vez creada su billetera, obtendrá una lectura de su &lt;code&gt;pubkey&lt;/code&gt; (también conocida como dirección de su billetera) y su frase inicial. No olvides escribir tu frase inicial en un lugar seguro si realmente vas a conservar esta dirección de billetera.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lea la configuración de Solana
&lt;/h2&gt;

&lt;p&gt;Para lograr cualquier cosa en la cadena de bloques de Solana, incluso con un validador de prueba local, deberá asegurarse de que su CLI de Solana esté configurada para conectarse a la red Solana RPC correcta y con la billetera correcta.&lt;/p&gt;

&lt;p&gt;Para ver la configuración actual de Solana CLI, ejecute este comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;solana config get
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Debería obtener una lectura como esta:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Config File: /home/nick/.config/solana/cli/config.yml&lt;br&gt;
RPC URL: https://api.testnet.solana.com&lt;br&gt;
WebSocket URL: wss://api.testnet.solana.com/ (computed)&lt;br&gt;
Keypair Path: /home/nick/.config/solana/id.json&lt;br&gt;
Commitment: confirmed&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Las configuraciones son MUY importantes son la &lt;code&gt;URL RPC&lt;/code&gt; y el archivo &lt;code&gt;Keypair Path&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;RPC URL: le indica a la CLI a qué &lt;a href="https://solanacookbook.com/es/core-concepts/transactions.html#hechos"&gt;clúster&lt;/a&gt; de red Solana desea conectarse. Generalmente, para el desarrollo local, debe configurar su propio validador de pruebas local (también conocido como localnet). Solo los RPC de la “red principal” utilizarán realmente tokens SOL reales y, por lo tanto, dinero real.&lt;/p&gt;

&lt;p&gt;Keypair Path: la clave privada de la billetera (como la que creamos anteriormente) para usar para implementar programas e interactuar con el RPC.&lt;/p&gt;
&lt;h2&gt;
  
  
  Actualice su configuración de Solana
&lt;/h2&gt;

&lt;p&gt;Cuando desee cambiar la configuración de su red Solana o cambiar el archivo de clave de billetera predeterminado, deberá actualizar su configuración con la CLI de Solana.&lt;/p&gt;

&lt;p&gt;Al configurar su URL RPC (también conocido como cambiar su red Solana), puede usar el nombre corto de la red (como “mainnet”, “testnet”, etc.) o la URL completa para un nodo RPC activo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;solana config set --url testnet
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para cambiar el archivo de la clave de billetera que utiliza la CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;solana config set --keypair /path/to/file
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Consulta el saldo de tu billetera
&lt;/h2&gt;

&lt;p&gt;Necesitará SOL para interactuar con la cadena de bloques, incluso durante el desarrollo. Siempre puede consultar fácilmente el saldo de su billetera (o la de cualquier persona) utilizando la CLI de Solana.&lt;/p&gt;

&lt;p&gt;Para verificar el saldo de la dirección de su billetera configurada por CLI (también conocida como la que ha configurado con el archivo de claves de su sistema de archivos):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;solana balance
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para consultar el saldo de cualquier otra billetera:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;solana balance WALLET_ADDRESS_HERE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;El comando &lt;code&gt;solana balance&lt;/code&gt;solo verificará el saldo de la billetera determinada en la red Solana actualmente seleccionada.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Financia tu billetera a través de AirDrop
&lt;/h2&gt;

&lt;p&gt;Con su nueva configuración de billetera y seleccionada en la red RPC correcta, deberá depositar fondos en su billetera con SOL.&lt;/p&gt;

&lt;p&gt;Este SOL se utilizará para implementar programas en la cadena de bloques, así como para pagar el alquiler y las transacciones mientras desarrolla programas.&lt;/p&gt;

&lt;p&gt;Periódicamente, a medida que implemente o interactúe con los programas de Solana, deberá financiar su billetera con SOL (el token nativo de Solana).&lt;/p&gt;

&lt;p&gt;Puede depositar fondos en su cuenta utilizando dos métodos:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AirDrop a través de Solana CLI&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Para solicitar un AirDrop gratuito a su billetera seleccionada actualmente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;solana airdrop 1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;El comando &lt;code&gt;solana airdrop&lt;/code&gt; de solana tiene un límite en la cantidad de SOL que se puede lanzar. Cualquier solicitud que supere este límite hará que la transacción falle. Al momento de escribir esto, el límite es 5.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Tal como habrás adivinado, el AirDrop se producirá en la red que estás seleccionado en la configuración de Solana. Y no, el lanzamiento aéreo no funciona en la red principal. No seas tonto.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AirDrop a través de Solfate faucet&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Otra manera fácil de obtener su SOL devnet y/o testnet gratuito en su billetera es usar un grifo público. Aquí en Solfate operamos un grifo público &lt;a href="https://faucet.solana.com/"&gt;Solana faucet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Todo lo que necesita hacer es ingresar la dirección de su billetera y hacer clic en el botón de la red Solana que desee: devnet o testnet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ejecute el validador de pruebas de Solana
&lt;/h2&gt;

&lt;p&gt;Como mencioné anteriormente, cuando desarrolle sus programas Solana localmente, lo más probable es que desee ejecutar una versión de host local de la cadena de bloques Solana llamada “validador de prueba”(test validator). Tal como puede pensar, esto le permitirá tener una versión completa de la cadena de bloques Solana directamente en su computadora local.&lt;/p&gt;

&lt;p&gt;Ejecutar y desarrollar usando el validador de pruebas es excelente (y recomendado) por varias razones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Transacciones aún más rápidas (¡tú eres el único que las realiza!)&lt;/li&gt;
&lt;li&gt;Menor riesgo de transacciones rechazadas&lt;/li&gt;
&lt;li&gt;sin limitación desde puntos finales RPC públicos&lt;/li&gt;
&lt;li&gt;fácil acceso a los registros del programa Solana (a través de la macro "msg" en Rust)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para ejecutar el validador de pruebas de Solana, abra una nueva ventana de terminal y ejecute el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;solana-test-validator
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esta red localhost, también conocida como “localnet”, que se ejecuta en su terminal, enviará todos los mensajes que su programa Solana envíe a la cadena de bloques. Lo cual es una excelente manera de ayudar a depurar sus programas.&lt;/p&gt;

&lt;p&gt;A excepción de algunos links actualizados y párrafos, este tutorial fue escrito en el idioma inglés por &lt;a href="https://twitter.com/nickfrosty"&gt;Nick Frostbutter&lt;/a&gt;. Muchas gracias por crear este tipo de contenido.&lt;/p&gt;

&lt;p&gt;Espero esta traducción le sea de ayuda a la comunidad Hispanohablante que usa &lt;a href="https://solana.com/"&gt;Solana&lt;/a&gt; que está creciendo enormemente.&lt;/p&gt;

&lt;p&gt;Haz parte de la comunidad &lt;a href="https://discord.gg/sPVaqarbxY"&gt;SOLANA LATAM&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/+Axat5MuV6ow5NWY0"&gt;HispanaSol&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>solana</category>
      <category>web3</category>
      <category>spanish</category>
    </item>
  </channel>
</rss>
