O Edu Protocol é uma infraestrutura descentralizada (Web3) criada para revolucionar o engajamento educacional. Utilizando incentivos criptoeconômicos, o protocolo recompensa alunos por sua permanência e mérito em cursos, transformando o histórico acadêmico em identidades verificáveis (NFTs) e concedendo poder de governança (Tokens ERC-20).
Projeto desenvolvido como trabalho prático para a Residência em TIC - Trilha Web3 / Blockchain.
👤 Aluno: Francisco Thiago Linhares Morais
🎥 Vídeo Demonstrativo: Acessar no Google Drive
O ambiente educacional digital contemporâneo, notadamente os cursos online de longa duração (EAD), enfrenta um desafio sistêmico: a alta taxa de evasão e a dificuldade em manter o engajamento contínuo dos discentes.
O Edu Protocol surge como uma solução que introduz incentivos criptoeconômicos no processo de aprendizagem. Ao modelar a permanência e o mérito acadêmico como ativos digitais verificáveis, o protocolo alinha os interesses educacionais com recompensas financeiras e poder de governança, mitigando a evasão através da tokenização da atenção.
O ecossistema possui uma arquitetura modular orientada a contratos inteligentes, fundamentada em Padrões Ethereum (ERC) rigorosos, com clara separação de responsabilidades:
StudentBadge.sol(Padrão ERC-721): O "Crachá" do estudante. Diferente da fungibilidade, um histórico acadêmico não é intercambiável. Implementado como um NFT Soulbound-like restrito a um mint por carteira, ele atua como identidade base e chave de acesso, prevenindo ataques de Sybil.EduStaking.sol(Cofre / Vault): O aluno transfere a custódia temporária de seu NFT para este contrato. Durante o TimeLock (carência), o contrato mensura o tempo decorrido e calcula organicamente o rendimento passivo. Ele é o único agente com permissão de emitir recompensas.EduToken.sol(Padrão ERC-20): Token utilitário e de governança ($EDU). Com divisibilidade granular (18 casas decimais), permite que o staking pague recompensas proporcionais até ao nível dos segundos. Possui emissão infinita (∞ Minting), porém bloqueada por rígido Controle de Acesso (Access Control) restrito ao Vault.EduDAO.sol(Governança): O protocolo verifica os saldos instantâneos para conceder poder de participação. Exige um Proposal Threshold (100 EDU) para criação de propostas (proteção anti-spam) e um Minimum Vote Power (10 EDU) para votação ativa.
Para neutralizar o impacto da volatilidade do mercado de criptomoedas sobre a percepção de valor da recompensa do estudante, o protocolo implementa uma integração com os Data Feeds Descentralizados da Chainlink.
O contrato EduStaking consome ativamente o par ETH/USD. A lógica parametrizada estabelece um limiar (threshold) fixo de USD $2.000. Se o preço do Ethereum sofrer desvalorização e cruzar esse limite inferior, o protocolo aciona um mecanismo de subsídio automático (BONUS_MULTIPLIER), dobrando a taxa de emissão de $EDU para proteger o engajamento do aluno.
Todos os contratos estão verificados e operacionais na rede de testes Ethereum Sepolia:
- StudentBadge (NFT):
0x22DDBfddb9A3df2865a4B97091231cA96D7d4880 - EduToken (ERC-20):
0x85F5E7BefA3B6b7213CfF427A5b06b86EBDcFD0B - EduStaking:
0x7ef23793cC13AD6F83e9DF1bfE2C14D0Aa8A1DC2 - EduDAO:
0xb02E4B381bd565BDd53607e0583fd012Ef67e939
- Blockchain / Backend: Solidity (EVM target: Cancun), Foundry, Hardhat, OpenZeppelin Contracts v5.
- Oráculos: Chainlink Data Feeds (ETH/USD).
- Frontend: HTML5, CSS3, Vanilla JavaScript.
- Integração Web3: Ethers.js v6, MetaMask.
- Segurança / Qualidade: Slither Analyzer, Mythril, Padrão CEI (Checks-Effects-Interactions).
A camada de interação cliente-blockchain foi desenvolvida com a biblioteca ethers.js (v6). A arquitetura de injeção de dependência interage com o window.ethereum, delegando ao usuário a assinatura criptográfica de cada ação. Destaques da implementação:
- Gestão Assíncrona (Transações Atômicas): A rotina de stake foi orquestrada com a invocação do
approve()no ERC-721, seguida imediatamente pelostake()no contrato cofre. - Decodificação Dinâmica de Erros (ABI Parsing): Reversões de bloco são interceptadas e traduzidas de códigos de baixo nível para mensagens legíveis na UI (ex:
EduDAO__VotingClosed). - Consumo de Eventos (Log Polling): O estado da DApp é montado filtrando historicamente eventos (como
Transfer) emitidos pelos nós, através da funçãoqueryFilter(), dispensando iterações custosas on-chain.
- Conectar Carteira: O usuário autentica sua MetaMask na rede Sepolia.
- Mint do Crachá: O aluno emite seu
StudentBadge(Transação única). - Stake: O aluno aprova e trava seu NFT no contrato de Staking. O tempo de carência (TimeLock) é de 30 segundos para fins de testes do MVP.
- Acúmulo de Recompensas: Enquanto travado, o contrato calcula organicamente os rendimentos em
$EDU. - Governança (DAO): Ao atingir os limites estipulados de Tokens EDU, o usuário pode interagir com a DAO, seja criando novas propostas de votação ou votando em propostas abertas.
A maneira mais rápida de rodar a interface:
- Clone o repositório.
- Abra a pasta no VS Code.
- Certifique-se de ter a extensão Live Server instalada.
- Navegue até a pasta
/frontende abra oindex.html. - Clique com o botão direito no código e selecione "Open with Live Server".
Este projeto utiliza uma infraestrutura robusta e híbrida de testes, integrando as vantagens do Foundry (rápido e nativo em Solidity) e do Hardhat (flexível e baseado em JavaScript/Ethers.js).
# Instalar dependências (OpenZeppelin e Chainlink)
forge install
# Compilar os contratos
forge build
# Instalar dependências do ecossistema JS/Hardhat
npm install
# Configurar Variáveis de Ambiente
# Copie o arquivo .env.example para .env e preencha com a sua PRIVATE_KEYA base de código possui testes unitários e testes de propriedade (Fuzzing).
# Executar toda a suíte de testes com logs detalhados
forge test -vvvAuditoria automatizada realizada com a ferramenta Slither:
# Exige Python e a biblioteca slither-analyzer instalada via pip
slither .Nota: Os relatórios detalhados gerados encontram-se em formato .txt na raiz do repositório, com os devidos tratamentos para falsos positivos originados de dependências.
Distribuído sob a licença MIT. Veja o arquivo LICENSE para mais informações.
Desenvolvido por: Thiago Linhares