Saltar al contenido principal
  1. La lectura obtiene las transacciones cifradas del indexador mediante métodos RPC específicos.
  2. Solo el usuario, o cualquier persona que este autorice, puede descifrar el historial con su clave de visualización.
  3. Úsala siempre que la cartera ejecute recuperaciones de datos históricos: al desbloquear la cartera, abrir la cartera privada, reanudar la aplicación, volver a conectarse a la red, detectar una interrupción en el flujo o restaurar la cartera.
  1. getSignaturesForAddress devuelve firmas públicas.
  2. El RPC devuelve el historial público.

Comenzar

1

Requisitos previos

Los ejemplos de TypeScript requieren Node.js 24 o una versión posterior, pnpm 11.18.0 y la CLI de Solana.
Agrega una clave de API de Helius:
.env
Los ejemplos usan de forma predeterminada la billetera de la CLI de Solana como pagador. El pagador debe tener SOL de devnet. Consulta Cómo obtener SOL de devnet.
2

Derivar la etiqueta de visualización

  • senderViewTag es senderAddress.confidentialViewTag(), la clave pública de Solana del remitente en anillos confidenciales. El indexador la usa para devolver las salidas cifradas coincidentes.
3

Obtener las salidas de transacciones del indexador

  • getShieldedTransactionsByTags obtiene las salidas cifradas asociadas con senderViewTag.
  • atSlot(depositTx.slot) espera hasta que el indexador tenga el depósito en ese slot.
  • El indexador devuelve datos de salida cifrados. No descifra el historial privado.
4

Descifrar para obtener el historial privado

  • LocalShieldedKeys.fromKeypair(sender) proporciona las claves del remitente para el descifrado local.
  • decryptTransactions descifra las salidas coincidentes y escribe el historial en Wallet.
  • wallet.privateTransactions() lee el historial descifrado.
  • decryptToBalances solo devuelve saldos.
Respuesta de ejemplo:
Consulta Estado privado y UTXO para saber cómo funcionan el etiquetado de propietarios y las cuentas de tokens privadas de Solana.

Ejemplo de código completo

Clona y ejecuta el ejemplo:
Los ejemplos usan un Ring confidencial en local/devnet aquí.

Guías relacionadas

Read a Private Balance

Deposit

Transfer

Withdraw

¿No encontraste lo que buscabas?