CVM 88 – Análise de Gaps

Análise dos gaps entre os requisitos da Resolução CVM nº 88 e a implementação atual da plataforma BWB Tokenization.

Data: 06/02/2026

Visão Geral

Este documento mapeia cada requisito da CVM 88 em relação à implementação atual do código, categorizando as lacunas (gaps) em três camadas:

Implementado
⚠️ Parcial
Gap (Ausente)

1. Requisitos da Oferta (Art. 3º)

Requisito Smart Contract Lógica de Negócios UX Notas
Valor alvo máximo ≤ R$ 15M ✅ N/A (off-chain) ❌ Gap
Sem validação em `createOffering`/`updateOffering`. Campos `minTargetAmount`/`maxTargetAmount` ausentes no esquema
❌ Gap
Sem campos de UI para valores alvo
Necessário campos no esquema + validação + UI
Prazo de captação ≤ 180 dias ✅ N/A (off-chain) ❌ Gap
Sem `campaignStartDate`/`campaignEndDate` no esquema. Sem validação de 180 dias
❌ Gap
Sem seletor de data para datas da campanha
Necessário campos no esquema + validação + UI
Período de desistência ≥ 5 dias ✅ N/A (off-chain) ❌ Gap
Sem lógica de retirada/cancelamento de investimento. Sem rastreamento de `canWithdrawUntil`
❌ Gap
Sem mecanismo de retirada no fluxo de investimento
Investimento completo + fluxo de retirada ausente
Emissor = sociedade de pequeno porte ✅ N/A (off-chain) ❌ Gap
Sem validação de receita (≤ R$ 40M). Sem campo `annualRevenue` na organização
❌ Gap
Sem campo de receita do emissor nas configurações da organização
Necessário campo no esquema da organização + validação
Escrituração ou controle de titularidade ❌ Gap
Contratos de token existem, mas sem módulo formal de controle de titularidade
❌ Gap
Sem contas de titularidade individualizadas. Sem sincronização periódica (regras de 7 dias / 24h)
❌ Gap
Sem painel de titularidade para o emissor
Gap maior - ver Seção 10
Somatório anual ≤ R$ 15M por emissor ✅ N/A (off-chain) ❌ Gap
Sem consulta de limite anual cruzado por emissor
❌ Gap
Sem aviso/bloqueio quando o emissor se aproxima do limite
Necessário consulta agregada + validação
Intervalo 120 dias entre ofertas ✅ N/A (off-chain) ❌ Gap
Sem validação de período de espera (cooling-off) entre ofertas
❌ Gap
Sem feedback na UI sobre o período de espera
Necessário verificação de data na criação da oferta
Restrição de uso de recursos ✅ N/A (contratual) ✅ N/A (cláusula contratual) ❌ Gap
Sem divulgação das restrições de uso de recursos
Contratual, não técnico

2. Limites de Investimento do Investidor (Art. 4º)

Requisito Smart Contract Lógica de Negócios UX Notas
Limite R$ 20k/ano (investidor comum) ❌ Gap
Sem aplicação de limite de investimento on-chain
❌ Gap
Sem tabela `investments`. Sem consulta de soma anual por investidor. Flag `appliesRetailLimits` existe mas não é aplicada
❌ Gap
Sem exibição ou bloqueio de limite no fluxo de investimento
Gap crítico - necessário rastreamento de investimentos
Investidor líder sem limite ✅ N/A ❌ Gap
Sem flag `isLeadInvestor` ou lógica de exceção
❌ Gap
Sem UI para designação de investidor líder
Necessário flag + exceção
Investidor qualificado sem limite ✅ N/A ⚠️ Parcial
Campo `investorQualification: 'qualified'` existe no KYC L1, não aplicado no investimento
⚠️ Parcial
Passo de investidor qualificado existe no onboarding (checkbox). Sem aplicação no momento do investimento
Necessário lógica de aplicação
Renda/investimentos > R$ 200k → 10% ✅ N/A ❌ Gap
Sem campos `annualGrossIncome`/`financialInvestments`. Sem cálculo de 10%
❌ Gap
Sem formulário de declaração do Anexo B
Necessário campos no esquema + cálculo + formulário
Declaração Anexo A (qualificado) ✅ N/A ⚠️ Parcial
Checkbox de investidor qualificado existe mas sem declaração formal do Anexo A armazenada
⚠️ Parcial
Checkbox existe, não corresponde ao formato do Anexo A
Necessário declaração formal com assinatura
Declaração Anexo B (renda > R$ 200k) ✅ N/A ❌ Gap
Não implementado
❌ Gap
Não implementado
Necessário formulário + armazenamento
Declaração Anexo C (cross-platform) ✅ N/A ❌ Gap
Não implementado
❌ Gap
Não implementado
Necessário formulário de autodeclaração

3. Procedimentos da Oferta (Art. 5º)

Requisito Smart Contract Lógica de Negócios UX Notas
Termo de adesão e ciência de risco ✅ N/A ❌ Gap
Sem tabela `riskDisclosureSignatures`. Sem bloqueio pré-investimento
❌ Gap
Sem formulário de ciência de risco/fluxo de assinatura
Crítico - deve bloquear investimento sem assinatura
Página com valor total confirmado ✅ N/A ⚠️ Parcial
`assetMetrics` possui `investorCount`/`totalRaised` do subgrafo
⚠️ Parcial
Componente `OfferingMetrics` existe mas sem valores confirmados atualizados diariamente
Necessário exibição e tempo real de confirmado vs alvo
Distribuição parcial (min ≥ 2/3 máx) ✅ N/A ❌ Gap
Sem regra de validação mín/máx
❌ Gap
Sem UI de distribuição parcial
Necessário validação + campos de UI
Divulgação de encerramento (Anexo D) ✅ N/A ❌ Gap
Sem publicação automática no encerramento da oferta
❌ Gap
Sem página de modelo do Anexo D
Necessário página pública + modelo
Transferência em até 7 dias ❌ Gap
Sem liberação automática de garantia (escrow)
❌ Gap
Sem rastreamento de SLA para transferência de fundos
❌ Gap
Sem status de transferência para investidores
Necessário fluxo de trabalho de custódia
Lote adicional até 25% ✅ N/A ❌ Gap
Sem flag `additionalLotEnabled`
❌ Gap
Sem UI de lote adicional
Baixa prioridade - opcional
Oferta secundária até 20% ❌ Gap
Sem suporte on-chain para oferta secundária
❌ Gap
Sem lógica de oferta secundária
❌ Gap
Sem UI de oferta secundária
Baixa prioridade - opcional
Segregação de fundos ⚠️ Parcial
Carteiras inteligentes (Notus) separadas da plataforma, mas sem contrato formal de custódia
❌ Gap
Sem lógica de conta de custódia (escrow). Fundos transitam via provedor de rampa (Avenia/BRLA)
❌ Gap
Sem visibilidade da custódia
Crítico - necessário segregação adequada de fundos

4. Informações e Divulgação (Art. 8º–11)

Requisito Smart Contract Lógica de Negócios UX Notas
Informações Essenciais (Anexo E) ✅ N/A ⚠️ Parcial
Alguns dados existem (info do emissor, estrutura de capital) mas não estruturados conforme as 11 seções do Anexo E
❌ Gap
Sem seção dedicada "Informações Essenciais" com as 11 seções
Grande gap de UX - necessário página estruturada
Pacote de documentos relevantes ✅ N/A ⚠️ Parcial
Tabela `offeringDocuments` existe com tipos (captacao_instrument, prospectus, etc.)
⚠️ Parcial
Aba de documentos existe. Faltando alguns tipos obrigatórios
Parcial - necessário cobertura completa de tipos de documentos
Retenção 5 anos ✅ N/A ❌ Gap
Sem política de retenção de dados aplicada
✅ N/A (infra) Necessário exclusão lógica (soft-delete) + política de retenção
Promoção e publicidade (Art. 11) ✅ N/A ❌ Gap
Sem validação de conteúdo publicitário
❌ Gap
Sem aviso legal "Não invista antes de entender..."
Necessário aviso obrigatório
Aviso regulatório padrão (Art. 34) ✅ N/A ✅ N/A ❌ Gap
Sem banner de aviso da CVM na página principal
Correção rápida de UX
Material didático (Art. 33) ✅ N/A ✅ N/A ❌ Gap
Sem páginas de conteúdo educacional (16 tópicos exigidos)
Necessário páginas estáticas/CMS
Lista ofertas encerradas (Anexo D) ✅ N/A ❌ Gap
Sem consulta consolidada pública
❌ Gap
Sem página pública para ofertas encerradas
Necessário página pública

5. Sistemas da Plataforma (Art. 19)

Requisito Smart Contract Lógica de Negócios UX Notas
Identificação e qualificação (KYC) ✅ N/A ⚠️ Parcial
KYC L1/L2 implementado. `investorQualification` capturado. Faltando declarações dos Anexos A/B/C
⚠️ Parcial
Onboarding existe mas incompleto para CVM 88
Estender onboarding com declarações
Registro de participação (Art. 26 III) ✅ N/A ❌ Gap
Sem tabela `investments` com campos obrigatórios (nome, CPF, endereço, email, qtd, valor, datas)
❌ Gap
Sem UI de registros de investimento
Necessário tabela completa de investimentos
Fórum eletrônico por oferta ✅ N/A ❌ Gap
Não implementado
❌ Gap
Não implementado
Nova funcionalidade - fórum por oferta
Divulgação de informações periódicas ✅ N/A ❌ Gap
Sem atualizações de informações pós-oferta do emissor
❌ Gap
Sem página de informações restrita a investidores
Necessário relatórios do emissor + acesso do investidor
Atendimento e reclamações ✅ N/A ❌ Gap
Sem sistema de reclamações
❌ Gap
Sem SAC/formulário de reclamação
Necessário canal de suporte
Segregação patrimonial ⚠️ Parcial
Carteiras inteligentes são separadas
❌ Gap
Sem prova formal de segregação
❌ Gap
Sem divulgação de segregação
Revisão de arquitetura necessária
PLD/FT ✅ N/A ⚠️ Parcial
KYC com verificação de PEP + limites de depósito/saque existem. Sem monitoramento de transações AML
⚠️ Parcial
Verificação de PEP no onboarding
Estender com monitoramento de transações

6. Controle de Titularidade (Art. 12–14)

Requisito Smart Contract Lógica de Negócios UX Notas
Conta individualizada por titular ⚠️ Parcial
Saldos ERC-20 são por endereço mas sem conceito formal de conta de titularidade
❌ Gap
Sem tabela de contas de titularidade
❌ Gap
Sem UI de gestão de titularidade
Crítico para CVM 88
Envio de posições à emissora (≤ 7 dias) ✅ N/A ❌ Gap
Sem rotina de exportação periódica de posições
❌ Gap
Sem relatório de posição para o emissor
Necessário tarefa agendada + painel do emissor
Comunicação de transferência (≤ 24h) ⚠️ Parcial
Eventos on-chain existem mas sem sistema de notificação
❌ Gap
Sem notificação de transferência para o emissor
❌ Gap
Sem alertas de transferência
Necessário notificação baseada em eventos
Contrato específico com emissora ✅ N/A ❌ Gap
Não rastreado
❌ Gap
Não rastreado
Requisito legal/contratual

7. Mercado Secundário / Transações Subsequentes (Art. 15–16)

Requisito Smart Contract Lógica de Negócios UX Notas
Mural eletrônico (não order book) ❌ Gap
Sem OTC/mural on-chain
❌ Gap
Não implementado
❌ Gap
Não implementado
Fase futura
Verificação investidor ativo ✅ N/A ❌ Gap
Sem conceito de "investidor ativo" (registrado + investido em 2 anos)
❌ Gap
Não implementado
Necessário rastreamento
Limites do comprador ❌ Gap
Sem verificação de limite on-chain
❌ Gap
Não implementado
❌ Gap
Não implementado
Igual aos limites primários
DvP (delivery vs. payment) ⚠️ Parcial
OfferTokenSale tem compra atômica, mas sem DvP P2P
❌ Gap
Não implementado
❌ Gap
Não implementado
Necessário swap atômico P2P
Histórico mensal volume/preço ❌ Gap
Sem agregação on-chain
❌ Gap
Não implementado
❌ Gap
Não implementado
Necessário análise (analytics)
Limite 5% controlador/líder ✅ N/A ❌ Gap
Não implementado
❌ Gap
Não implementado
Necessário rastreamento

8. Contratos Inteligentes – Gaps Específicos

Atualmente Implementado

  • OfferERC20 (Token ERC-20 com restrições de transferência)
  • OfferTokenSale (venda primária com allowlist)
  • OfferSaleAllowlist (gestão de whitelist)
  • OfferTokenFactory / OfferTokenSaleFactory (implantação/deployment)
  • TokenDistributor / TokenDistributorFactory (distribuição em lote)
  • Lógica de token SAFE (intransferível por padrão, desbloqueio após maturação)

Faltando para CVM 88

  1. Contrato de Custódia (Escrow) – Segregação formal de fundos com liberação temporal após sucesso da oferta
  2. Aplicação de limite de investimento on-chain – Opcional, mas adiciona camada de conformidade (tetos de R$ 20k/10%)
  3. Mecanismo de desistência (Cooling-off) – Janela de retirada de 5 dias com cancelamento on-chain
  4. Transferência P2P com DvP – Swap atômico para mercado secundário (se implementado)
  5. Notificações de eventos de transferência – Embora eventos existam, não há sistema formal de notificação em 24h
  6. Registro de titularidade – Registro on-chain ou híbrido para contas de detenção individualizadas

9. Gaps de Relatórios e Conformidade

Requisito Status Gap
Relatório Anexo G (início/encerramento) Sem sistema de relatórios da CVM. Necessário relatórios gerados automaticamente
Relatório Anexo H (anual) Sem geração de relatório anual
Comunicação de irregularidades Sem fluxo de trabalho de detecção/relato de irregularidades
Lista de emissoras inadimplentes Sem rastreamento de conformidade do emissor
Retenção 5 anos Sem política de retenção de dados
Profissional de controles internos ✅ N/A Requisito organizacional, não técnico
Código de conduta ✅ N/A Requisito documental, não técnico

10. Resumo de Prioridades dos Gaps

Crítico (Bloqueia o lançamento CVM 88)
  1. Fluxo de investimento – `handleInvest()` é TODO. Necessário ciclo de vida completo do investimento
  2. Aplicação de limites de investimento – Rastreamento + bloqueio anual de R$ 20k/10%
  3. Termo de ciência de risco – Assinatura obrigatória pré-investimento (Art. 26 IV)
  4. Declarações do investidor – Captura e armazenamento dos Anexos A, B, C
  5. Segregação de fundos/custódia – Mecanismo adequado de custódia (escrow)
  6. Página de Informações Essenciais – Exibição estruturada das 11 seções do Anexo E
  7. Controle de titularidade – Contas individualizadas + sincronização de posição
Alta Prioridade (Necessário para conformidade)
  1. Regras de validação da oferta – Alvos mín/máx, limite de 180 dias, proporção de 2/3, intervalo de 120 dias, teto anual de R$ 15M
  2. Avisos regulatórios CVM – Banner do Art. 34 + regras de promoção do Art. 11
  3. Material didático – Conteúdo educacional de 16 tópicos
  4. Informações pós-oferta – Divulgações periódicas do emissor
  5. Mecanismo de retirada de 5 dias – Janela de cancelamento de investimento
  6. Relatórios CVM – Geração dos Anexos G e H
Média Prioridade (Necessário mas adiável)
  1. Fórum eletrônico – Fórum de discussão por oferta
  2. Rastreamento de conformidade do emissor – Lista de inadimplência
  3. Sistema de reclamações – Canal de SAC
  4. Mercado secundário – Mural + DvP (Fase 2)
  5. Notificações de transferência – Notificação de 24h para o emissor sobre transferências
Baixa Prioridade (Funcionalidades opcionais)
  1. Lote adicional – Lote adicional (25%)
  2. Oferta secundária – Oferta secundária dentro da primária (20%)
  3. Sindicato/Investidor líder – Investidor líder + gestão de sindicato