- Criem uma carteira privada autocustódia
- Recebam transferências privadas com um endereço Solana
- Depositem tokens para um saldo privado
- Enviem de forma privada para um endereço Solana
- Retirem para qualquer endereço Solana
- Desencriptem saldos privados e histórico de transações localmente
- Par de Chaves Blindado – na sua gestão de chaves para criptografia
- Interface de Privacidade e SDK – para construir transações privadas
- Fluxos de Usuário – para integrar na sua carteira
Contexto para sua IA
Add a Private Wallet to an existing Solana wallet
View prompt
View prompt
1
Integrar o Par de Chaves Blindado
Uma integração de carteira privada adiciona um par de chaves blindado à sua gestão de chaves. Um par de chaves blindado assina, encripta e desencripta transações.O par de chaves blindado é um conjunto das chaves de assinatura, nullifier e visualização.- Chave de assinatura: O par de chaves Ed25519 Solana da carteira para assinar transações.
- Chave de visualização: Um par de chaves P-256, usado para encriptar e desencriptar transações.
- Chave nullifier:
- Para carteiras baseadas em seed escolha Derivar da frase seed.
- Para carteiras não baseadas em seed escolha Derivar da assinatura EdDSA.
- Derivar da frase seed
- Derivar da assinatura EdDSA
Uma carteira baseada em seed deriva o par de chaves blindado de uma única frase mnemônica BIP-39 e um índice de conta (
0, 1, …).Cada índice de conta mapeia um par de chaves Solana para um par de chaves blindado.
Você pode recuperar o par de chaves blindado da mesma forma que recupera o par de chaves Solana.Por exemplo:- Conta 0: Par de chaves Solana 0 e par de chaves blindado 0
- Conta 1: Par de chaves Solana 1 e par de chaves blindado 1
A chave de assinatura blindada é a chave Ed25519 Solana dessa conta.
As chaves nullifier e de visualização são chaves adicionais derivadas do mesmo seed.
Implementação de Exemplo: Exemplo em TypeScript · Exemplo em Rust
2
Integrar a Interface de Privacidade e SDK
A Interface de Privacidade permite que seu código use o SDK de Privacidade para construir transações privadas sem acessar diretamente o material das chaves. Sua gestão de chaves implementa a Interface de Privacidade em duas partes.- Interface de Assinatura para Construção de Transações com o SDK de Privacidade. Visualizar Fonte: TypeScript/Rust
- Interface de Criptografia e Descriptografia. Visualizar Fonte: TypeScript/Rust
A Interface de Privacidade é sem estado e, portanto, não armazena saldos ou histórico de transações.
Para desempenho, recomendamos o cache local dos saldos e histórico de transações do usuário.
Sobre a Geração de Prova
A geração de prova de conhecimento zero requer entradas de texto simples de todos os dados de transação do usuário e chaves nullifier.Atualmente, a geração de provas no servidor está disponível através do URL padrão do Helius RPC.A geração de provas local estará disponível em breve. A geração de provas no servidor encriptada de ponta a ponta no AWS Nitro está planejada antes do lançamento na mainnet.3
Integrar Fluxos de Usuário
Criar Carteira Privada
Uma carteira privada é criada em dois passos:- Derivar o par de chaves blindado
- Registrar o endereço Solana no registro on-chain.
Cada registro é um PDA de propriedade do , que qualquer pessoa pode consultar para ver se um endereço Solana pode receber transferências privadas.
Sincronizar Saldo Privado & Histórico de Transações
A sincronização de saldo busca o estado encriptado do RPC e o desencripta na carteira.O RPC não desencripta. Apenas o proprietário pode desencriptar um saldo privado com uma chave de visualização.Uma carteira deve desencriptar e atualizar saldos antes de transações privadas e sempre que realizar backfills: ao desbloquear a carteira, abrir carteira privada, retomar aplicativo, reconectar à rede, gap de streaming, ou restaurar a carteira.
Ler um Saldo Privado
Ler Histórico de Transações Privadas
Depositar em um Saldo Privado
Os usuários podem depositar em um saldo privado de duas maneiras:- On-ramp de um saldo fiat para um saldo cripto privado
- Depositar de uma conta SPL pública para um saldo privado
On-/Off-Ramp
On-/Off-ramp fiat diretamente para e de um saldo privado.
Depósito
Depositar a partir de um saldo cripto público.
Transferências Privadas
Os usuários podem enviar transferências privadas para qualquer endereço de carteira Solana.Para cada transferência privada, o SDK de Privacidade procura o endereço da carteira no registro onchain para verificar se o destinatário possui uma carteira privada.O SDK de Privacidade pode resolver uma transferência privada para uma retirada privada para pública, quando o destinatário não possui uma Carteira Privada.Recomendamos rotular a transação na interface do usuário como uma retirada para garantir que o usuário não retire para um saldo público por acidente.
Transferência Privada
Transferir de forma privada para um saldo privado.
Retirar para um Saldo Público
As retiradas podem ser usadas de duas maneiras:- Como fallback para transferências privadas para destinatários que não possuem uma carteira privada, ou
- Retirada direta para uma conta de token SPL pública.
Retirada
Retirar para um saldo cripto público.