Protocolo descentralizado para registro, autenticação, rastreabilidade e governança de documentos digitais usando blockchain.
O DocVerifyDAO é um MVP Web3 que combina token fungível, NFT, staking, governança e oráculo para demonstrar um fluxo completo de autenticação e acompanhamento de documentos digitais em blockchain. O projeto utiliza a rede Sepolia para demonstração das funcionalidades on-chain e integração Web3 com carteira.
O protocolo busca resolver o problema de registro, autenticação, rastreabilidade e governança de documentos digitais. Em fluxos tradicionais, documentos podem sofrer alterações sem trilha confiável de auditoria, depender de bases centralizadas e ter processos pouco transparentes para validação e decisão. No DocVerifyDAO, o registro do documento pode ser representado como NFT, a interação econômica e de governança utiliza token fungível, e a consulta de dados externos é demonstrada por meio de um oráculo.
- Registro de documentos com NFT ERC-721
- Token DOC em padrão ERC-20 para staking, recompensas e governança
- Contrato de staking com bloqueio de tokens e cálculo de recompensa
- DAO simplificada para criação e votação de propostas
- Integração com oráculo Chainlink para leitura do preço ETH/USD
- Frontend React com ethers.js e MetaMask para demonstração das operações
Usuário / MetaMask
↓
Frontend React + ethers.js
↓
Contratos na Sepolia
├── DocToken — ERC-20
├── DocumentNFT — ERC-721
├── Staking — bloqueio de DOC e recompensas
├── SimpleDAO — criação e votação de propostas
└── PriceOracle — leitura ETH/USD via Chainlink
↓
Chainlink ETH/USD Price Feed
O padrão ERC-20 foi usado para o token DOC porque ele representa um ativo fungível. Isso permite utilizar a mesma unidade de valor para staking, distribuição de recompensas e poder de participação na governança.
O padrão ERC-721 foi usado para os documentos digitais porque cada documento precisa ser único, rastreável e associado a uma URI com seu metadado próprio. Esse modelo se encaixa melhor em ativos não fungíveis do que em um token fungível.
- Solidity ^0.8.x
- Hardhat
- OpenZeppelin
- ethers.js
- React + Vite
- MetaMask
- Chainlink
- Sepolia Testnet
- Slither
- Mythril
| Contrato | Função no protocolo | Endereço | Sepolia Etherscan |
|---|---|---|---|
| DocToken | Token ERC-20 para staking, recompensas e governança | 0x1dcb477f671b3c3bF3d89255C828933e3Fc991a2 |
https://sepolia.etherscan.io/address/0x1dcb477f671b3c3bF3d89255C828933e3Fc991a2 |
| DocumentNFT | NFT ERC-721 para representar documentos digitais únicos | 0x1fEf44F206c15242D832EafD77d469CdE4B9e47B |
https://sepolia.etherscan.io/address/0x1fEf44F206c15242D832EafD77d469CdE4B9e47B |
| Staking | Bloqueio de DOC e distribuição de recompensas | 0x031e35EE1EdAfEfb448292A57190962695D23D5d |
https://sepolia.etherscan.io/address/0x031e35EE1EdAfEfb448292A57190962695D23D5d |
| SimpleDAO | Criação e votação de propostas de governança | 0x7E842847A27084F9C6A77309A6F757EAE982B639 |
https://sepolia.etherscan.io/address/0x7E842847A27084F9C6A77309A6F757EAE982B639 |
| PriceOracle | Consulta do preço ETH/USD via Chainlink | 0xa1a8E48d5417FcbD288dEC5cC99d2f632BF46F90 |
https://sepolia.etherscan.io/address/0xa1a8E48d5417FcbD288dEC5cC99d2f632BF46F90 |
- Instale as dependências da raiz do projeto:
npm install- Instale as dependências do frontend:
cd frontend
npm installOs testes automatizados dos contratos são executados com Hardhat:
npx hardhat testTambém é possível usar o script da raiz:
npm testO deploy do MVP foi realizado na rede Sepolia. O script principal de deploy é:
npx hardhat run scripts/deploy.js --network sepoliaAs variáveis necessárias devem ser definidas em um arquivo .env, tomando como base o .env.example:
SEPOLIA_RPC_URLPRIVATE_KEY
O frontend React/Vite utiliza ethers.js e MetaMask para demonstrar:
- conexão da carteira
- mint de NFT de documento
- approve e stake de tokens DOC
- votação na DAO
- leitura do preço ETH/USD via Chainlink
O projeto possui evidências de validação e auditoria nos arquivos:
audit/hardhat-report.txtaudit/slither-report.txtaudit/mythril-report.txtaudit/Relatorio_Auditoria_Doc.pdf
Principais medidas e mecanismos presentes no MVP:
- Solidity ^0.8.x com proteções nativas contra overflow em operações aritméticas
Ownablepara controle de acesso administrativoReentrancyGuardno contrato de staking- testes automatizados com Hardhat
O contrato PriceOracle consome o feed ETH/USD da Chainlink na Sepolia e o frontend permite consultar esse valor. Nesta versão MVP, o oráculo é demonstrado como integração de leitura externa, sem alterar dinamicamente a fórmula de recompensa do staking.
A entrega final do projeto é composta por:
- relatório técnico em PDF
- link do GitHub do projeto: https://github.com/limasantoss/docverifydao
- vídeo demonstrativo de 5 a 10 minutos
- relatório de auditoria
Este projeto possui finalidade educacional e não é destinado ao uso em ambiente de produção.