Síntese da arquitetura unificada do BitChicken: um ecossistema de NFT na BNB Smart Chain (catálogo de espécies + gacha/VRF + granja de staking + marketplace P2P), com a token BCKN como moeda utilitária, um indexador on-chain que materializa eventos em read-models e um backend de contas que serve esses read-models ao dApp.
Pivô histórico: o projeto não é mais um modelo de ICO/venda de token. Qualquer menção a “ICO” é histórica.
| Documento | Conteúdo |
|---|---|
| visao-geral.md | Diagrama graph TB por camada + componentes + princípios + dependências críticas |
| catalogo-componentes.md | Tabela única de todos os componentes (tipo, stack, expõe, depende de, criticidade) |
| mapa-comunicacao.md | Matriz de integrações + protocolos + sequenceDiagram do fluxo de compra |
| fluxos-de-dados.md | flowchart de compra+indicação, deploy/upgrade, indexação e cotação |
| matriz-nomenclatura.md | Matriz de nomenclatura ponto-a-ponto (evento do contrato → indexer → API → dApp), auditoria de drift de termos entre as 4 camadas |
| Domínio | Documento |
|---|---|
| Token BCKN | dominios/token-bckn.md |
| Catálogo e NFT | dominios/catalogo-e-nft.md |
| Forge / Gacha (VRF) | dominios/forge-gacha.md |
| Staking / Granja | dominios/staking-granja.md |
| Marketplace | dominios/marketplace.md |
| Indicação (Referral) | dominios/indicacao.md |
| Contas e Autenticação | dominios/contas-e-auth.md |
| Read-model on-chain | dominios/read-model-on-chain.md |
Os ADRs do ecossistema estão em ../adr/README.md.
Monorepo de 4 projetos (contratos on-chain + indexador + backend + SPA Web3), sem código compartilhado entre eles. A topologia atual de read-model é o Model B: os contratos emitem eventos → o indexador Ponder materializa → o backend serve via Gridify + SignalR → o dApp consome. O dApp também escreve direto nos contratos (via carteira) e fala com a API (Firebase JWT).
Contratos (BSC) -> Indexer (Ponder) -> schema "indexer" (Postgres) -> App Backend (.NET) -> dApp (Angular)
^ |
+--------------------------- escrita direta via carteira (ethers) --------------------------------+
| Camada | Tecnologia | Notas |
|---|---|---|
| Frontend | Angular 22 (zoneless, signals) + PrimeNG 21 + Tailwind v4 | SPA estática (build publicável em qualquer hospedagem); 100% cobertura via Vitest |
| Carteira e Web3 | Reown AppKit / WalletConnect + ethers v6 | Leitura via JsonRpcProvider; escrita via signer |
| Backend | .NET 10 + ASP.NET Minimal API + Wolverine CQRS + EF Core | Clean Architecture; Gridify (paginação/filtro) + SignalR (realtime) |
| Indexador | Ponder 0.16.6 + viem (TypeScript/Node 24) | Event-driven; materializa schema indexer no Postgres |
| Banco | PostgreSQL 17 | Schema public (domínio) + schema indexer (read-models Ponder) |
| Identidade | Firebase Auth (email/senha) + SIWE | JWT validado na API via OIDC; carteira vinculada por assinatura ECDSA |
| Contratos | Solidity 0.8.35 + Hardhat 3 + OpenZeppelin Upgradeable 5 | Proxy transparente (Token/NFT/Staking/Marketplace); Forge imutável |
| Rede | BNB Smart Chain (56 mainnet / 97 testnet) + Anvil 1337 (local) | — |
| Serviços externos | Chainlink VRF v2.5, CoinGecko, Pinata (IPFS), BSCScan, GA4 | Gacha, cotação fiat, arte das edições, verificação, telemetria |
| Orquestração (dev) | .NET Aspire (RW.BC.AppHost) |
Sobe Postgres + API + chain + deploy + indexer + dApp |