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.

Primeiros Passos

1

Pré-requisitos

Os exemplos em TypeScript exigem Node.js 24 ou superior, pnpm 11.18.0 e o Solana CLI.
Fonte: sdk-libs/ts
Adicione uma chave de API Helius:
.env
Os exemplos usam a carteira Solana CLI como pagador por padrão. O pagador deve possuir SOL na devnet. Veja Como Obter SOL na Devnet.
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 da Solana do remetente em anéis 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 financia e assina o depósito público-para-privado.
  • DepositAsset.sol() seleciona SOL. DepositAsset.spl recebe o 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 de anulador do destinatário é o campo de proprietário registrado na nova conta de token privada.
  • DEPOSIT_AMOUNT usa lamports para SOL ou as unidades básicas 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

Create a Private Wallet

Transfer

Withdraw

Read a Private Balance

Read Private History

Não encontrou o que estava procurando?

Entre em contato! Telegram | E-Mail | Typeform