- Crear una billetera privada de autocustodia
- Recibir transferencias privadas con una dirección de Solana
- Depositar tokens en un saldo privado
- Enviar fondos de forma privada a una dirección de Solana
- Retirar fondos a cualquier dirección de Solana
- Descifrar localmente los saldos privados y el historial de transacciones
- Par de claves protegido – en tu sistema de gestión de claves para el cifrado
- Interfaz de privacidad y SDK – para crear transacciones privadas
- Flujos de usuario – para integrarlos en tu billetera
Contexto para tu IA
Add a Private Wallet to an existing Solana wallet
View prompt
View prompt
1
Integra el par de claves protegido
La integración de una billetera privada agrega un par de claves protegido a tu sistema de gestión de claves. Un par de claves protegido firma, cifra y descifra transacciones.El par de claves protegido agrupa las claves de firma, anulador y visualización.- Clave de firma: El par de claves Ed25519 de Solana de la billetera para firmar transacciones.
- Clave de visualización: Un par de claves P-256 usado para cifrar y descifrar transacciones.
- Clave de anulador:
- Para billeteras basadas en semillas, elige Derivar de la frase semilla.
- Para billeteras que no se basan en semillas, elige Derivar de la firma EdDSA.
- Derive from seed phrase
- Derive from EdDSA signature
Una billetera basada en semillas deriva el par de claves protegido de una frase mnemónica BIP-39 y un índice de cuenta (
0, 1, …).Cada índice de cuenta asigna un par de claves de Solana a un par de claves protegido.
Puedes recuperar el par de claves protegido de la misma manera que recuperas el par de claves de Solana.Por ejemplo:- Cuenta 0: par de claves de Solana 0 y par de claves protegido 0
- Cuenta 1: par de claves de Solana 1 y par de claves protegido 1
La clave de firma protegida es la clave Ed25519 de Solana de esa cuenta.
Las claves de anulador y visualización son claves adicionales derivadas de la misma semilla.
Implementación de ejemplo: Ejemplo en TypeScript · Ejemplo en Rust
2
Integra la Interfaz de privacidad y el SDK
La Interfaz de privacidad permite que tu código use el SDK de privacidad para crear transacciones privadas sin acceder directamente al material de claves. Tu sistema de gestión de claves implementa la Interfaz de privacidad en dos partes.- Interfaz de firma para crear transacciones con el SDK de privacidad. Ver código fuente: TypeScript/ Rust
- Interfaz de cifrado y descifrado. Ver código fuente: TypeScript/ Rust
La Interfaz de privacidad no mantiene estado y, por lo tanto, no almacena saldos ni historiales de transacciones.
Para mejorar el rendimiento, recomendamos almacenar localmente en caché los saldos y los historiales de transacciones de los usuarios.
Acerca de la generación de pruebas
La generación de pruebas de conocimiento cero requiere como entradas en texto sin formato todos los datos de las transacciones del usuario y las claves de anulador.Actualmente, la generación de pruebas en el servidor está disponible mediante la URL RPC estándar de Helius.La generación local de pruebas estará disponible próximamente. Está previsto ofrecer generación de pruebas en el servidor con cifrado de extremo a extremo en AWS Nitro antes del lanzamiento de la red principal.3
Integra los flujos de usuario
Crea una billetera privada
Una billetera privada se crea en dos pasos:- Deriva el par de claves protegido
- Registra la dirección de Solana en un registro en cadena.
Cada registro es una PDA propiedad del , que cualquiera puede consultar para comprobar si una dirección de Solana puede recibir transferencias privadas.
- TypeScript Client
- Rust Client
owneres la dirección de Solana del usuario, usada para derivar la PDA del registro.addresses la dirección protegida del usuario.buildRegistrationTransactiondevuelve una transacción compilada de registro o actualización de claves. Devuelveundefinedsi la billetera ya está registrada.sendTransactionfirma y envía la transacción.isWalletRegisteredlee la PDA del registro para comprobar el registro.
Ejemplos completos de registro: TypeScript · Rust
Sincroniza el saldo privado y el historial de transacciones
La sincronización del saldo obtiene el estado cifrado del RPC y lo descifra en la billetera.El RPC no descifra los datos. Solo el propietario puede descifrar un saldo privado con una clave de visualización.Una billetera debe descifrar y actualizar los saldos antes de las transacciones privadas y siempre que ejecute recuperaciones de datos históricos: al desbloquear la billetera, abrir la billetera privada, reanudar la aplicación, restablecer la conexión de red, detectar una interrupción en el flujo o restaurar la billetera.
Read a Private Balance
Read Private Transaction History
Deposita fondos en un saldo privado
Los usuarios pueden depositar fondos en un saldo privado de dos maneras:- Incorporar fondos desde un saldo fiduciario a un saldo privado de criptomonedas
- Depositar desde una cuenta SPL pública a un saldo privado
On-/Off-Ramp
Incorpora o retira moneda fiduciaria directamente hacia o desde un saldo privado.
Deposit
Deposita desde un saldo público de criptomonedas.
Transferencias privadas
Los usuarios pueden enviar transferencias privadas a cualquier dirección de billetera de Solana.Para cada transferencia privada, el SDK de privacidad busca la dirección de la billetera en el registro en cadena para comprobar si el destinatario tiene una billetera privada.El SDK de privacidad puede convertir una transferencia privada en un retiro de un saldo privado a uno público cuando el destinatario no tiene una billetera privada.Recomendamos etiquetar la transacción en la interfaz de usuario como un retiro para evitar que el usuario retire fondos accidentalmente a un saldo público.
Private Transfer
Transfiere fondos de forma privada a un saldo privado.
Retira fondos a un saldo público
Los retiros se pueden usar de dos maneras:- Como alternativa para las transferencias privadas a destinatarios que no tienen una billetera privada, o
- Como retiro directo a una cuenta pública de tokens SPL.
Withdraw
Retira fondos a un saldo público de criptomonedas.