NIP-55 define como apps Android pedem operações de assinatura e criptografia a uma signer application separada. Ela dá a clientes Android uma alternativa nativa a extensões de navegador e bunkers remotos.

Como funciona

A NIP-55 usa dois mecanismos do Android:

  • Intents para fluxos em foreground com aprovação explícita do usuário
  • Content resolvers para fluxos em background depois que o usuário concede permissão persistente

O fluxo de conexão usual começa com get_public_key. O signer retorna tanto a pubkey do usuário quanto o nome do pacote do signer, e o cliente deve armazenar ambos em cache. Repetir get_public_key em loops de background é um erro comum de implementação que a spec alerta explicitamente para evitar.

Operações principais

  • get_public_key - recupera a pubkey do usuário e o nome do pacote do signer
  • sign_event - assina um evento Nostr
  • nip04_encrypt/decrypt - criptografa ou descriptografa mensagens NIP-04
  • nip44_encrypt/decrypt - criptografa ou descriptografa mensagens NIP-44
  • decrypt_zap_event - descriptografa payloads de eventos relacionados a zap

Notas de segurança e UX

A NIP-55 mantém as chaves no dispositivo, mas ainda depende dos limites entre apps do Android e do tratamento de permissões do signer. O suporte a content resolver oferece uma UX muito mais suave do que prompts repetidos com intent, mas somente depois que o usuário concedeu aprovação durável àquele cliente.

Para apps web no Android, a NIP-55 é menos ergonômica do que a NIP-46. Fluxos baseados em navegador não conseguem receber responses diretas em background da mesma forma que apps Android nativos conseguem, então muitas implementações recorrem a callback URLs, transferência por clipboard ou colagem manual.


Fontes primárias:

Mencionado em:

Veja também: