Skip to main content
Una billetera privada consta de un par de claves de Solana para firmar, una clave de anulador y una clave de visualización para el cifrado. En conjunto, estas claves forman el par de claves protegido. Tu sistema de gestión de claves almacena el par de claves protegido. El código de la billetera usa la Interfaz de privacidad y el SDK para crear transacciones privadas. 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. La integración permite que tus usuarios hagan lo siguiente:
  1. Crear una billetera privada de autocustodia
  2. Recibir transferencias privadas con una dirección de Solana
  3. Depositar tokens en un saldo privado
  4. Enviar fondos de forma privada a una dirección de Solana
  5. Retirar fondos a cualquier dirección de Solana
  6. Descifrar localmente los saldos privados y el historial de transacciones
La integración incluye:
  1. Par de claves protegido – en tu sistema de gestión de claves para el cifrado
  2. Interfaz de privacidad y SDK – para crear transacciones privadas
  3. Flujos de usuario – para integrarlos en tu billetera

Contexto para tu IA

Add a Private Wallet to an existing Solana wallet

Abrir en Cursor
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:
Una billetera puede crear el par de claves protegido de dos maneras:
  1. Para billeteras basadas en semillas, elige Derivar de la frase semilla.
  2. Para billeteras que no se basan en semillas, elige Derivar de la firma EdDSA.
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.
  1. Interfaz de firma para crear transacciones con el SDK de privacidad. Ver código fuente: TypeScript/ Rust
  2. 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:
  1. Deriva el par de claves protegido
  2. Registra la dirección de Solana en un registro en cadena.
Crear una billetera privada no requiere depositar fondos en el saldo privado.El registro vincula la clave pública de firma con las claves públicas de anulador y visualización. En conjunto, estas claves públicas forman la dirección protegida.
Cada registro es una PDA propiedad del , que cualquiera puede consultar para comprobar si una dirección de Solana puede recibir transferencias privadas.
  • owner es la dirección de Solana del usuario, usada para derivar la PDA del registro.
  • address es la dirección protegida del usuario.
  • buildRegistrationTransaction devuelve una transacción compilada de registro o actualización de claves. Devuelve undefined si la billetera ya está registrada.
  • sendTransaction firma y envía la transacción.
  • isWalletRegistered lee 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:
  1. Incorporar fondos desde un saldo fiduciario a un saldo privado de criptomonedas
  2. Depositar desde una cuenta SPL pública a un saldo privado
La incorporación y el depósito ofrecen distintas garantías de privacidad. Para obtener mayor privacidad, recomendamos usar la incorporación de fondos en lugar del depósito.

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:
  1. Como alternativa para las transferencias privadas a destinatarios que no tienen una billetera privada, o
  2. Como retiro directo a una cuenta pública de tokens SPL.
Para los retiros, recomendamos indicar claramente que el usuario está abandonando el saldo privado, como se hace al exportar una frase semilla o una clave privada.

Withdraw

Retira fondos a un saldo público de criptomonedas.

Didn’t find what you were looking for?

Reach out! Telegram | E-Mail | Contact