Pequena e nativa: C++, sem runtime JavaScript, da estação de trabalho ao Raspberry Pi
Uma carteira é um programa de segurança. Ela deveria ser pequena o bastante para ser auditada, rápida o bastante para você esquecer que existe e livre de peças móveis que não sejam dela.

Nesta página
C++ e Qt
A AirNox Wallet é escrita em C++ com o toolkit Qt. A criptografia, o código de cada blockchain, os montadores de transação e a triagem ficam todos num único núcleo nativo, compilado para cada plataforma. A interface também é nativa. Não há navegador embutido renderizando a carteira nem motor de scripts executando-a.
Isso tem três consequências que você sente. A carteira abre num instante. Ociosa, ela fica quieta, com um consumo que deixa a máquina livre para o resto do trabalho. E não há nenhum runtime por baixo que se atualize sozinho, carregue pacotes ou execute código baixado de algum lugar.
O que não está lá dentro
Sem runtime JavaScript. Boa parte dos comprometimentos de carteiras chega por ecossistemas de pacotes e injeção de scripts. Uma carteira sem motor de scripts não é alvo para isso.
Sem web view. A interface é desenhada pelo toolkit, não por um componente de navegador. Não há página onde injetar nada.
Sem telemetria, sem analytics, sem rastreadores. A carteira conversa com nós de blockchain e com os provedores de swap e de ponte que você escolhe usar. Ela não conversa com a gente. Nada manda dados de volta para nós, e não há conta para criar.

Plataformas
O aplicativo de desktop roda em Windows, Linux e macOS, com uma build nativa para cada um. O mesmo código roda em hardware da classe Raspberry Pi, o que faz da AirNox uma boa opção para instalações embarcadas: um terminal de casa de câmbio, um quiosque, uma estação de assinatura no back-office. Uma plaquinha com tela, um leitor NFC USB e a carteira formam um ponto de operação completo, pronto para air gap, com as chaves num celular que encosta no leitor.
Um só núcleo de assinatura
O app do celular e o desktop compartilham o mesmo núcleo. O código que deriva chaves, monta uma transação e decodifica uma para mostrar na tela é o mesmo código nos dois aparelhos, compilado para cada um. Há uma implementação de cada blockchain para auditar, não duas que precisam concordar, e uma correção de um lado é uma correção nos dois.
Por que isso importa
Ser pequena e nativa não é preferência de estilo. Cada dependência é um lugar onde o erro de outra pessoa vira o seu, e cada runtime é uma superfície de ataque. Toda chamada de rede que não é estritamente necessária vaza alguma coisa. Uma carteira que é um único programa nativo, conversando só com os nós que você indica, é uma carteira que você consegue entender. Esse é o padrão que aplicamos ao produto inteiro, do assinador (signer) no celular à janela na sua mesa.
A série completa
- Considere o computador comprometido
- Mass Adoption Security: o assinador é um celular que você já tem
- Três caminhos através do air gap: QR codes, Bluetooth LE e NFC
- Invisível no ar: um assinador que nenhum scanner encontra
- Nunca confiamos no transporte
- O que o celular mostra: análise de transações no assinador
- O celular mantém seu próprio registro
- O cofre no seu desktop: Argon2id e um perfil que resiste a tentativas de adivinhação
- dApps sem carteira de navegador
- Um servidor MCP com regras: agentes de IA dentro de limites
- Uma só carteira protegida para tudo
- Pequena e nativa: C++, sem runtime JavaScript, da estação de trabalho ao Raspberry Pi