Skip to main content
  1. Um depósito move tokens do saldo público de Solana do usuário para o saldo privado dele ou de outra pessoa.
  2. Os depósitos são enviados em uma única transação Solana para um endereço de carteira Solana.

Depósito: O que é Privado

O Ring sem permissão é confidencial com quantia e ativo criptografados. Um Ring personalizado pode ser configurado como confidencial ou anônimo (remetente, destinatário, ativo e quantia criptografados).

Como Funciona um Depósito

Um depósito é uma transferência pública de Solana com um saldo privado resultante.
  1. O saldo SOL ou SPL do usuário é público no blockchain.
  2. A carteira define quantia e destinatário, constrói o depósito e o proprietário assina. Um depósito não solicita uma prova ZK.
  3. O runtime Solana verifica as assinaturas e invoca o Programa de Privacidade Solana.
  4. O aplicativo rastreia o status via o hash da transação Solana.
  1. O saldo SOL ou SPL do usuário é público no blockchain.
  2. A carteira lê o estado público, constrói uma transferência e o proprietário assina.
  3. O runtime Solana verifica as assinaturas e invoca o System Program ou Token Program, que atualiza o saldo público.
  4. O aplicativo rastreia o status via o hash da transação Solana.
Este é o fluxo de transação de alto nível para o Ring confidencial sem permissão. Compare com Rings personalizados em conceitos.

Introdução

1

Pré-requisitos

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

Depositar em um Saldo Privado

  • O SDK retorna instruções. O aplicativo assina e as envia.
  • sendAndConfirmFactory constrói uma transação Kit, a envia, e retorna a assinatura mais o slot ocupado.
  • senderAddress é o do destinatário. Este exemplo deposita para o remetente. O destinatário pode ser o remetente ou uma carteira de terceiros.
  • senderViewTag é senderAddress.confidentialViewTag(), a chave pública Solana do remetente em rings confidenciais. O indexador a utiliza para retornar saídas criptografadas correspondentes.
  • client.tree é a árvore de Merkle de estado que recebe o novo compromisso de saída.
  • depositor / senderSigner financiam e assinam o depósito público-para-privado.
  • DepositAsset.sol() seleciona SOL. DepositAsset.spl leva a mint, a conta de token de origem e o programa de token para ativos SPL e Token 2022.
  • recipientOwnerHash é senderAddress.ownerHash(). Esse hash das chaves públicas de assinatura e eliminador do destinatário é o campo proprietário comprometido na nova conta de token privada.
  • randomBlinding() adiciona aleatoriedade ao compromisso da conta de token privada.
  • DEPOSIT_AMOUNT usa lamports para SOL, ou as unidades base do token para ativos SPL e Token 2022.
  • sendAndConfirm assina e envia depositIx como uma transação Solana.
  • A confirmação fornece o slot ocupado usado para gerenciar o fetch do indexador.

Exemplo Completo de Código

Clone e execute o exemplo:
Os exemplos usam um Ring confidencial em local/devnet aqui.
deposit_transfer_withdraw.ts

Guias Relacionados

Transferência

Retirada

Ler um Saldo Privado

Ler Histórico Privado

Didn’t find what you were looking for?

Reach out! Telegram | E-Mail | Contact