App ID
appId adalah UUID yang digunakan Drop wallet untuk mencari konfigurasi per-dApp di edge. Ini mengendalikan tiga hal:
- Origin parent mana yang boleh menyematkan wallet. Edge function Drop wallet menyetel header dinamis
Content-Security-Policy: frame-ancestors <your-origins>pada setiap respons. dApp yang mencoba mem-iframe wallet dari origin yang tidak terdaftar akan diblokir oleh browser sebelum kode apa pun berjalan. - Feature flag. dApp individu dapat mengaktifkan atau menonaktifkan fitur (chain tambahan, aset ekstra, dll.) tanpa memengaruhi integrasi lain.
- Cakupan analitik. Storage, analitik, dan state per-partner di-key dengan
appIdsehingga integrasi Anda terisolasi dengan rapi.
INFO
appId bersifat opsional pada pengembangan lokal. Anda bisa mengabaikannya atau mengoper UUID apa pun dan wallet akan fallback ke CSP khusus localhost. Ia menjadi wajib ketika Anda men-deploy ke origin publik.
Mendaftarkan App ID
Saat ini belum ada portal self-service — registrasi dilakukan melalui PR ke partner database.
Generate UUID v4 (misalnya
uuidgenataucrypto.randomUUID()).Buka pull request ke
apps/web/shared/partners.tsyang menambahkan entry untuk dApp Anda:tsconst PARTNERS: Record<string, AppConfig> = { // ... existing entries '<your-uuid>': { domains: ['your-app.com', '*.your-app.com'], assets: { additionalEnabled: [] }, }, }Setelah PR di-merge dan wallet di-redeploy, entry akan aktif.
domains
String dicocokkan dengan origin frame-ancestors yang dilaporkan browser menggunakan wildcard-match. Anda dapat menuliskan hostname biasa (your-app.com), wildcard (*.your-app.com), atau origin lengkap termasuk protokol (https://your-app.com). Ketika Anda mengoper hostname, varian http:// dan https:// keduanya diterima.
localhost dan 127.0.0.1 selalu diizinkan terlepas dari domains, sehingga Anda dapat mengembangkan terhadap appId yang belum terdaftar atau dengan domains kosong tanpa konfigurasi tambahan.
assets.additionalEnabled
Daftar chain ID tambahan yang akan ditampilkan di UI wallet di luar set default. Biarkan sebagai [] jika Anda hanya membutuhkan default.
Menggunakan App ID Anda
Oper UUID sebagai appId saat membuat wallet:
const wallet = createWallet({
appId: '424306bd-e3ae-40c0-902b-dffb1f18c7cc',
providers: {
solana: true,
},
})SDK akan meneruskannya ke iframe sebagai ?appId=<uuid> — tidak ada handshake runtime yang perlu Anda lakukan.
Apa yang terjadi jika App ID salah?
- UUID tidak dikenal — edge function akan fallback ke
NO_APP_CONFIG, yang hanya mengizinkanlocalhostdan127.0.0.1. Wallet akan gagal dimuat di origin production Anda disertai pelanggaran CSP di console browser. - Domain salah — sama seperti di atas: browser memblokir iframe sebelum kode wallet apa pun dieksekusi.
- UUID hilang — sama seperti "UUID tidak dikenal" di atas. Ini disengaja, sehingga menghilangkan
appIdtidak dapat secara tidak sengaja memperluas allow-list Anda.