[⚡] usenostr

nostr é um protocolo

sobre o qual muita coisa pode ser construída.

Nostr não é um app. É um protocolo aberto, leve, simples e extensível que permite construir redes verdadeiramente resistentes a censura e descentralizadas. Redes sociais, chat, pagamentos, blogs, mercados. Ninguém é dono dele.

O protocolo é baseado em relays. Relays são servidores que qualquer pessoa pode operar. Ao abrir uma conexão persistente com um relay, os clientes (os apps que você usa) enviam e recebem eventos em tempo real. Ninguém pode te expulsar.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

conteúdo

  1. 01 chaves e contas
  2. 02 eventos
  3. 03 relays
  4. 04 zaps
  5. 05 mensagens privadas
  6. 06 o que você pode fazer com ele
  7. 07 construa sobre o nostr
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

01

chaves e contas

No Nostr você não precisa se registrar passando dados pessoais. Não tem email, nem telefone, nem senha.

Como no Bitcoin, você só precisa de um par de chaves. Duas chaves, para ser exato:

chave pública npub1…

Vai funcionar como seu nome de usuário. Pode ser compartilhada e é pública para todo mundo.

chave privada nsec1…

É como sua senha. Você precisa mantê-la em segredo (daí o nome). Ela te dá acesso à sua conta em qualquer plataforma que fala Nostr.

Você deve guardar sua chave privada. É a única forma de recuperar e voltar a acessar sua conta no futuro.

obtendo um par de chaves

A forma fácil é usar nstart.me. Ele gera um par de chaves, te guia por um backup, te deixa escolher um nome e relays decentes, e depois te manda para o cliente que preferir.

A maioria dos clientes também gera chaves na primeira vez que você abre. Qualquer um dos dois jeitos funciona, mas se é sua primeira vez, o fluxo do Nstart acima é mais amigável.

signers: não cole seu nsec em apps aleatórios

Seu nsec é a chave de casa. Colar em um app confiável que guarde a chave só no seu dispositivo está tudo bem (vários clientes bons funcionam assim), mas se você colar em algum lugar que não conhece direito, deixa de ser segredo. O mais seguro por padrão é deixar um signer (assinador) guardar a chave e assinar eventos em nome dos apps que você usa.

um nome legível (NIP-05)

Um npub1… não é fácil de lembrar. NIP-05 te deixa reivindicar um nome mais amigável como alice@example.com hospedando um pequeno arquivo JSON em um domínio seu. Não é um registro central, é só DNS.

informações do perfil

Você pode anexar metadados às suas chaves: nome, bio, avatar, capa. A maioria dos clientes te deixa editar tudo isso. Por baixo, é só mais um evento assinado.

O protocolo Nostr é extensível através de NIPs (Nostr Implementation Possibilities). NIPs são as especificações que as pessoas escrevem quando querem adicionar algo ao protocolo. NIP-01 é o núcleo; o resto é opcional.

02

eventos

O único tipo de objeto que existe no Nostr é o evento. Eventos são estruturas pequenas, assinadas e só de texto. Tudo que seu cliente envia a um relay é um evento: uma publicação, uma resposta, um like, uma atualização de perfil, um zap, uma mensagem privada, um artigo longo.

Veja como um evento é por dentro:

// kind 1, uma nota de texto simples
{
  "id":         "c011…4c43",
  "pubkey":     "dec1…4fb3",
  "created_at": 1761522400,
  "kind":       1,
  "tags":       [],
  "content":    "bom dia!",
  "sig":        "e1dc…5f1"
}

Destrinchando:

  • Os campos content e created_at falam por si.
  • O id é um identificador único deste evento. É como a rede se refere a ele.
  • O pubkey é a chave pública (o usuário) que criou o evento.
  • O sig é uma prova criptográfica de que quem publicou o evento tem a chave privada correspondente ao pubkey.
  • O campo tags pode conter as tags que você quiser: referências a outros eventos, outros usuários, URLs, hashtags. Quando você responde a uma nota, por exemplo, o id dela vira uma tag aqui.

kinds

O kind do evento é uma das partes mais interessantes do Nostr. É um número que diz que tipo de evento é. O interessante: kinds não têm limite, então qualquer um pode inventar novos para o que quiser construir.

Alguns kinds comuns:

  • 0 informações do perfil (nome, bio, foto)
  • 1 uma nota curta (o "tweet")
  • 3 sua lista de contatos (quem você segue)
  • 6 um repost
  • 7 uma reação (like, emoji)
  • 1059 uma mensagem privada (NIP-17)
  • 9735 um recibo de zap (NIP-57)
  • 10002 sua lista de relays (NIP-65)
  • 30023 um artigo longo (NIP-23)
  • 30311 uma transmissão ao vivo

A lista completa fica no repo dos NIPs. Qualquer um pode propor um novo.

03

relays

Relays são uma peça essencial do Nostr. Recebem eventos dos clientes, guardam e repassam para quem estiver inscrito. É tudo que fazem.

Relays não conversam entre si. Só os relays aos quais você está conectado vão receber e guardar seus eventos. Isso é importante, vale repetir: relays não se comunicam uns com os outros.

Você quer estar conectado a vários relays. Os clientes deixam você escolher quantos quiser, e pode decidir se vai ler, escrever ou ambos em cada um. Por exemplo, você pode se conectar a um relay só para ler, sem publicar ali.

Se eu estou conectado só ao relay A e você só ao B, não vamos ver as publicações um do outro mesmo estando os dois no Nostr. Para resolver, um dos dois tem que se conectar a um relay que o outro também usa.

Pode parecer confuso no começo, mas é uma propriedade muito útil. Você pode rodar um relay que nunca compartilha com ninguém e publicar todos os seus eventos ali como backup pessoal. Pode se conectar a um relay dedicado a futebol, e se não liga para futebol, simplesmente não adiciona.

o modelo outbox

Para que isso não seja um chute, existe o NIP-65. Você publica um eventinho dizendo "estes são os relays onde eu escrevo, estes são os que eu leio". Clientes modernos (Damus, Amethyst, Primal, Coracle e outros) leem essa lista e descobrem onde procurar sozinhos.

Se alguém não consegue ver suas publicações, quase sempre é porque vocês não compartilham um relay. Publique em uns populares e no seu próprio, e o problema some.

lutando contra a censura

Relays são baratos e fáceis de rodar. Um relay pode rodar em um VPS pequeno, ou até num celular simples. Como os relays não conversam entre si, derrubar um não afeta os outros. Se alguém tenta tirar um relay do ar, outro pode aparecer em outro lugar em minutos.

Existem centenas de relays espalhados pelo mundo, e o número continua crescendo.

→ guia: monte seu próprio relay

04

zaps

Uma das coisas mais legais do Nostr são os pagamentos nativos em Bitcoin. Um zap é uma gorjeta Lightning anexada a uma publicação ou perfil. Você toca num raiozinho, sats se movem e um recibo público aparece na publicação.

Zaps não são só gorjetas. São um sinal mais forte que um "curtir": um like não custa nada, um zap custa alguma coisa. Publicações populares geralmente mostram o total de zaps ao lado dos contadores de resposta e repost.

1
você toca ⚡

Seu cliente monta um pedido de zap e manda pra sua carteira.

2
a carteira paga

A carteira paga uma fatura Lightning do destinatário.

3
o recibo aparece

Um recibo de zap público é publicado. Todo mundo vê na publicação.

zaps em um toque

Para que dar zap pareça tão fácil quanto curtir, os clientes usam o Nostr Wallet Connect (NWC). Você cola um link nostr+walletconnect:// da sua carteira no cliente uma vez só, e daí em diante os zaps saem com um toque só. Sem QR, sem copiar fatura.

Carteiras com suporte a NWC: Alby Hub, Primal Wallet, Coinos, Zeus e Phoenix.

Para receber zaps você precisa de um endereço Lightning, tipo voce@getalby.com. A maioria das carteiras modernas te dá um automaticamente.

05

mensagens privadas

Você pode mandar mensagens privadas criptografadas de ponta a ponta para outros usuários. A forma moderna de fazer isso é o NIP-17, também chamadas de mensagens embrulhadas (gift-wrapped). Cada mensagem é criptografada e então embrulhada num evento externo, de modo que os relays nem conseguem saber quem está falando com quem, ou quando.

!

A especificação original de DMs (NIP-04, kind 4) vazava metadados. Se um cliente só suporta kind 4, as DMs dele não são realmente privadas. A maioria dos clientes já migrou; use um que suporte NIP-17.

Clientes com DMs modernas: Damus, Amethyst, Primal, 0xchat e Coracle.

Para chat em grupo existe o NIP-29, que coloca os grupos dentro de um relay (parecido com canais do Discord). Veja o Flotilla para isso.

06

o que você pode fazer com ele

Como comentado antes, Nostr é um protocolo muito flexível para compartilhar dados. As pessoas podem construir o que quiserem em cima. Ainda é novo, mas aqui vai um pouco do que já funciona:

🐦 alternativa ao twitter

Nostr nasceu como alternativa ao Twitter, e existem muitos clientes com essa cara. Todos usam notas de kind 1. Os mais populares:

Experimente uns quantos e veja qual te agrada.

📝 blogs e textos longos

Para escrever peças longas no lugar de notas curtas, dá para usar Yakihonne e Highlighter. As publicações são portáveis entre clientes, como tudo mais.

🔐 chat privado

Você pode mandar mensagens E2E e fazer chamadas de voz/vídeo com 0xchat, um app estilo Signal construído sobre Nostr. Nostrchat é uma opção web mais leve.

💬 grupos e comunidades

Flotilla te dá chat em grupo estilo Discord sobre Nostr. Os grupos vivem num relay, que pode ser seu ou de outra pessoa.

🎥 streaming e mídia

zap.stream para vídeo ao vivo (com zaps durante a transmissão), Flare para hospedar vídeos, e Fountain e Wavlake para podcasts e música.

🛒 mercados

Plebeian Market e Shopstr deixam você comprar e vender coisas por sats sem intermediários.

🧩 jogos

Até jogos multiplayer dá para construir sobre Nostr. O Jester, por exemplo, é xadrez online pelo Nostr.

🔍 exploradores e ferramentas

njump.me transforma qualquer link nostr: numa página web compartilhável. ants.sh é um cliente de busca para encontrar notas e perfis. nostr.watch mostra o estado da rede de relays.

Uma lista mais completa fica em nostrapps.com e nostr.net.

07

construa sobre o nostr

Ainda tem muito para construir sobre Nostr. Um cliente é qualquer coisa que abra um WebSocket e se inscreva. Um relay é qualquer coisa que aceite JSON assinado por WebSocket. A barreira é baixa.

Alguns recursos para começar:

"Noster" significa "nosso" em latim. "Nostra" significa "nossa" em italiano, e "Nuestro" em espanhol. Nome adequado para uma rede que não é de ninguém.