Skip to main content
  1. Eine Einzahlung verschiebt Tokens vom öffentlichen Solana-Guthaben des Benutzers in sein eigenes oder das eines anderen privaten Guthabens.
  2. Einzahlungen werden in einer einzigen Solana-Transaktion an eine Solana-Wallet-Adresse gesendet.

Einzahlung: Was ist privat

Der erlaubnisfreie Ring ist vertraulich mit verschlüsseltem Betrag und Vermögenswert. Ein benutzerdefinierter Ring kann als vertraulich oder anonym konfiguriert werden (verschlüsselter Absender, Empfänger, Vermögenswert und Betrag).

Wie eine Einzahlung funktioniert

Eine Einzahlung ist eine öffentliche Solana-Übertragung mit einem resultierenden privaten Guthaben.
  1. Das SOL- oder SPL-Guthaben des Benutzers ist öffentlich on-chain.
  2. Die Wallet setzt Betrag und Empfänger fest, erstellt die Einzahlung und der Eigentümer signiert. Eine Einzahlung erfordert keinen ZK-Beweis.
  3. Die Solana-Laufzeit prüft die Signaturen und ruft das Solana-Privacy-Programm auf.
  4. Die App verfolgt den Status über den Solana-Transaktions-Hash.
  1. Das SOL- oder SPL-Guthaben des Benutzers ist öffentlich on-chain.
  2. Die Wallet liest den öffentlichen Status, erstellt eine Übertragung und der Eigentümer signiert.
  3. Die Solana-Laufzeit prüft die Signaturen und ruft das System-Programm oder Token-Programm auf, das das öffentliche Guthaben aktualisiert.
  4. Die App verfolgt den Status über den Solana-Transaktions-Hash.
Dies ist der Transaktionsablauf auf hoher Ebene für den erlaubnisfreien vertraulichen Ring. Vergleichen Sie dies mit benutzerdefinierten Ringen in Konzepten.

Loslegen

1

Voraussetzungen

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

Einzahlung in ein privates Guthaben

  • Das SDK gibt Anweisungen zurück. Die App signiert und sendet diese.
  • sendAndConfirmFactory erstellt eine Kit-Transaktion, übermittelt sie und gibt die Signatur plus den gelandeten Slot zurück.
  • senderAddress ist die des Empfängers. Dieses Beispiel zahlt an den Absender ein. Der Empfänger kann der Absender oder eine Drittanbieter-Wallet sein.
  • senderViewTag ist senderAddress.confidentialViewTag(), der öffentliche Solana-Schlüssel des Absenders in vertraulichen Ringen. Der Indexer nutzt diesen, um übereinstimmende verschlüsselte Ausgaben zurückzugeben.
  • client.tree ist der Status-Merkle-Baum, der das neue Ausgabeverpflichtungswert erhält.
  • depositor / senderSigner finanziert und signiert die Einzahlung von öffentlich auf privat.
  • DepositAsset.sol() wählt SOL. DepositAsset.spl nimmt das Mint, das Quell-Token-Konto und das Token-Programm für SPL- und Token-2022-Assets.
  • recipientOwnerHash ist senderAddress.ownerHash(). Dieser Hash der Signier- und Nullifier-Public-Keys des Empfängers ist das Inhaberfeld, das im neuen privaten Token-Konto festgeschrieben wird.
  • randomBlinding() fügt dem privaten Token-Konto Zufälligkeit hinzu.
  • DEPOSIT_AMOUNT verwendet Lamports für SOL oder die Basiseinheiten des Tokens für SPL und Token 2022 Assets.
  • sendAndConfirm signiert und übermittelt depositIx als Solana-Transaktion.
  • Die Bestätigung ergibt den gelandeten Slot, der verwendet wird, um die Indexer-Abfrage zu steuern.

Vollständiges Codebeispiel

Klonen und das Beispiel ausführen:
Die Beispiele verwenden einen vertraulichen Ring auf lokal/devnet hier.
deposit_transfer_withdraw.ts

Verwandte Anleitungen

Übertragung

Auszahlung

Ein privates Guthaben lesen

Private Historie lesen

Didn’t find what you were looking for?

Reach out! Telegram | E-Mail | Contact