Skip to main content
Dompet privat terdiri dari pasangan kunci Solana untuk penandatanganan, kunci nullifier, dan kunci penampil untuk enkripsi—ketiga kunci ini bersama-sama membentuk pasangan kunci terlindungi. Sistem pengelolaan kunci Anda menyimpan pasangan kunci terlindungi tersebut. Kode dompet menggunakan Privacy Interface dan SDK untuk membuat transaksi privat. Key management and the Privacy SDK connect through the Privacy Interface. The Privacy SDK calls the Privacy API. The Privacy API submits the transaction to Solana. Integrasi ini memungkinkan pengguna Anda untuk:
  1. Membuat dompet privat dengan kustodi mandiri
  2. Menerima transfer privat melalui alamat Solana
  3. Menyetorkan token ke saldo privat
  4. Mengirim secara privat ke alamat Solana
  5. Menarik dana ke alamat Solana mana pun
  6. Mendekripsi saldo privat dan riwayat transaksi secara lokal
Integrasi ini mencakup:
  1. Pasangan Kunci Terlindungi – dalam sistem pengelolaan kunci Anda untuk enkripsi
  2. Privacy Interface dan SDK – untuk membuat transaksi privat
  3. Alur Pengguna – untuk diintegrasikan ke dompet Anda

Konteks untuk AI Anda

Add a Private Wallet to an existing Solana wallet

Buka di Cursor
1

Integrasikan Pasangan Kunci Terlindungi

Integrasi dompet privat menambahkan pasangan kunci terlindungi ke sistem pengelolaan kunci Anda. Pasangan kunci terlindungi menandatangani, mengenkripsi, dan mendekripsi transaksi.Pasangan kunci terlindungi merupakan kumpulan kunci penandatanganan, nullifier, dan penampil.
  • Kunci penandatanganan: Pasangan kunci Ed25519 Solana milik dompet untuk menandatangani transaksi.
  • Kunci penampil: Pasangan kunci P-256 yang digunakan untuk mengenkripsi dan mendekripsi transaksi.
  • Kunci nullifier:
Dompet dapat membuat pasangan kunci terlindungi dengan dua cara:
  1. Untuk dompet berbasis seed, pilih Turunkan dari frasa seed.
  2. Untuk dompet yang tidak berbasis seed, pilih Turunkan dari tanda tangan EdDSA.
Dompet berbasis seed menurunkan pasangan kunci terlindungi dari satu mnemonik BIP-39 dan indeks akun (0, 1, …).Setiap indeks akun memetakan satu pasangan kunci Solana ke satu pasangan kunci terlindungi. Anda dapat memulihkan pasangan kunci terlindungi dengan cara yang sama seperti memulihkan pasangan kunci Solana.Contoh:
  • Akun 0: pasangan kunci Solana 0 dan pasangan kunci terlindungi 0
  • Akun 1: pasangan kunci Solana 1 dan pasangan kunci terlindungi 1
Kunci penandatanganan terlindungi adalah kunci Ed25519 Solana milik akun tersebut. Kunci nullifier dan penampil adalah kunci tambahan yang diturunkan dari seed yang sama.
Contoh Implementasi: Contoh TypeScript · Contoh Rust
2

Integrasikan Privacy Interface dan SDK

Privacy Interface memungkinkan kode Anda menggunakan Privacy SDK untuk membuat transaksi privat tanpa mengakses materi kunci secara langsung. Sistem pengelolaan kunci Anda mengimplementasikan Privacy Interface dalam dua bagian.
  1. Antarmuka Penandatanganan untuk Pembuatan Transaksi dengan Privacy SDK. Lihat Sumber: TypeScript/ Rust
  2. Antarmuka Enkripsi & Dekripsi. Lihat Sumber: TypeScript/ Rust
Privacy Interface bersifat stateless sehingga tidak menyimpan saldo atau riwayat transaksi. Untuk meningkatkan performa, sebaiknya simpan saldo pengguna dan riwayat transaksi dalam cache lokal.

Tentang Pembuatan Bukti

Pembuatan bukti zero-knowledge memerlukan input plaintext dari seluruh data transaksi pengguna dan kunci nullifier.Saat ini, pembuatan bukti di server tersedia melalui URL RPC Helius standar.Pembuatan bukti secara lokal akan segera tersedia. Pembuatan bukti server terenkripsi secara menyeluruh di AWS Nitro direncanakan sebelum peluncuran mainnet.
3

Integrasikan Alur Pengguna

Buat Dompet Privat

Dompet privat dibuat dalam dua langkah:
  1. Turunkan pasangan kunci terlindungi
  2. Daftarkan alamat Solana dalam registri on-chain.
Pembuatan dompet privat tidak mengharuskan penyetoran ke saldo privat.Registri menghubungkan kunci publik penandatanganan dengan kunci publik nullifier dan penampil. Bersama-sama, kunci publik ini membentuk alamat terlindungi.
Setiap catatan registri merupakan PDA yang dimiliki oleh , yang dapat diperiksa siapa pun untuk mengetahui apakah suatu alamat Solana dapat menerima transfer privat.
  • owner adalah alamat Solana pengguna, yang digunakan untuk menurunkan PDA registri.
  • address adalah Alamat Terlindungi pengguna.
  • buildRegistrationTransaction mengembalikan transaksi pendaftaran atau pembaruan kunci yang telah dikompilasi. Fungsi ini mengembalikan undefined jika dompet sudah terdaftar.
  • sendTransaction menandatangani dan mengirim transaksi.
  • isWalletRegistered membaca 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 menggunakan kunci penampil.
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, terjadi celah stream, 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:
  1. Melakukan on-ramp dari saldo fiat ke saldo kripto privat
  2. Menyetorkan dari akun SPL publik ke saldo privat
On-ramp dan setoran memiliki jaminan privasi yang berbeda. Untuk privasi yang lebih baik, sebaiknya gunakan on-ramp daripada setoran.

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, Privacy SDK mencari alamat dompet dalam registri on-chain guna memeriksa apakah penerima memiliki dompet privat.Privacy SDK dapat mengubah transfer privat menjadi penarikan dari privat ke publik ketika penerima tidak memiliki Dompet Privat.
Sebaiknya beri label transaksi sebagai penarikan di UI agar pengguna tidak secara tidak sengaja menarik dana ke saldo publik.

Private Transfer

Transfer secara privat ke saldo privat.

Tarik ke Saldo Publik

Penarikan dapat digunakan dengan dua cara:
  1. Sebagai opsi cadangan untuk transfer privat kepada penerima yang tidak memiliki dompet privat, atau
  2. Penarikan langsung ke akun token SPL publik.
Untuk penarikan, sebaiknya berikan label yang jelas bahwa pengguna meninggalkan saldo privat, serupa dengan ekspor frasa seed atau kunci privat.

Withdraw

Tarik ke saldo kripto publik.

Tidak menemukan yang Anda cari?

Hubungi kami! Telegram | Email | Kontak