Casos de Uso, Arquitetura e Construção de dApps


Você escreve código familiar. A criptografia complexa fica nos bastidores.
Trouxe notebook? Dá pra acompanhar junto. Não trouxe? Funciona igual.
A escolha que blockchain te obriga a fazer hoje. Nenhuma das duas serve.
exemplos reais, não uma lista fechada: onde existe dado sensível, cabe um app Midnight.
Uma cidade de agentes de IA que transacionam, com identidade e privacidade própria, rodando na Midnight.
O futuro de muitas apps não é humano clicando, e sim agente negociando com agente. E agente também precisa de privacidade.

prova de que a regra foi cumprida, sem entregar os dados que a cumpriram.
Você não queima o ativo pra transacionar, e o gasto de DUST fica desacoplado do seu saldo.
e você testa a lógica em memória, sem Docker, sem wallet, sem proof server.


Sem witness, sem privacidade, ainda. É a base limpa, antes de adicionar o segredo.
cada linha é o modelo mental com palavras-chave.
ledger = o estado público: on-chain, todo mundo lê. Counter é um tipo da stdlib (tem .increment()), não um número solto.circuit, não function. É o "roda o seu código" do seu lado: a chain só verifica a prova, não executa. O [] = não devolve nada; existe pelo efeito no estado.round.increment(1) muda o estado público, é isso que a chain registra..compact em artefatos.O mesmo counter que você leu linha por linha, agora compilado.
Fase 1 (hoje): teste em memória, nenhuma prova é gerada, usa só o contract/; por isso compact-fast basta. Fase 2 (Bloco 7): deploy de verdade; aí as chaves ZK entram. Esses artefatos não vão no repo (.gitignore), cada um gera os seus.
qualquer um posta, e só quem postou pode tirar.
Pra tirar, você refaz o carimbo com a mesma chave. Bate? então é você, sem o quadro nunca saber quem é.
A nota é pública. O autor, não: vira um hash. E de onde vem esse hash?
witness)commitment vem da chave, então também é privadoledger torna público, por isso o disclosediscloseO compilador só rastreia de onde o dado veio, não a criptografia: ele cuida do caminho, e você responde pelo que é seguro revelar.
A chave nunca sai da sua máquina: pra chain cruza só o sim/não. É o padrão commitment, publica o hash uma vez e prova depois recomputando.
as cinco palavras-chave, todas vistas lendo um contrato de verdade, não num slide de definição. E o padrão que costura as cinco: o commitment.
.as("user1") e .as("user2") trocam a chave privada de cada umcommitment; outro autor, commitment diferentenpm test, e a privacidade do slide anterior vira um teste que passa.
já vem ligado no repo do workshop: .claude/settings.json com "midnight@edda-labs-marketplace": true
ledger (Rust), midnight-js, wallet, zk.compact + walkthrough .md (inclui o bulletin board de hoje)zkloan, kitties, rwa (contrato, CLI e UI)pnpm + Turbo, teste e deploycada skill é um slash-command no Claude Code. pergunta em português, a skill responde.
no seu projeto: /plugin marketplace add eddalabs/edda-marketplace · /plugin install midnight
o app adiciona CLI, frontend e deploy.
o app orquestra os 4 pra deployar e usar o contrato; as provas ZK rodam local, no proof server.
o mesmo counter que você leu, agora com tela, wallet e transação on-chain.


a trilha oficial da Midnight, 8 módulos.
da ideia (2 meses) ao acelerador (10 semanas).


marquem a gente no que construírem
@tainabugs · @ErickRomeroEdda · #MidnightNetwork
Foto da turma!