NUEVO: Helius adquiere Light Protocol
Cómo obtener tokens recién acuñados con Helius
Blog/Desarrollo

Cómo obtener tokens recién acuñados con Helius

Ingeniero de experiencia del desarrolladorAnam Ansari en XAnam Ansari en LinkedIn
6 min de lectura
Tabla de contenido

    Introducción

    Las memecoins de Solana han acaparado los titulares últimamente: $WIF superó los 3.500 millones de dólares y Boden alcanzó los 300 millones de dólares. Popcat y Wen superaron recientemente la marca de los 350 millones de dólares. Slerf también superó el volumen de trading de todos los exchanges basados en Ethereum durante su primer día. Tras el auge de BONK en noviembre pasado, en Solana se crean más tokens nuevos que nunca.

    Este artículo explora cómo se crean los tokens en Solana, qué son los tokens SPL y cómo monitorear nuevos tokens y recuperar sus metadatos con Helius.

    ¿Cómo se crean los tokens en Solana?

    Solana admite tanto SOL nativo como otros tokens. La Solana Program Library (SPL) define estándares comunes para tokens fungibles y no fungibles (NFT) en Solana. A diferencia de Ethereum, donde existen estándares distintos para diferentes tipos de tokens no fungibles (ERC-721) y fungibles (ERC-20), la Solana Program Library no tiene un estándar diseñado específicamente para los distintos tipos de tokens. 

    Token Program

    La implementación estándar para tokens fungibles y no fungibles (NFT) en Solana es Token Program. Ofrece funcionalidades como crear nuevos tipos de tokens y cuentas, transferir y quemar tokens, y mucho más. Token Program está completo y no hay planes para agregar nuevas funciones. Podría haber cambios para corregir errores importantes o críticos.

    Sin embargo, Token Program es limitado: los desarrolladores deben crear un fork para agregar nuevas funciones, lo que hace que las transacciones sean más complejas y riesgosas. Para resolverlo, Solana presentó Token-2022, un conjunto de funciones adicionales y mejoras como:

    1.  Extensiones de mint: transferencias confidenciales, comisiones de transferencia, cierre del mint, tokens que generan intereses, tokens no transferibles, delegado permanente, hook de transferencia, puntero de metadatos y metadatos.
    2. Extensiones de cuenta: memo obligatorio en transferencias entrantes, propiedad inmutable, estado predeterminado de la cuenta y protección CPI. 

    Para obtener más información sobre Token-2022, consulta este artículo.

    Token Program de Solana permite crear cuentas mint y cuentas de token. Las cuentas mint contienen información global sobre un token, mientras que las cuentas de token almacenan la relación entre una wallet y una cuenta mint. Puedes crear tokens mediante el siguiente código o spl-token-cli. Por ejemplo, ejecuta este comando en la línea de comandos para crear un token fungible, siempre que spl-token-cli esté instalado:

    Código
    spl-token create-token

    Token Metadata Program

    Las cuentas mint contienen ciertos atributos de datos, como el suministro actual del token. Sin embargo, carecen de datos estandarizados como el nombre y el símbolo. Para resolverlo, Metaplex presentó Token Metadata Program. Este programa permite adjuntar datos adicionales a tokens fungibles y no fungibles mediante PDA (direcciones derivadas de programa) derivadas de la dirección mint.

    Token Metadata Program se creó inicialmente para simplificar la creación de NFT en Solana. Sin embargo, también funciona con SFT, que son tokens semifungibles. Los SFT combinan las características de los tokens fungibles y no fungibles. Al principio se comportan como tokens fungibles, lo que significa que pueden intercambiarse por tokens idénticos sin que ninguna de las partes pierda valor. Después de usarse, pierden su valor de intercambio y adquieren los atributos de tokens no fungibles coleccionables. Los SFT funcionan como un tipo único de cuenta a la que se adjuntan metadatos para representar características dentro de un juego o entorno de metaverso. En ciertos contextos, se prefieren los SFT sobre los NFT por su eficiencia, rentabilidad, flexibilidad y mayor seguridad en las transacciones.

    Token Metadata Program también admite NFT programables (pNFT). Este nuevo estándar de activos permite a los creadores definir reglas personalizadas para operaciones específicas y delegar con mayor granularidad a autoridades externas. La cuenta de token de un pNFT siempre está congelada en SPL Token Program, sin importar si el pNFT está delegado. Esto garantiza que nadie pueda eludir Token Metadata Program interactuando directamente con SPL Token Program.

    Monitorea nuevos tokens 

    Para monitorear tokens recién acuñados, configuraremos un webhook. Los webhooks te permiten escuchar eventos on-chain y activar acciones específicas cuando ocurren. Configuraremos nuestro webhook para escuchar el tipo de transacción TOKEN_MINT de Token Metadata Program. Las fuentes compatibles actualmente con este tipo de transacción son las siguientes (las demás fuentes se etiquetarán como “UNKNOWN”): 

    Código
     "TOKEN_MINT": [   "CANDY_MACHINE_V1",   "ATADIA",   "SOLANA_PROGRAM_LIBRARY" ]

    Puedes crear webhooks desde el panel de Helius o mediante código con la referencia de la API. Para crear uno desde el panel, ve a la sección Webhooks del panel izquierdo y haz clic en Nuevo webhook. Luego, configura el webhook con detalles como:

    1. Red: Mainnet/Devnet
    2. Tipo de webhook: puedes seleccionar Enhanced, Raw o Discord. Si eliges Discord, debes proporcionar la URL del webhook. El bot dará formato a la notificación y la enviará directamente. Puedes consultar los pasos para obtener la URL del webhook de un bot de Discord aquí. Si seleccionas Raw, no podrás especificar el tipo de transacción. 
    3. Tipo de transacción: selecciona TOKEN_MINT para escuchar los tokens recién acuñados*.* Puedes encontrar otros tipos de transacciones compatibles con un programa aquí. 
    4. URL del webhook: agrega el endpoint que escuchará las notificaciones (por ejemplo, un bot de Discord, un sitio web, etc.). 
    5. Encabezado de autenticación: ingresa un encabezado de autenticación para enviar las solicitudes POST a tu webhook. Ten en cuenta que es opcional.
    6. Dirección de cuenta: agrega aquí la dirección de Token Metadata Program: metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s. En otros casos, puedes agregar más de una dirección de cuenta si es necesario. Si quieres recibir información sobre un usuario específico en la transacción, puedes incluir su dirección.

    Una vez confirmado, tu webhook estará listo para usarse y podrás crear el frontend adecuado según tu URL del webhook. Aquí seleccionamos Discord como tipo de webhook y proporcionamos la URL del webhook de un bot de Discord, por lo que no necesitamos programar el bot. Recibiremos notificaciones como esta: 

    Recupera los metadatos del token

    Puedes usar el ID del token (su dirección mint) para obtener los metadatos de un token específico. Analiza la notificación JSON enviada mediante el webhook Enhanced (cuando el tipo de webhook está configurado como Enhanced). Puedes encontrar la dirección mint en el campo "mint" del primer objeto del array transferTokens. Cuando tengas el ID del token, puedes usar el método getAsset de la DAS API para recuperar información adicional sobre el token. 

    Por ejemplo, puedes usar el método getAsset para obtener información sobre Jito Staked SOL (JitoSOL):

    Código
    const url = `https://mainnet.helius-rpc.com/?api-key=<api_key>`
    
    const getAsset = async () => {
      const response = await fetch(url, {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
        },
        body: JSON.stringify({
          jsonrpc: '2.0',
          id: 'my-id',
          method: 'getAsset',
          params: {
            id: 'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn',
            displayOptions: {
    	    showFungible: true //return details about a fungible token
    	}
          },
        }),
      });
      const { result } = await response.json();
      console.log("Asset: ", result);
    };
    getAsset();

    Puedes encontrar más ejemplos de la DAS API y un esquema completo de la solicitud y la respuesta de este método en nuestra documentación.

    Conclusión

    En este artículo, aprendimos cómo se crean los tokens en Solana, qué son los tokens SPL y cómo monitorear nuevos tokens mediante la configuración de un webhook y la obtención de sus metadatos con Helius. Si necesitas ayuda o soporte, no dudes en contactarnos en Discord.

    Ingresa tu correo electrónico abajo para no perderte ninguna novedad de Solana. ¿Todo listo para profundizar? Explora los artículos más recientes en el blog de Helius y continúa hoy mismo tu recorrido por Solana.

    Recursos

    Suscríbete a Helius

    Mantente al día con las novedades del desarrollo en Solana y recibe actualizaciones cuando publiquemos

    Imagen ampliada