Chat descentralizado ganha força com mensagens por Bluetooth e Nostr
Projeto em Swift combina comunicação offline por rede mesh e alcance global sem contas, números de telefone ou servidores centrais.
Projeto em Swift combina comunicação offline por rede mesh e alcance global sem contas, números de telefone ou servidores centrais.
O bitchat, criado pela organização permissionlesstech, é um aplicativo de mensagens ponto a ponto que combina Bluetooth mesh, para comunicação offline, e o protocolo Nostr, para conectar usuários pela internet. O projeto está em alta no GitHub Trending, na categoria mensal, e acumulava 34.835 estrelas na consulta de 9 de agosto de 2026. A proposta é resolver um problema específico: permitir conversas locais mesmo sem internet, mantendo uma alternativa global quando houver conexão.
O aplicativo não exige contas, números de telefone ou servidores próprios. No modo Bluetooth, aparelhos próximos formam uma rede mesh, modelo em que dispositivos podem retransmitir mensagens entre si para ampliar o alcance.
Segundo o README, o sistema aceita até sete saltos entre dispositivos. Isso permite que uma mensagem avance por aparelhos intermediários, mesmo quando o destinatário não está diretamente ao alcance do remetente. A comunicação pode funcionar sem internet, cenário útil em desastres, áreas remotas e eventos em que a conectividade esteja indisponível.
Quando há internet, o bitchat usa o Nostr, protocolo distribuído baseado em relays, que funcionam como pontos de encaminhamento de mensagens. O projeto informa uma rede com mais de 440 relays e oferece canais associados a áreas geográficas por meio de coordenadas geohash.
A arquitetura tem dois transportes. O primeiro é o Bluetooth Low Energy, usado para descoberta automática de pares, conexões locais e encaminhamento em múltiplos saltos. O segundo é o Nostr, empregado para canais geográficos e para mensagens quando o Bluetooth não está disponível.
O envio de uma mensagem privada segue uma ordem definida: tenta primeiro uma sessão Bluetooth com o protocolo Noise; se não houver conexão, usa a chave pública Nostr do destinatário e um envelope privado próprio do bitchat; se os dois caminhos estiverem indisponíveis, a mensagem fica em fila até que um transporte seja encontrado.
O projeto também oferece comandos inspirados no IRC, como /slap, /msg e /who. Para instalar ou testar uma cópia no macOS, o README orienta abrir o projeto no Xcode com o comando:
open bitchat.xcodeproj
Para uma compilação assinada em dispositivo Apple, é necessário copiar Configs/Local.xcconfig.example para Configs/Local.xcconfig e substituir o identificador de equipe pelo Apple Developer Team ID. O repositório também recomenda verificar builds usando manifestos de hash por release.
O bitchat combina dois modelos que normalmente aparecem separados: uma rede mesh local por Bluetooth e uma camada de alcance global baseada em Nostr. Essa combinação permite alternar entre comunicação offline e relays na internet, em vez de depender exclusivamente de uma infraestrutura.
A interface também busca reproduzir a experiência de canais IRC, enquanto o projeto oferece suporte nativo para iOS e macOS. O README cita compressão de mensagens com LZ4, modos adaptativos de bateria, descoberta automática de pares e limpeza emergencial de dados com três toques.
A interoperabilidade com outros clientes Nostr é parcial. O formato de envelopes privados do bitchat é específico do aplicativo e não é compatível com NIP-17, NIP-44 ou NIP-59, embora use o Nostr como transporte por relays.
A maturidade geral do projeto não é informada no repositório. Na consulta, havia 126 issues abertas, dado que indica atividade pendente, mas não permite concluir sozinho a estabilidade do aplicativo.
A privacidade também exige atenção. Apesar de o projeto não usar contas, telefones ou servidores centrais, a rede mesh mantém um identificador persistente por dispositivo derivado da chave de identidade. O próprio README orienta consultar o whitepaper para entender quais metadados podem ser observados por um rádio próximo.
A segurança depende de instalar uma versão confiável. O projeto alerta que builds compiladas de fontes desconhecidas não podem ser verificadas e menciona pedidos de remoção que podem fazer cópias e espelhos aparecerem. Dependências externas, requisitos completos de hardware e compatibilidade detalhada não são informados no repositório.
A licença é a Unlicense, que coloca o código em domínio público conforme o arquivo de licença do projeto. O último commit ocorreu em 9 de agosto de 2026, e a versão mais recente informada é a v1.7.1, publicada em 31 de julho de 2026.