WEB3DEV Español

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

Posted on

Cómo obtener datos de 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 importantes para varios proyectos construidos en Solana. En este artículo, veremos cómo podremos acceder efectivamente a los datos de la cartera en Solana usando el API SHYFT.

Las criptomonedas se han vuelto mucho más populares, con el crecimiento de la tecnología subyacente: los blockchains. Una criptobilletera es una aplicación que funciona como una cartera regular excepto que es usada para almacenar criptomonedas y tokens no fungibles. Es un punto de acceso para tus criptomonedas y almacena las claves para firmar, virtualmente, las cripto transacciones.

Las criptobilleteras modernas hacen accesible al blockchain para todos y muchas dApps requieren que los datos de la cartera sean lo suficientemente legibles y sean procesados eficientemente. Para poder retirar los datos sobre una cartera en Solana, necesitarás usar una herramienta o biblioteca que tenga la capacidad de comunicarse con la blockchain y recuperar los datos. Muchas bibliotecas y herramientas pueden ser usadas para recuperar los datos sobre una cartera en Solana, incluyendo Solana CLI (interfaz de líneas de comando, command-line interface) y la bibliotera de Solana web3.js.

Es esencial tener en cuenta que la Web3 te autoriza la custodia y control de tus bienes, lo cual quiere decir que hay que estar atento de las preocupaciones de la seguridad. Dos aspectos confidenciales de cualquier cartera de la Web3 son: la clave privada de la cartera y su frase semilla la cual, si es comprometida, puede derivar a que pierdas esos bienes. Así que necesitamos una solución que sea lo suficientemente sencilla para que pueda ser integrada fácilmente en las dApps, junto al acceso seguro de los datos de la cartera. Aquí es donde SHYFT entra. _SHYFT ofrece una solución basada en API para varias operaciones en Solana, incluyendo API para obtener datos de la cartera de forma segura. _En este artículo, veamos cómo podemos tener los datos de la cartera en Solana usando los API de SHYFT.

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

Antes de comenzar

Para comenzar, necesitaremos un par de cosas.

Autenticación: obtener la llave API de Shyft

x-api-key es un parámetro de autenticación, el cual te permite el acceso a las API de SHYFT. Puedes tener tu propia clave API desde el sitio web de SHYFT. Solo debes registrarte con el ID de tu email aquí y puedes obtenerla gratuitamente.

Cartera Phantom

Necesitaremos la extensión del navegador de una cartera phantom, puedes descargar la del link de abajo.

Chrome/Brave.
Firefox.

Una vez hecho, configura tu cuenta de la cartera Phantom. Los tips en pantalla están disponibles, los cuales te guiarán a través del proceso de la configuración y cómo comenzar. También puedes encontrar una guía detallada relacionada a esto aquí.

Obteniendo Wallet Portfolio: una solución basada en API

SHYFT provee una API para obtener todo el portafolio de la cartera y ambos, los datos de los token fungibles y no fungibles en una solicitud. El endpoint del API por 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 el parámetro 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 el sitio web de SHYFT gratuitamente, haciendo click 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 NFT que existan en esta red serán extraídos.

  • wallet: acepta la dirección de la cartera de los datos de la billetera que se están extrayendo.

La dirección de la wallet y los parámetros del network pueden ser tomados como un input del usuario usando una simple forma en el front end o pueden ser directamente configurados en el backend, según el requisito.

Image description

Una vez que el requisito del API sea ejecutado exitosamente, la respuesta debería ser algo 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
     }
   ]
 }
}
~~~

La respuesta del API contiene el `sol_balance` de la cartera, una variedad de tokens SPL en la cartera, indicado por el array de los `tokens` y los NFT en la cartera, indicado por el array de los `nfts`. Los datos de esta cartera pueden ser utilizados en cualquier dApps incluyendo los que vamos a intentar mostrarle a un usuario en el Web3 Wallet Portfolio, comprobando los datos de la cartera de un usuario para que nos pueda conceder alguna forma de acceso cerrado, y mucho más.


![Image description](https://web3dev-forem-production.s3.amazonaws.com/uploads/articles/6tjlwq0u0ylkyptqo7hb.png)

##**Obteniendo el historial de la transacción de una Cartera**##

La mayoría de los dApps que muestran los datos de la cartera, también tienen la disposición de mostrar las transacciones relacionadas a la cartera. También podemos buscar los datos de la transacción paginados, desde la cartera usando los [API de SHYFT](https://docs.shyft.to/). El endpoint del API es:



Enter fullscreen mode Exit fullscreen mode

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




Para saber más sobre la transacción de los datos en detalle, por favor ve a nuestro artículo en [cómo obtener las transacciones paginadas en Solana usando los APIs de SHYFT](https://medium.com/shyft-to/how-to-get-paginated-transactions-on-solana-14194faffc79). También puedes encontrar los detalles de los parámetros para el pedido de los API en nuestros documentos del desarrollador [aquí](https://docs.shyft.to/start-hacking/wallet#get-transaction-history).

##**BONUS: El Kit de Desarrollo de Software de SHYFT**##

Junto a los extensivos APIs de la Web3 de [SHYFT](https://shyft.to/), [SHYFT](https://shyft.to/) también ha lanzado un nuevo [SDK para el blockchain de Solana](https://www.npmjs.com/package/@shyft-to/js). Con este SDK, puedes hacer varias operaciones en Solana como *obtener detalles de los NFT acuñando la dirección o para los dueños, obtener el balance de la cartera, el portafolio,*y mucho más. Aquí hay un vistazo de cómo puedes tener el portafolio de la cartera usando el nuevo [SHYFT SDK](https://www.npmjs.com/package/@shyft-to/js).

###**Instalación e Inicialización**###

Para instalar el [SDK de SHYFT ](https://www.npmjs.com/package/@shyft-to/js) con npm, usa el siguiente comando:

`npm install @shyft-to/js`

Puedes importarlo a 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 }); //initialization
(async () => {
 const portfolio = await shyft.wallet.getPortfolio({
     wallet:WALLET_ADDRESS, // Your wallet Address
     network:Network.Devnet  // Select network structure
   })
 console.log(portfolio); //portfolio will contain all the required wallet data
})();
`


Para terminar, ambos los [API de SHYFT](https://docs.shyft.to/) y los [SDK de SHYFT](https://www.npmjs.com/package/@shyft-to/js) son modos en el cual, puedes obtener datos de la cartera de forma segura y sin tanto embrollo. Si disfrutas construir con SHYFT, siéntete libre de revisar nuestros otros artículos en [Crear un Candy Machine (v3)](https://medium.com/shyft-to/how-to-create-an-nft-launchpad-on-solana-part-1-cccc017c4bf) en Solana o [el Airdropping de tokens en Solana](https://medium.com/shyft-to/how-to-airdrop-tokens-to-multiple-receivers-in-an-airdrop-campaign-on-solana-part-2-f2303471afef).

¡Esperamos que tengas un viaje genial,  desarrollando en la web3 junto a [SHYFT](https://shyft.to/)!

##**Recursos**##

[Documentación de las API de SHYFT](https://docs.shyft.to/)
[Página web de SHYFT](https://shyft.to/)
[Obtén una llave API](https://shyft.to/get-api-key)
[GitHub](https://github.com/Shyft-to)
Únete a nuestro [Discord](https://discord.gg/8JyZCjRPmr)
[Prueba el nuevo SHYFT SDK](https://www.npmjs.com/package/@shyft-to/js)
[Prueba nuestro nuevo UI de API en Swagger](https://api.shyft.to/sol/api/explore/#/)
Enter fullscreen mode Exit fullscreen mode

Discussion (0)