WEB3DEV Español

Cover image for Cómo obtener datos de tu cartera en Solana
Hector
Hector

Posted on

Cómo obtener datos de tu cartera en Solana

Este artículo es una traducción de Team Shyft, hecha por Héctor Botero. Puedes encontrar el artículo original aquí.
Sería genial escucharte en nuestro Discord, puedes contarnos tus ideas, comentarios, sugerencias y dejarnos saber lo que necesitas.
Si prefieres puedes escribirnos a @web3dev_eshttps://twitter.com/web3dev_es en Twitter.

Los datos de la cartera Web3 son uno de los requisitos principales para varios proyectos construidos en Solana. En este artículo, veremos cómo podemos, efectivamente, accesar los datos de la cartera en Solana usando las APIs SHYFT

Las criptomonedas se han vuelto increíblemente populares, con el crecimiento de su tecnología base: los blockchains. Una criptocartera es una aplicación que funciona como una cartera regular excepto que es usada para almacenar criptomonedas fungibles y tokens no fungibles(NFTs). Es un punto de acceso para tus criptomonedas y tiene las claves para poder firmar cripto transacciones digitales.

Las criptocarteras modernas hacen que las blockchains sean accesibles para todos y muchas dApps requieren que los datos de la carteras sean eficientemente leídas y procesadas Para poder retirar los datos sobre una cartera en Solana, necesitarás usar una herramienta o biblioteca que sea capaz de comunicarse con el blockchain y retirar los datos. Muchas bibliotecas y herramientas pueden ser usadas para retirar los datos sobre una cartera en Solana, incluyendo Solana CLI (command-line interface) y la biblioteca Solana web3.js.

Es esencial tomar en cuenta que la Web3 garantiza tu custodia y control sobre tus bienes, lo cual quiere decir que debes estar atento a los problemas de seguridad. Dos aspectos confidenciales de cualquier cartera Web3 son: la clave privada de la cartera y la frase semilla, las cuals, si son comprometidas, conllevan a la pérdida de los bienes. Así que necesitamos una solución simple para ser usada o integrada, fácilmente, en las dAapps junto a accesos seguros de los datos de la cartera. Aquí es donde SHYFT entra. SHYFT ofrece soluciones basadas en API para varias operaciones en Solana, incluyendo APIs para obtener datos, de forma segura, de la cartera. En este artículo veremos cómo podemos obtener datos de la cartera en Solana usando los APIs de SHYFT.

Lee la documentación de los API de SHYFT aquí.

Antes de comenzar

Para poder comenzar, requerimos ciertas cosas:

Autenticación: obtén tu clave API de Shyft

x-api-key es un parámetro de autenticación el cual, te da acceso a las APIs de SHYFT. Puedes obtener tu propia clave API desde la página web de SHYFT. Solo debes registrarte con tu email aquí y podrás obtenerla gratuitamente.

Billetera Phantom

Necesitamos una extensión de navegador de la cartera Phantom. La puedes descargar en alguno de estos enlaces.

Chrome/Brave
Firefox

Una vez listo, configura la cuenta de tu cartera Phantom. Hay tips en pantalla disponibles, los cuales te guiarán a través de la configuración y para poder comenzar. También puedes conseguir una guía detallada relacionada sobre esto aquí.

Obtener el Portafolio de la Cartera. Una solución basada en API

SHYFT provee una API para obtener todo el portafolio de la cartera de ambos, datos de tokens fungibles o no fungibles en un pedido. El endpoint del API para obtener el portafolio de la cartera es:

GET <https://api.shyft.to/sol/v1/wallet/get_portfolio?network=devnet&wallet=YOUR_WALLET_ADDRESS>

Esta API acepta los parámetros x-api-key en el encabezado, el cual es un parámetro de autorización usado por SHYFT para validar a sus usuarios. Puedes obtener tu propia x-api-key desde la página web de SHYFT, gratuitamente, aquí.

Parámetros requeridos para el pedido de esta API:

  • network: selecciona el clúster de la red de Solana, el cual puede ser devnet, testnet o mainnet-beta. Los tokens y NFTs que existan en esta red serán extraídos.
  • wallet: acepta la dirección de la cartera cuyos datos están siendo extraídos.

La dirección del wallet y los parámetros del network, pueden ser tomados como entradas del usuario usando una forma simple en el front end o pueden ser directamente puestos en el back end, según el requisito

Image description

Forma HTML para aceptar direcciones de carteras y la red

Una vez que el pedido API sea ejecutado exitosamente, la respuesta que retorna será similar a esta:

{
 "success": true,
 "message": "Portfolio fetched successfully",
 "result": {
   "sol_balance": 1.87873304,
   "num_tokens": 2,
   "tokens": [
     {
       "address": "4TLk2jocJupKsZubcMFCqsEFFu5jVGzTp14kAANDaEFv",
       "balance": 500000
     },
     {
       "address": "7yPeRofJpfEyjLJ8CLB7czuk4sKG9toXWVq8CcHr4DcU",
       "balance": 310.000001
     }
   ],
   "num_nfts": 3,
   "nfts": [
     {
       "key": 4,
       "updateAuthority": "BvzKvn6nUUAYtKu2pH3h5SbUkUNcRPQawg4bURBiojJx",
       "mint": "ApJPjFr585xKSMk7EtAKU4UrcpyEgdN7X8trvd3gChYk",
       "data": {
         "name": "Nightweaver",
         "symbol": "NW",
         "uri": "<https://nftstorage.link/ipfs/aafkreidwzqo2fjyas32s2bhsvjo7fyi42yidtg5hpzetlsrij66eq3xblm>",
         "sellerFeeBasisPoints": 0,
         "creators": [
           {
             "address": "BvzKvn6nUUAYtKu2pH3h5SbUkUNcRPQawg4bURBiojJx",
             "verified": 1,
             "share": 100
           }
         ]
       },
       "primarySaleHappened": 0,
       "isMutable": 1
     },
     {
       "key": 4,
       "updateAuthority": "BvzKvn6nUUAYtKu2pH3h5SbUkUNcRPQawg4bURBiojJx",
       "mint": "9XTGWZENKa18N1vgCQ3RjJWHG92Di2JKYi73jiC4hkEM",
       "data": {
         "name": "SHYFT",
         "symbol": "SHF",
         "uri": "<https://nftstorage.link/ipfs/cyfkruh2askugb2wgbl2qkpfzd6bn34zkzjswfeo3esichllkn2m7fpffs4hy>",
         "sellerFeeBasisPoints": 5,
         "creators": [
           {
             "address": "BvzKvn6nUUAYtKu2pH3h5SbUkUNcRPQawg4bURBiojJx",
             "verified": 1,
             "share": 100
           }
         ]
       },
       "primarySaleHappened": 0,
       "isMutable": 1
     }
   ]
 }
}
Enter fullscreen mode Exit fullscreen mode

La respuesta API contiene el sol_balance de la cartera, una matriz (array) de tokens SPL en la cartera, indicado por la matriz tokens, y los NFT en la cartera indicado por la matriz nfts. Estos datos de la cartera pueden ser utilizados en cualquier dApps incluyendo los que están intentando mostrar al usuario el portafolio de la cartera de la Web3, revisando los datos de la cartera de un usuario para garantizar algunas formas de acceso privado y, mucho más.

Image description

Ejemplo de muestra de los datos de carteras recibidos en la respuesta

Obtener el histórico de transacciones de una cartera

Muchas dApps que muestran los datos de la cartera, también tienen provisiones que muestran las transacciones relacionadas a la cartera. También podremos extraer los datos paginados de la transacción de la cartera usando los APIs de SHYFT. El endpoint API es:

GET <https://api.shyft.to/sol/v1/wallet/transaction_history>

Para saber más sobre los datos de la transacción en detalle, por favor refiérete a nuestro artículo sobre cómo obtener transacciones paginadas en Solana usando los APIs de SHYFT. También puedes encontrar los detalles de los parámetros de los pedidos del API aquí, en nuestros documentos de desarrollador.

BONUS: El Kit del Software del Desarrollador de SHYFT

Junto a los extensivos APIs de SHYFT de la Web3, SHYFT también ha lanzado un nuevo SDK para el blockchain de Solana. Con este SDK, puedes realizar varias operaciones en Solana como obtener datos de NFT acuñando la dirección o, para los dueños, obtener el balance de tu cartera, el portafolio y, mucho más. Aquí hay un adelanto sobre cómo puedes obtener el portafolio de la cartera usando el nuevo SHYFT SDK.

Instalación e Inicialización

Para instalar el SHYFT SDK con npm, usa el siguiente comando:

npm install @shyft-to/js

Puedes importarlos en tu proyecto usando:

import { ShyftSdk, Network } from '@shyft-to/js';

Obteniendo los datos de la cartera usando SDK

Para obtener los datos de la cartera:

const shyft = new ShyftSdk({ apiKey: 'YOUR_API_KEY', network: Network.Devnet }); //inicialización
(async () => {
 const portfolio = await shyft.wallet.getPortfolio({
     wallet:WALLET_ADDRESS, // La dirección de tu cartera
     network:Network.Devnet  // Selecciona la estructura de la red
   })
 console.log(portfolio); //El portafolio contendrá todos los datos requeridos de la cartera
})();
Enter fullscreen mode Exit fullscreen mode

Para terminar, los APIs de SHYFT y los SDK de SHYFT son formas en las cuales, puedes extraer datos de la cartera de una forma segura y sin complicaciones. Si te gusta construir con SHYFT, siéntete libre de revisar nuestros otros artículos en Crear un Candy Machine (v3) en Solana o el Lanzamiento aéreo de tokens en Solana.

¡Esperamos que tengas una gran travesía del desarrollo de la Web3 junto a SHYFT!

Recursos

Documentación de los API de SHYFT
Página web de Shyft
Obtén tu clave API
GitHub
Únete a nuestro Discord
El nuevo SDK de SHYFT
Intenta nuestro API UI en Swagger

Discussion (0)