- Membuat dompet privat dengan kustodi mandiri
- Menerima transfer privat dengan alamat Solana
- Menyetorkan token ke saldo privat
- Mengirim secara privat ke alamat Solana
- Menarik dana ke alamat Solana mana pun
- Mendekripsi saldo privat dan riwayat transaksi secara lokal
- Pasangan Kunci Terlindung – dalam sistem pengelolaan kunci Anda untuk enkripsi
- Antarmuka Privasi dan SDK – untuk membuat transaksi privat
- Alur Pengguna – untuk diintegrasikan ke dompet Anda
Konteks untuk AI Anda
Add a Private Wallet to an existing Solana wallet
View prompt
View prompt
1
Integrasikan Pasangan Kunci Terlindung
Integrasi dompet privat menambahkan pasangan kunci terlindung ke sistem pengelolaan kunci Anda. Pasangan kunci terlindung menandatangani, mengenkripsi, dan mendekripsi transaksi.Pasangan kunci terlindung adalah kumpulan kunci penandatanganan, nullifier, dan tampilan.- Kunci penandatanganan: Pasangan kunci Ed25519 Solana milik dompet untuk menandatangani transaksi.
- Kunci tampilan: Pasangan kunci X25519 yang digunakan untuk mengenkripsi dan mendekripsi transaksi.
- Kunci nullifier:
"TSPP/derive/v1", yang dienkode sebagai pesan off-chain Solana v0.Kunci penandatanganan terlindung adalah kunci EdDSA Solana milik dompet.
Kunci nullifier dan tampilan adalah kunci tambahan yang diperoleh dari tanda tangan tersebut.Pseudocode untuk memperoleh pasangan kunci terlindung dari tanda tangan Solana:Contoh Implementasi: TypeScript · Rust
2
Integrasikan Antarmuka Privasi dan SDK
Antarmuka Privasi memungkinkan kode Anda menggunakan SDK Privasi untuk membuat transaksi privat tanpa mengakses materi kunci secara langsung. Sistem pengelolaan kunci Anda mengimplementasikan Antarmuka Privasi dalam dua bagian.- Antarmuka Penandatanganan untuk Pembuatan Transaksi dengan SDK Privasi. Lihat Sumber: TypeScript/ Rust
- Antarmuka Enkripsi & Dekripsi. Lihat Sumber: TypeScript/ Rust
Antarmuka Privasi bersifat stateless sehingga tidak menyimpan saldo atau riwayat transaksi.
Untuk meningkatkan performa, sebaiknya simpan cache saldo pengguna dan riwayat transaksi secara lokal.
Tentang Pembuatan Bukti
Pembuatan bukti zero-knowledge memerlukan input plaintext dari data transaksi pengguna yang lengkap dan kunci nullifier.Saat ini, pembuatan bukti di server tersedia melalui URL RPC Helius standar.Pembuatan bukti secara lokal akan segera tersedia. Prover default SDK adalah enclave AWS Nitro yang telah diatestasi.3
Integrasikan Alur Pengguna
Buat Dompet Privat
Dompet privat dibuat dalam dua langkah:- Peroleh pasangan kunci terlindung
- Daftarkan alamat Solana dalam registri on-chain.
Dalam aplikasi dompet, Anda dapat mengizinkan pengguna membuat dompet privat hanya untuk kunci publik “Private Wallet” khusus
atau untuk kunci publik mana pun.
Setiap catatan registri adalah PDA yang dimiliki oleh , yang dapat dilihat oleh siapa pun untuk mengetahui apakah suatu alamat Solana dapat menerima transfer privat.
- TypeScript Client
- Rust Client
owneradalah penanda tangan Solana milik pengguna, yang digunakan untuk memperoleh PDA registri.addressadalah Alamat Terlindung milik pengguna.getRegisterInstructionAsyncmendaftarkan kunci Alamat Terlindung.getSetMergeEncryptionInstructionAsyncmengaktifkan penggabungan untuk UTXO pengguna. Satu transfer dapat membelanjakan paling banyak 40 UTXO, sehingga penggabungan memastikan pengguna selalu dapat membelanjakan seluruh saldo mereka dalam satu transfer. Pelajari lebih lanjut tentang penggabungan UTXO.sendTransactionmenandatangani dan mengirim transaksi.isWalletRegisteredmembaca PDA registri untuk memeriksa pendaftaran.
Contoh pendaftaran lengkap: TypeScript · Rust
Sinkronkan Saldo Privat & Riwayat Transaksi
Sinkronisasi saldo mengambil status terenkripsi dari RPC dan mendekripsinya di dompet.RPC tidak melakukan dekripsi. Hanya pemilik yang dapat mendekripsi saldo privat dengan kunci tampilan.Dompet harus mendekripsi dan memperbarui saldo sebelum transaksi privat serta setiap kali menjalankan backfill: saat dompet dibuka kuncinya, dompet privat dibuka, aplikasi dilanjutkan, jaringan tersambung kembali, terdapat celah aliran, atau dompet dipulihkan.
Read a Private Balance
Read Private Transaction History
Setorkan ke Saldo Privat
Pengguna dapat menyetorkan dana ke saldo privat dengan dua cara:- On-ramp dari saldo fiat ke saldo kripto privat
- Setoran dari akun SPL publik ke saldo privat
On-/Off-Ramp
Lakukan on-/off-ramp fiat secara langsung ke dan dari saldo privat.
Deposit
Setorkan dari saldo kripto publik.
Transfer Privat
Pengguna dapat mengirim transfer privat ke alamat dompet Solana mana pun.Untuk setiap transfer privat, SDK Privasi mencari alamat dompet dalam registri on-chain guna memeriksa apakah penerima memiliki dompet privat.SDK Privasi dapat mengubah transfer privat menjadi penarikan dari privat ke publik jika penerima tidak memiliki Dompet Privat.Sebaiknya beri label transaksi di UI sebagai penarikan untuk memastikan pengguna tidak menarik dana ke saldo publik secara tidak sengaja.Sebaiknya minta tanda tangan pengguna secara terpisah di UI untuk memastikan pengguna tidak menarik dana ke saldo publik secara tidak sengaja.
Private Transfer
Transfer secara privat ke saldo privat.
Tarik ke Saldo Publik
Penarikan dapat digunakan dalam dua cara:- Sebagai fallback untuk transfer privat kepada penerima yang tidak memiliki dompet privat, atau
- Penarikan langsung ke akun token SPL publik.
Withdraw
Tarik ke saldo kripto publik.