CHAPTER 05 / 16 ES · SDK 0.4.0
Primeros pasos
Del concepto a la integración. Cada decisión tiene una razón.
Requisitos#
- Navegador en contexto seguro (HTTPS) con
crypto.getRandomValues, IndexedDB y WebAuthn. El SDK es exclusivamente de navegador: nunca se importa desde Node, un route handler, un Server Component ni un job. ethersv6.- Una API key de cliente emitida por Nyx y tu dominio dado de alta como origen permitido.
- Los valores de
SafeDeploymentpara la red que vayas a usar. - Se recomienda PWA instalada cuando el navegador no garantice persistencia del almacenamiento.
Instalación#
bun add nyx_wallet ethers@^6 shamir-secret-sharing@^0.0.4ethers y shamir-secret-sharing son dependencias de pares, para que tu aplicación controle una sola copia de cada una.
Configuración#
import {
createDeviceStore,
createPasskeyRecoveryKeyProvider,
type NyxWalletConfig,
} from "nyx_wallet";
const config: NyxWalletConfig = {
apiBaseUrl: "https://<tu-entorno-nyx>/api",
// JWT de sesión del usuario, emitido por Nyx. Solo en memoria.
accessToken: session.accessToken,
// Fragmento A. IndexedDB particionado por usuario.
deviceStore: createDeviceStore({ userId: session.userId }),
// Tu bóveda para el sobre de recuperación. Ver el aviso de abajo.
recoveryVault,
// De dónde sale la llave que sella el sobre.
recoveryKeyProvider: createPasskeyRecoveryKeyProvider(),
// La passkey registrada del usuario: id y clave pública P-256.
biometricCredential,
// Solo si el RP de la passkey no es el dominio que sirve tu app.
biometricRpId: "auth.example.com",
};recoveryKeyProvider es obligatorio y el SDK no trae uno por defecto. Es deliberado: una wallet que nace sin sobre de recuperación es una wallet cuyo dueño lo pierde todo el día que se le muera el teléfono. Eso no puede ocurrir por descuido ni por un valor por defecto provisional que alguien olvidó cambiar.
NYX WALLET / LEDGIT × AOS FACTORYComenta tu integración ↗
