Skip to content

App ID

appId adalah UUID yang digunakan Drop wallet untuk mencari konfigurasi per-dApp di edge. Ini mengendalikan tiga hal:

  1. 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.
  2. Feature flag. dApp individu dapat mengaktifkan atau menonaktifkan fitur (chain tambahan, aset ekstra, dll.) tanpa memengaruhi integrasi lain.
  3. Cakupan analitik. Storage, analitik, dan state per-partner di-key dengan appId sehingga 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.

  1. Generate UUID v4 (misalnya uuidgen atau crypto.randomUUID()).

  2. Buka pull request ke apps/web/shared/partners.ts yang menambahkan entry untuk dApp Anda:

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

tsx
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 mengizinkan localhost dan 127.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 appId tidak dapat secara tidak sengaja memperluas allow-list Anda.