Skip to content

App ID

appId ist eine UUID, mit der das Drop Wallet die per-dApp-Konfiguration am Edge nachschlägt. Sie steuert drei Dinge:

  1. Welche Parent-Origins das Wallet einbetten dürfen. Die Edge-Funktion des Drop Wallets setzt bei jeder Antwort einen dynamischen Content-Security-Policy: frame-ancestors <your-origins>-Header. Eine dApp, die versucht, das Wallet von einem nicht registrierten Origin aus in ein iframe zu laden, wird vom Browser blockiert, bevor irgendwelcher Code ausgeführt wird.
  2. Feature-Flags. Einzelne dApps können Features (zusätzliche Chains, zusätzliche Assets usw.) aktivieren oder deaktivieren, ohne andere Integrationen zu beeinträchtigen.
  3. Analyse-Scope. Speicher, Analysen und partnerspezifischer State werden per appId gekeyt, sodass deine Integration sauber isoliert ist.

INFO

appId ist in der lokalen Entwicklung optional. Du kannst sie weglassen oder eine beliebige UUID übergeben, und das Wallet fällt auf eine nur auf localhost beschränkte CSP zurück. Sie wird erforderlich, sobald du auf einen öffentlichen Origin deployst.

App ID registrieren

Es gibt heute kein Self-Service-Portal – die Registrierung erfolgt per PR gegen die Partner-Datenbank.

  1. Generiere eine UUID v4 (z. B. mit uuidgen oder crypto.randomUUID()).

  2. Öffne einen Pull Request gegen apps/web/shared/partners.ts und füge einen Eintrag für deine dApp hinzu:

    ts
    const PARTNERS: Record<string, AppConfig> = {
      // ... existing entries
      '<your-uuid>': {
        domains: ['your-app.com', '*.your-app.com'],
        assets: { additionalEnabled: [] },
      },
    }
  3. Sobald der PR gemerged und das Wallet neu deployed ist, ist der Eintrag aktiv.

domains

Strings werden gegen den vom Browser gemeldeten frame-ancestors-Origin mit wildcard-match abgeglichen. Du kannst reine Hostnamen (your-app.com), Wildcards (*.your-app.com) oder vollständige Origins inklusive Protokoll (https://your-app.com) auflisten. Wenn du einen Hostnamen angibst, werden sowohl http://- als auch https://-Varianten akzeptiert.

localhost und 127.0.0.1 sind unabhängig von domains immer erlaubt, sodass du gegen eine nicht registrierte oder leere domains appId ohne zusätzliche Konfiguration entwickeln kannst.

assets.additionalEnabled

Eine Liste zusätzlicher Chain-IDs, die in der Wallet-UI über den Standardumfang hinaus angezeigt werden sollen. Lass sie auf [], wenn du nur die Standardwerte benötigst.

App ID verwenden

Übergib die UUID als appId beim Erstellen des Wallets:

tsx
const wallet = createWallet({
  appId: '424306bd-e3ae-40c0-902b-dffb1f18c7cc',
  providers: {
    solana: true,
  },
})

Das SDK leitet sie als ?appId=<uuid> an das iframe weiter – es gibt keinen Laufzeit-Handshake, den du durchführen musst.

Was passiert, wenn die App ID falsch ist?

  • Unbekannte UUID – die Edge-Funktion fällt auf NO_APP_CONFIG zurück, das nur localhost und 127.0.0.1 erlaubt. Das Wallet wird auf deinem Produktions-Origin mit einem CSP-Verstoß in der Browser- Konsole fehlschlagen.
  • Falsche Domains – dasselbe wie oben: Der Browser blockiert das iframe, bevor irgendwelcher Wallet-Code ausgeführt wird.
  • Fehlende UUID – dasselbe wie "unbekannte UUID" oben. Absichtlich so, damit das Weglassen der appId nicht versehentlich deine Allowlist erweitert.