App ID
appId es un UUID que la wallet de Drop utiliza para buscar la configuración por dApp en el edge. Controla tres cosas:
- Qué orígenes padre pueden incrustar la wallet. La función edge de la wallet de Drop establece un encabezado dinámico
Content-Security-Policy: frame-ancestors <your-origins>en cada respuesta. Una dApp que intente incrustar la wallet en un iframe desde un origen no registrado es bloqueada por el navegador antes de que se ejecute cualquier código. - Feature flags. Las dApps individuales pueden activar o desactivar funciones (cadenas adicionales, activos extra, etc.) sin afectar a otras integraciones.
- Alcance de la analítica. El almacenamiento, la analítica y el estado por partner se indexan por
appId, de modo que tu integración queda aislada limpiamente.
INFO
appId es opcional en desarrollo local. Puedes omitirlo o pasar cualquier UUID y la wallet recurrirá a una CSP solo para localhost. Se vuelve obligatorio una vez que despliegas en un origen público.
Registrar un App ID
Hoy no hay un portal de autoservicio: el registro es un PR contra la base de datos de partners.
Genera un UUID v4 (p. ej.
uuidgenocrypto.randomUUID()).Abre un pull request contra
apps/web/shared/partners.tsañadiendo una entrada para tu dApp:tsconst PARTNERS: Record<string, AppConfig> = { // ... existing entries '<your-uuid>': { domains: ['your-app.com', '*.your-app.com'], assets: { additionalEnabled: [] }, }, }Una vez que el PR se fusiona y la wallet se redespliega, la entrada queda activa.
domains
Las cadenas se comparan con el origen frame-ancestors reportado por el navegador usando wildcard-match. Puedes listar nombres de host sin protocolo (your-app.com), comodines (*.your-app.com) u orígenes completos incluyendo protocolo (https://your-app.com). Cuando pasas un nombre de host, se aceptan tanto las variantes http:// como https://.
localhost y 127.0.0.1 siempre están permitidos independientemente de domains, por lo que puedes desarrollar contra un appId no registrado o con domains vacíos sin configuración adicional.
assets.additionalEnabled
Una lista de IDs de cadenas extra que mostrar en la UI de la wallet más allá del conjunto por defecto. Déjala como [] si solo necesitas los valores por defecto.
Usar tu App ID
Pasa el UUID como appId al crear la wallet:
const wallet = createWallet({
appId: '424306bd-e3ae-40c0-902b-dffb1f18c7cc',
providers: {
solana: true,
},
})El SDK lo reenvía al iframe como ?appId=<uuid>: no hay ningún handshake en tiempo de ejecución que tengas que realizar.
¿Qué ocurre si el App ID es incorrecto?
- UUID desconocido — la función edge recurre a
NO_APP_CONFIG, que solo permitelocalhosty127.0.0.1. La wallet no conseguirá cargarse en tu origen de producción con una violación de CSP en la consola del navegador. - Dominios incorrectos — igual que lo anterior: el navegador bloquea el iframe antes de que se ejecute cualquier código de la wallet.
- UUID ausente — igual que "UUID desconocido" arriba. Es intencional, para que omitir el
appIdno pueda ampliar accidentalmente tu lista blanca.