App ID
appId est un UUID que le portefeuille Drop utilise pour rechercher la configuration propre à chaque dApp à la périphérie. Il contrôle trois éléments :
- Les origines parentes autorisées à embarquer le portefeuille. La edge function du portefeuille Drop ajoute un en-tête dynamique
Content-Security-Policy: frame-ancestors <your-origins>sur chaque réponse. Une dApp qui essaie d'embarquer le portefeuille dans un iframe depuis une origine non enregistrée est bloquée par le navigateur avant qu'aucun code ne s'exécute. - Les feature flags. Les dApps individuelles peuvent activer ou désactiver des fonctionnalités (chaînes supplémentaires, assets additionnels, etc.) sans affecter les autres intégrations.
- La portée de l'analytique. Le stockage, l'analytique et l'état par partenaire sont indexés par
appIdafin que votre intégration soit proprement isolée.
INFO
appId est optionnel en développement local. Vous pouvez l'omettre ou passer n'importe quel UUID et le portefeuille basculera vers une CSP limitée à localhost. Il devient obligatoire dès lors que vous déployez sur une origine publique.
Enregistrer un App ID
Il n'existe pas de portail en self-service à ce jour — l'enregistrement se fait via une PR contre la base de données partenaires.
Générez un UUID v4 (par exemple
uuidgenoucrypto.randomUUID()).Ouvrez une pull request contre
apps/web/shared/partners.tsen ajoutant une entrée pour votre dApp :tsconst PARTNERS: Record<string, AppConfig> = { // ... existing entries '<your-uuid>': { domains: ['your-app.com', '*.your-app.com'], assets: { additionalEnabled: [] }, }, }Une fois la PR fusionnée et le portefeuille redéployé, l'entrée est active.
domains
Les chaînes sont comparées à l'origine frame-ancestors rapportée par le navigateur à l'aide de wildcard-match. Vous pouvez lister des noms d'hôte bruts (your-app.com), des wildcards (*.your-app.com) ou des origines complètes avec protocole (https://your-app.com). Lorsque vous passez un nom d'hôte, les variantes http:// et https:// sont toutes deux acceptées.
localhost et 127.0.0.1 sont toujours autorisés indépendamment de domains, ce qui vous permet de développer contre un appId non enregistré ou avec des domains vides sans configuration supplémentaire.
assets.additionalEnabled
Une liste d'identifiants de chaînes supplémentaires à faire apparaître dans l'UI du portefeuille en plus de l'ensemble par défaut. Laissez [] si vous n'avez besoin que des valeurs par défaut.
Utiliser votre App ID
Passez l'UUID en tant qu'appId lors de la création du portefeuille :
const wallet = createWallet({
appId: '424306bd-e3ae-40c0-902b-dffb1f18c7cc',
providers: {
solana: true,
},
})Le SDK le transmet à l'iframe sous la forme ?appId=<uuid> — il n'y a aucun handshake à exécuter à l'exécution.
Que se passe-t-il si l'App ID est incorrect ?
- UUID inconnu — la edge function revient sur
NO_APP_CONFIG, qui n'autorise quelocalhostet127.0.0.1. Le portefeuille échouera à se charger sur votre origine de production avec une violation de CSP dans la console du navigateur. - Mauvais domaines — identique à ce qui précède : le navigateur bloque l'iframe avant qu'aucun code du portefeuille ne s'exécute.
- UUID manquant — identique à « UUID inconnu » ci-dessus. Ce comportement est intentionnel, afin qu'oublier l'
appIdne puisse pas élargir accidentellement votre liste d'autorisation.