App ID
appId ist eine UUID, mit der das Drop Wallet die per-dApp-Konfiguration am Edge nachschlägt. Sie steuert drei Dinge:
- 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. - Feature-Flags. Einzelne dApps können Features (zusätzliche Chains, zusätzliche Assets usw.) aktivieren oder deaktivieren, ohne andere Integrationen zu beeinträchtigen.
- Analyse-Scope. Speicher, Analysen und partnerspezifischer State werden per
appIdgekeyt, 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.
Generiere eine UUID v4 (z. B. mit
uuidgenodercrypto.randomUUID()).Öffne einen Pull Request gegen
apps/web/shared/partners.tsund füge einen Eintrag für deine dApp hinzu:tsconst PARTNERS: Record<string, AppConfig> = { // ... existing entries '<your-uuid>': { domains: ['your-app.com', '*.your-app.com'], assets: { additionalEnabled: [] }, }, }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:
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_CONFIGzurück, das nurlocalhostund127.0.0.1erlaubt. 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
appIdnicht versehentlich deine Allowlist erweitert.