BLVCK MINDZ
Entrar na lista

Pilha técnica · Solana conferida na rede em 13/10/2026

O que roda. O que vem depois.

Do estúdio ao bolso do artista, com o status de cada peça. Em 13/10 as transações abaixo foram lidas de novo na devnet e os testes de Solana e dos serviços foram rodados outra vez; site e banco seguem na conferência de 10–11/10.

  • 10 No ar
  • 6 Testado
  • 3 Escrito, não publicado
  • 1 Planejado

Prova do hackathon

Três pagamentos históricos na devnet com tokens de teste: os lotes 601, 701 e 801, de 2 tokens cada, divididos 50/35/15 entre três carteiras. Eles demonstram a execução dos splits, não royalties comerciais. O lote 801 percorreu a liquidação integrada, com direitos e relatório de amostra, e tem também o recibo Memo. As transações e as contas Batch dos lotes são públicas.

Cada transação saiu de uma execução do fluxo “Pagamento devnet” do GitHub. O código-fonte é privado, mas a conferência não depende dele: qualquer pessoa lê as transações no explorador. Na devnet, valores e carteiras são públicos. A privacidade pelo Cloak é uma integração separada, ainda sem prova de execução em mainnet.

  1. 01Estúdio
  2. 02Validação
  3. 03Catálogo
  4. 04Lojas
  5. 05Registro
  6. 06Solana
  7. 07Recibo
  8. 08Artista

Site e servidor

Site

No ar

Home, catálogo, perfil do artista, pitch e manual, em pt, es e en

Astro 7 num Worker da Cloudflare

Site publicado; versão local ampliada validada em build e tipos

Dados de pagamento

No ar

Documento, conta e Pix do artista ficam cifrados; o servidor não consegue abrir

RSA-OAEP + AES-GCM no Worker; chave privada só no Mac do fundador

Perfil de pagamento no banco guarda só o envelope cifrado

Estúdio do artista

Escrito, não publicado

Login por código no e-mail e envio do master WAV em partes de 20 MB

Worker + R2 (armazenamento) + Resend (e-mail)

Código pronto; espera a chave do Resend e o R2 ativo

Triagem de candidaturas

Escrito, não publicado

IA lê só tipo e mensagem e sugere prioridade; a decisão é humana

TypeSafe (Jev), cron no Worker

Desligada até a chave da TypeSafe ser cadastrada

Banco de dados

Postgres

No ar

Dois esquemas: site (captação, envios, pagamentos) e catalog (direitos)

Neon, Postgres 18, São Paulo; conexão pelo Hyperdrive

7 migrations aplicadas, SHA-256 igual ao repositório

Segurança do banco

No ar

O site só enxerga o esquema site; o catálogo é só do dono

RLS ligada; papel site_writer

Conferido nas migrations e no papel de acesso

Splits

No ar

Quem ganha quanto em cada música, em pontos-base (1 a 10.000)

catalog.recording_splits e work_splits, com trava de faixa

Mesmo padrão do programa Solana

Serviços do selo

Validação de áudio

Testado

Confere se o WAV enviado serve para lançar

TypeScript + FFmpeg

46 testes passando

Catálogo

Testado

ISRC próprio, splits, contratos e lote para a SGP

TypeScript, app local do fundador

58 testes passando

Motor fiscal

Testado

Calcula imposto por país e tipo de royalty

TypeScript

18 testes passando

Solana

Divisão do pagamento

Testado

Valor de cada música → parte de cada titular em micro-USDC; a soma fecha sempre

TypeScript, inteiros (bigint), pontos-base

4 testes da regra de divisão passando, com os mesmos vetores do programa Rust (42 testes TS na pasta solana)

Programa de splits

No ar

Cria a divisão, troca carteira e distribui USDC aos titulares

Anchor (Rust): create_split, update_wallet, distribute

Publicado na devnet (programa executável, conferido em 13/10); 6 testes de ponta a ponta passaram no GitHub em 13/10Ver no explorador →

Recibo no lote

No ar

Cada lote pago cria na rede uma conta Batch com o hash do ledger. Na devnet, valores e carteiras são públicos

Conta Batch do programa Anchor

Lotes 601 e 701 lidos na devnet em 13/10: número, valor e hash iguais aos da evidência

Recibo Memo

No ar

Grava só o hash do lote no programa Memo, depois de conferir que ele é o da conta Batch

Programa Memo (formato BMZ1)

Lote 801 gravado na devnet em 13/10 e lido de volta: mesmo hash do manifest aprovado e da conta Batch

Liquidação integrada

No ar

Direitos e relatório → portão de risco → aprovação → manifest → assinatura → pagamento → recibo, num único lote

TypeScript + programa Anchor, executada pelo GitHub Actions

Lote 801 na devnet em 13/10, com dados de amostra: o mesmo hash no manifest, na aprovação, na conta Batch e no Memo; auditoria por script (25 verificações; recusa evidência adulterada); contestação antes do envio e espera pela confirmação testadas (5 testes)

Conferência antes de pagar

Testado

Regras fixas e a IA conferem o lote, uma pergunta por risco e uma por linha; dúvida vai para uma pessoa, sem conferência o pagamento fica retido

Portão do Jev (TypeSafe)

7 testes do portão; resposta inválida bloqueia; 3 lotes adulterados na calibração

Verificação automática

No ar

A cada envio de código, o GitHub roda tudo de novo do zero

GitHub Actions: site, banco, 3 serviços, Solana em TS, Rust e programa Anchor

6 de 6 etapas passaram na execução de 13/10

Leitura da rede

Testado

Consulta a Solana sem expor a chave do provedor

JSON-RPC (Helius); exige https e devnet por padrão

Testado com nó simulado

Saldo privado

Escrito, não publicado

O valor recebido não fica exposto; só quem tem a chave de visualização vê

Cloak (pool blindado)

Integração escrita; mainnet ainda sem prova de pagamento privado

Cartão e Pix

Planejado

Gastar no cartão do selo ou sacar em reais

Emissor white label + troca USDC ↔ Pix por instituição autorizada

Sem emissor contratado

O que falta para a mainnet

  1. O perfil de pagamento ainda não tem carteira USDC: hoje aceita Pix, transferência ou depois.
  2. O banco do site ainda não guarda lotes pagos nem recibos. A mudança exige uma migration nova, testada numa branch do Neon antes da produção.
  3. Quem assina transações fica fora do site, numa máquina isolada; a definição final vem antes da mainnet.

Como conferir

  • npm testsite e banco
  • cd services/catalog && npx vitest runcatálogo
  • cd solana && npm testSolana: divisão, recibo e portão
  • cd solana && anchor testprograma no validador local

Repositório privado; jurados precisam de acesso.