Mejores prácticas de integración de billeteras
25 prácticas para una experiencia de usuario de billetera segura y resiliente.
-
Conexión diferida (Lazy-connect): Solicita la billetera solo cuando el usuario inicie una acción de firma (Conceptos básicos de billetera).
-
Mostrar insignia del clúster: Devnet vs mainnet debe ser obvio en la cabecera.
-
Validar coincidencia de red RPC y billetera: La falta de coincidencia causa fallos de simulación opacos.
-
Usar descubrimiento de Wallet Standard: Soporta múltiples billeteras, nunca codifiques una marca.
-
Proveedores solo del lado del cliente: Envuelve los proveedores de billetera en límites
"use client"de Next.js. -
Restablecer el estado de la aplicación al desconectar: Limpia las cachés indexadas por la clave pública.
-
Simular antes de firmar: Reduce las aprobaciones fallidas y el desperdicio de tarifas.
-
Manejar el texto de rechazo: Los usuarios cancelan; muestra una reintentación amigable, no errores.
-
Deshabilitar doble envío: Debouncea los botones de envío durante la confirmación.
-
Exponer desconexión: Acción siempre visible en el menú de cuenta.
-
autoConnectcon UI de carga: Evita el destello de contenido desconectado (Autoconexión y UX de sesión). -
Nunca almacenar secretos en
localStorage: Solo claves públicas y preferencias. -
SIWS con enlace de dominio: Los mensajes de autenticación fuera de la cadena deben incluir el origen y la fecha de caducidad.
-
Verificar firmas en el lado del servidor: Comprobación
ed25519antes de emitir sesiones. -
Tiempos de espera de billetera de hardware: Más largos que los valores predeterminados de la billetera de software.
-
Probar Phantom y Solflare: Mínimo dos adaptadores en QA.
-
MWA móvil en dispositivos reales: Los emuladores omiten casos extremos de intención.
-
Truncar direcciones: Muestra los primeros/últimos cuatro caracteres; botón de copia para el completo.
-
Registrar el nombre del adaptador en herramientas de soporte: Ayuda a reproducir errores específicos de la billetera.
-
Mantener las versiones del adaptador + kit alineadas: Sigue el
lockfiledecreate-solana-dapp. -
No bloquear contenido de solo lectura: Las lecturas RPC funcionan sin conexión.
-
Vistas previas de transacciones: Resume los deltas de tokens cuando sea posible.
-
Tarifas de prioridad en mainnet: Las transacciones del usuario necesitan presupuesto de cómputo durante la congestión.
-
Modales accesibles: Trampa de enfoque y navegación por teclado para la UI de conexión.
-
Documentar requisitos de billetera: Página de ayuda que enumera las billeteras y navegadores compatibles.
Preguntas frecuentes
¿`wallet-adapter` vs `wallet-ui`?
wallet-ui para nuevas plantillas; wallet-adapter todavía ampliamente utilizado.
¿`autoConnect` por defecto?
Sí para aplicaciones de consumo con puerta de carga; no para administración de alta seguridad.
¿Ledger sin adaptador?
Los usuarios todavía se conectan a través de una aplicación de billetera intermediaria.
Relacionado
- Conceptos básicos de billetera - ejemplos introductorios
- Mejores prácticas de
@solana/kit- capa de cliente - UX de transacciones - confirmaciones
Versiones de la pila: Esta página fue 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 y LiteSVM 0.6.x.