Skip to content

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:

  1. 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.
  2. Feature flags. Las dApps individuales pueden activar o desactivar funciones (cadenas adicionales, activos extra, etc.) sin afectar a otras integraciones.
  3. 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.

  1. Genera un UUID v4 (p. ej. uuidgen o crypto.randomUUID()).

  2. Abre un pull request contra apps/web/shared/partners.ts añadiendo una entrada para tu dApp:

    ts
    const PARTNERS: Record<string, AppConfig> = {
      // ... existing entries
      '<your-uuid>': {
        domains: ['your-app.com', '*.your-app.com'],
        assets: { additionalEnabled: [] },
      },
    }
  3. 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:

tsx
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 permite localhost y 127.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 appId no pueda ampliar accidentalmente tu lista blanca.