Sobre o projeto
Keep é um aplicativo Android para assinatura limiar FROST (Flexible Round-Optimized Schnorr Threshold Signatures), construído como um assinante dedicado de eventos Nostr. Ele permite que usuários mantenham partes de chave FROST em seus telefones e assinem eventos Nostr sem que qualquer dispositivo individual detenha a chave privada completa. Implementa o protocolo de assinante Android NIP-55 (intents e content provider) e assinatura remota NIP-46 (serviço bunker), permitindo que clientes Nostr compatíveis solicitem assinaturas diretamente.
Capacidades principais descritas no README:
- Assinatura limiar FROST com esquemas configuráveis, como 2-de-3 e 3-de-5.
- Protocolo de assinante Android NIP-55 e assinatura remota NIP-46.
- Importação e exportação de partes FROST via QR code ou texto, além de importação de chaves nsec existentes.
- Suporte a múltiplas contas com permissões e políticas de assinatura por aplicativo.
- Histórico de assinaturas e registro de auditoria.
- Autenticação biométrica e PIN, com armazenamento de chaves protegido por hardware via Android Keystore.
- Interruptor de emergência para exclusão de chaves.
- Suporte a proxy SOCKS (Tor) e fixação de certificados para conexões de relay.
- Criptografia e descriptografia NIP-44, além de operações NIP-04.
- Assinatura em segundo plano com limites de taxa configuráveis.
- Backup e restauração criptografados.
- Coordenação de descritores de carteira Bitcoin para multisig.
Operações NIP-55 suportadas listadas incluem get_public_key, sign_event, nip04_encrypt, nip04_decrypt, nip44_encrypt, nip44_decrypt e decrypt_zap_event.
A distribuição é oferecida através de Zapstore, Obtainium, lançamentos no GitHub e F-Droid. A compilação requer versões fixadas de ferramentas: Rust 1.89.0, Android NDK 29.0.14206865, cargo-ndk 4.1.2 e JDK 17; a compilação falha rapidamente em caso de incompatibilidade. O Gradle reconstrói automaticamente as bibliotecas Rust quando os fontes mudam. Um script permite atualizar as ligações Kotlin a partir de uma compilação host sem o NDK para verificação de tipos, embora tais compilações falhem em tempo de execução com UnsatisfiedLinkError. Outro script verifica versões fixadas em scripts de compilação e fluxos de CI.
Contribuições são aceitas via issues e pull requests no GitHub. Traduções são bem-vindas, com locais iniciais para português brasileiro, espanhol, alemão e japonês; uma plataforma de tradução gerenciada é notada como pendência, e o CI verifica desvios de local. O projeto é licenciado sob MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.