// documentation

Como tudo funciona.

A referência para as partes móveis do BurnPony. Para tutoriais passo a passo, veja os guias; para a especificação exata em nível de byte, o protocolo v1.

As notas e o envelope

Uma nota tem até 50.000 caracteres de texto. No seu dispositivo, a nota e sua configuração de ocultar automaticamente são embrulhadas em um pequeno payload JSON, depois criptografadas com AES-256-GCM. O que é enviado é um envelope contendo apenas uma versão de formato, um sinalizador dizendo se uma frase secreta é necessária, o sal aleatório, o nonce e o texto cifrado — menos de 512 KiB e ilegível sem a chave.

O link e a chave do fragmento

Criar uma nota retorna um link no formato burnpony.app/n/<id de 22 car.>#<chave de 43 car.>. A parte antes do # identifica a nota; a parte depois é a chave de fragmento de 32 bytes codificada em base64url. Os navegadores nunca transmitem fragmentos, então a chave chega ao navegador do destinatário apenas pelo link e nunca é vista pelo servidor. A chave de criptografia real é derivada da chave de fragmento e do sal com HKDF-SHA256.

Frases secretas

Uma frase secreta opcional adiciona um segundo fator: ela é normalizada, reforçada com PBKDF2-HMAC-SHA256 a 600.000 iterações e integrada à derivação da chave. O destinatário é solicitado a inseri-la no visualizador; as tentativas acontecem inteiramente no navegador dele e não consomem visualizações. Compartilhe a frase por um canal diferente do link. Veja adicionar uma frase secreta.

Visualizações, expiração e ocultar automaticamente

Cada nota carrega um limite de visualizações de 1 a 100 — a última visualização permitida apaga o texto cifrado na mesma transação do banco de dados — e uma expiração de 1 hora a 30 dias, aplicada por uma varredura a cada cinco minutos. O limite que chegar primeiro queima a nota. Você também pode definir uma contagem regressiva de ocultar automaticamente (10 a 120 segundos) que reoculta o texto revelado no visualizador; essa configuração viaja criptografada dentro da nota, então nem o servidor a conhece. Veja escolher visualizações e expiração.

Confirmações de leitura

As confirmações vêm desativadas por padrão. Ativadas, o visualizador informa ao destinatário que o remetente será notificado antes de ele revelar a nota, a hora de abertura é registrada, e seu telefone recebe um push genérico — «Uma nota foi aberta.» — carregando apenas o ID da nota. Até cinco dos seus dispositivos podem se registrar para as confirmações de uma nota. Veja usar confirmações de leitura.

A aba Enviados e a queima antecipada

Cada nota que você cria aparece em Enviados com status ao vivo: visualizações usadas, expiração, horários de confirmação se ativados. Apenas o ID da nota, um token de gerenciamento e as configurações escolhidas são guardados no seu dispositivo — nunca o texto da nota. Queimar apaga o texto cifrado do servidor imediatamente; depois o link se comporta como qualquer link morto. Veja queimar uma nota antes.

O visualizador

A página que os destinatários abrem é um único arquivo autossuficiente: sem frameworks, sem cookies, sem requisições externas, uma Content-Security-Policy estrita e uma política sem referenciador para que o link não vaze adiante. Ela avisa que a nota se autodestrói antes de o destinatário revelá-la, descriptografa com o WebCrypto do navegador e está localizada em 9 idiomas. Ver código-fonte mostra tudo.

O servidor

O relay em burnpony.app armazena envelopes selados e um registro mínimo — IDs, carimbos de data/hora, contagens de visualizações, sinalizadores de confirmação, um token de gerenciamento com hash — e apaga o texto cifrado na última visualização, na expiração ou na queima antecipada. Notas queimadas, expiradas e que nunca existiram são indistinguíveis de fora. A criação é limitada por taxa usando hashes de IP salgados de vida curta em vez de logs de endereços. Detalhe completo na página de segurança.

Auto-hospedagem

As Configurações aceitam uma URL de servidor personalizada, e cada nota lembra em qual servidor vive — então notas criadas no seu próprio relay continuam funcionando se você voltar. O código do servidor de retransmissão está planejado para publicação; até sair, a auto-hospedagem é uma capacidade que o app suporta e não algo que você possa implantar de um repositório público hoje. O roteiro acompanha isso com honestidade.

Limites em resumo

Tamanho da nota: 50.000 caracteres. Tamanho do envelope: 512 KiB. Visualizações: 1–100. Expiração: 1 hora, 8 horas, 1 dia, 3 dias, 7 dias ou 30 dias. Ocultar automaticamente: desligado, 10, 30, 60 ou 120 segundos. Criação: limitada por taxa por hora por endereço (com hash).