Boas Práticas de Integração de Wallet
25 práticas para UX de wallet segura e resiliente.
-
Lazy-connect: Solicite wallet apenas quando usuário iniciar ação de assinatura (Noções Básicas de Wallet).
-
Mostre badge de cluster: Devnet vs mainnet deve ser óbvio no header.
-
Valide correspondência RPC e rede da wallet: Mismatch causa falhas opacas de simulação.
-
Use descoberta Wallet Standard: Suporte múltiplas wallets - nunca hardcode uma marca.
-
Providers apenas client: Envolva providers de wallet em boundaries
"use client"do Next.js. -
Reset state do app no disconnect: Limpe caches keyed por pubkey.
-
Simule antes de assinar: Reduza aprovações falhadas e desperdício de fee.
-
Copy de rejeição: Usuários cancelam - mostre retry amigável, não erros.
-
Desabilite double-submit: Debounce botões send durante confirmação.
-
Exponha disconnect: Ação sempre visível no menu de conta.
-
autoConnect com UI de loading: Evite flash de conteúdo desconectado (Autoconnect e UX de Sessão).
-
Nunca armazene segredos em localStorage: Apenas public keys e preferências.
-
SIWS com binding de domínio: Mensagens de auth off-chain devem incluir origin e expiração.
-
Verifique assinaturas server-side: Check ed25519 antes de emitir sessões.
-
Timeouts de hardware wallet: Maiores que defaults de software wallet.
-
Teste Phantom e Solflare: Dois adapters mínimo em QA.
-
MWA mobile em dispositivos reais: Emuladores perdem edge cases de intent.
-
Trunque endereços: Mostre primeiros/últimos quatro chars - botão copy para completo.
-
Logue nome do adapter em tooling de suporte: Ajuda a reproduzir bugs específicos de wallet.
-
Mantenha versões adapter + kit alinhadas: Siga lockfile create-solana-dapp.
-
Não bloqueie conteúdo read-only: Reads RPC funcionam sem connect.
-
Previews de transação: Resuma deltas de token quando possível.
-
Priority fees na mainnet: Txs de usuário precisam compute budget durante congestionamento.
-
Modais acessíveis: Focus trap e navegação por teclado para UI de connect.
-
Documente requisitos de wallet: Página de ajuda listando wallets e browsers suportados.
FAQs
wallet-adapter vs wallet-ui?
wallet-ui para templates novos; wallet-adapter ainda amplamente usado.
autoConnect padrão?
Sim para apps consumer com loading gate; não para admin de alta segurança.
Ledger sem adapter?
Usuários ainda conectam via app wallet broker.
Relacionado
- Noções Básicas de Wallet - exemplos introdutórios
- Boas Práticas @solana/kit - camada client
- UX de Transação - confirmações
Versões do stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.