Skip to main content
  1. Un depósito transfiere tokens del saldo público de Solana del usuario a su propio saldo privado o al de otra persona.
  2. Los depósitos se envían en una sola transacción de Solana a una dirección de billetera de Solana.

Depósito: qué es privado

El anillo sin permisos es confidencial y cifra el monto y el activo. Un anillo personalizado puede configurarse como confidencial o anónimo (remitente, destinatario, activo y monto cifrados).

Cómo funciona un depósito

Un depósito es una transferencia pública de Solana que genera un saldo privado.
  1. El saldo de SOL o SPL del usuario es público en la cadena.
  2. La billetera establece el monto y el destinatario, crea el depósito y el propietario firma. Un depósito no solicita una prueba ZK.
  3. El entorno de ejecución de Solana verifica las firmas e invoca el Programa de Privacidad de Solana.
  4. La aplicación rastrea el estado mediante el hash de la transacción de Solana.
  1. El saldo de SOL o SPL del usuario es público en la cadena.
  2. La billetera lee el estado público, crea una transferencia y el propietario firma.
  3. El entorno de ejecución de Solana verifica las firmas e invoca el Programa del Sistema o el Programa de Tokens, que actualiza el saldo público.
  4. La aplicación rastrea el estado mediante el hash de la transacción de Solana.
Este es el flujo general de transacciones del anillo confidencial sin permisos. Compáralo con los anillos personalizados en conceptos.

Comienza

1

Requisitos previos

The TypeScript examples require Node.js 24 or later, pnpm 11.18.0, and the Solana CLI.
Source: sdk-libs/ts
Add a Helius API key:
.env
The examples use the Solana CLI wallet as the payer by default. The payer must hold devnet SOL. See How to Get Devnet SOL.
2

Deposita en un saldo privado

  • El SDK devuelve instrucciones. La aplicación las firma y las envía.
  • sendAndConfirmFactory crea una transacción de Kit, la envía y devuelve la firma junto con el slot en el que se confirmó.
  • senderAddress es la del destinatario. Este ejemplo deposita en el saldo del remitente. El destinatario puede ser el remitente o la billetera de un tercero.
  • 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.
  • client.tree es el árbol de Merkle de estado que recibe el nuevo compromiso de salida.
  • depositor / senderSigner financia y firma el depósito de público a privado.
  • DepositAsset.sol() selecciona SOL. DepositAsset.spl recibe la acuñación, la cuenta de tokens de origen y el programa de tokens para activos SPL y Token 2022.
  • recipientOwnerHash es senderAddress.ownerHash(). Ese hash de las claves públicas de firma y de nulificador del destinatario es el campo de propietario registrado en la nueva cuenta privada de tokens.
  • DEPOSIT_AMOUNT usa lamports para SOL o las unidades base del token para activos SPL y Token 2022.
  • sendAndConfirm firma y envía depositIx como una transacción de Solana.
  • La confirmación devuelve el slot en el que se confirmó, que se usa para controlar la consulta al indexador.

Ejemplo de código completo

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

Guías relacionadas

Create a Private Wallet

Transfer

Withdraw

Read a Private Balance

Read Private History

Didn’t find what you were looking for?

Reach out! Telegram | E-Mail | Contact