Skip to content

App ID

appId é um UUID que a carteira Drop usa para consultar a configuração por dApp na edge. Ele controla três coisas:

  1. Quais origens pai podem embutir a carteira. A edge function da carteira Drop define um cabeçalho dinâmico Content-Security-Policy: frame-ancestors <suas-origens> em cada resposta. Um dApp que tente carregar a carteira em iframe a partir de uma origem não registrada é bloqueado pelo navegador antes que qualquer código seja executado.
  2. Feature flags. dApps individuais podem ativar ou desativar recursos (redes adicionais, ativos extras, etc.) sem afetar outras integrações.
  3. Escopo de analytics. Armazenamento, analytics e estado por parceiro são indexados pelo appId, de modo que sua integração fica limpamente isolada.

INFO

appId é opcional no desenvolvimento local. Você pode omiti-lo ou passar qualquer UUID e a carteira voltará a uma CSP restrita a localhost. Ele se torna obrigatório assim que você faz deploy em uma origem pública.

Registrar um App ID

Hoje não existe um portal self-service — o registro é um PR contra o banco de dados de parceiros.

  1. Gere um UUID v4 (por exemplo, uuidgen ou crypto.randomUUID()).

  2. Abra um pull request contra apps/web/shared/partners.ts adicionando uma entrada para seu dApp:

    ts
    const PARTNERS: Record<string, AppConfig> = {
      // ... existing entries
      '<your-uuid>': {
        domains: ['your-app.com', '*.your-app.com'],
        assets: { additionalEnabled: [] },
      },
    }
  3. Assim que o PR for mesclado e a carteira for reimplantada, a entrada fica ativa.

domains

As strings são comparadas com a origem frame-ancestors reportada pelo navegador usando wildcard-match. Você pode listar hostnames simples (your-app.com), wildcards (*.your-app.com) ou origens completas incluindo protocolo (https://your-app.com). Quando você passa um hostname, tanto a variante http:// quanto a https:// são aceitas.

localhost e 127.0.0.1 são sempre permitidos independentemente de domains, então você pode desenvolver contra um appId não registrado ou com domains vazios sem configuração adicional.

assets.additionalEnabled

Uma lista de IDs de rede extras a serem exibidos na UI da carteira além do conjunto padrão. Deixe como [] se você precisar apenas dos padrões.

Usando seu App ID

Passe o UUID como appId ao criar a carteira:

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

O SDK o encaminha para o iframe como ?appId=<uuid> — não há nenhum handshake em tempo de execução que você precise realizar.

O que acontece se o App ID estiver errado?

  • UUID desconhecido — a edge function recai em NO_APP_CONFIG, que permite apenas localhost e 127.0.0.1. A carteira não conseguirá carregar na sua origem de produção, com uma violação de CSP no console do navegador.
  • Domínios errados — o mesmo comportamento acima: o navegador bloqueia o iframe antes que qualquer código da carteira seja executado.
  • UUID ausente — o mesmo que "UUID desconhecido" acima. Isso é intencional, para que omitir o appId não amplie acidentalmente sua lista de permissões.