Este contrato adiciona uma camada de "Nível" ao membro. O administrador pode atualizar o nível do acadêmico sem alterar a imutabilidade do registro original.
Solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract ELegalDynamicSBT is ERC721, Ownable {
uint256 private _nextTokenId;
// Mapeamento do ID do Token para o Nível do Membro (1: Prata, 2: Ouro, 3: Diamante)
mapping(uint256 => uint8) public memberLevel;
// URLs base para cada nível de brasão hospedado no IPFS
string private _baseLevel1 = "ipfs://HASH_PRATA/";
string private _baseLevel2 = "ipfs://HASH_OURO/";
string private _baseLevel3 = "ipfs://HASH_DIAMANTE/";
constructor() ERC721("Instituto e-Legal Member", "IEL-SBT") Ownable(msg.sender) {}
/**
* @notice Minta o título inicial (Nível 1 - Prata)
*/
function safeMint(address to) public onlyOwner {
uint256 tokenId = _nextTokenId++;
_safeMint(to, tokenId);
memberLevel[tokenId] = 1; // Inicia como Membro Acadêmico (Prata)
}
/**
* @notice Promove o membro com base na produção científica (GitBook)
*/
function upgradeMember(uint256 tokenId, uint8 newLevel) public onlyOwner {
require(_ownerOf(tokenId) != address(0), "Token inexistente");
require(newLevel > memberLevel[tokenId], "Nivel deve ser superior ao atual");
memberLevel[tokenId] = newLevel;
}
/**
* @notice Retorna a URI dinâmica baseada no nível atual do membro
*/
function tokenURI(uint256 tokenId) public view override returns (string memory) {
require(_ownerOf(tokenId) != address(0), "Token inexistente");
uint8 level = memberLevel[tokenId];
if (level == 3) return string(abi.encodePacked(_baseLevel3, "metadata.json"));
if (level == 2) return string(abi.encodePacked(_baseLevel2, "metadata.json"));
return string(abi.encodePacked(_baseLevel1, "metadata.json"));
}
/**
* @notice Trava de transferência (SBT)
*/
function _update(address to, uint256 tokenId, address auth) internal override returns (address) {
address from = _ownerOf(tokenId);
if (from != address(0) && to != address(0)) {
revert("ELegalSBT: Intransferivel.");
}
return super._update(to, tokenId, auth);
}
}
🧠 O que muda na prática para o Instituto?
Gamificação Acadêmica: O aluno que apenas se registra recebe o Brasão Prata. Ao publicar seu primeiro artigo aprovado no GitBook, o Instituto chama a função upgradeMember e o NFT dele se transforma automaticamente em Ouro nas carteiras digitais e no perfil do Discord.
Reputação Verificável: No mercado de trabalho e na academia, o nível do NFT serve como uma prova de competência. Um "Membro Diamante" do e-Legal terá uma autoridade técnica validada por código.
Economia de Identidade: Você não precisa emitir um novo NFT toda vez que o aluno evolui. O registro é o mesmo, o que preserva o histórico de data de ingresso original.
💡 Aplicação no e-Legal.docs
No seu GitBook, você pode criar uma página chamada "Plano de Carreira Digital", explicando os requisitos para cada nível:
Prata: Registro e Verificação.
Ouro: 3 Artigos nível L1 aprovados.
Diamante: 1 Paper Técnico nível L2 + Contribuição no código do Instituto.
Esta página de Carreira Digital no GitBook será o motor de engajamento dos seus membros. Ela transforma a participação no Instituto em uma jornada de progressão clara, recompensando o mérito acadêmico com autoridade criptográfica.
Aqui está o conteúdo formatado em Markdown para o seu GitBook em doc.e-legal.space:
📈 Plano de Carreira Digital: O Caminho do Conhecimento
O Instituto e-Legal utiliza um sistema de progressão dinâmica baseado em Soulbound Tokens (SBT). Sua evolução no ecossistema não é medida apenas pelo tempo, mas pela contribuição efetiva para a Ciência Jurídica e Tecnológica.
🎖️ Níveis de Autoridade
A evolução do seu brasão oficial reflete o seu impacto na comunidade e na produção científica do Instituto.
🥈 Nível 1: Membro Acadêmico (Prata)
Status: Inicial / Aspirante.
Como Obter: Registro via Smart Contract e validação de vínculo com a instituição de ensino (ex: PUC Goiás).
Privilégios: * Acesso ao Lobby e salas de estudo no Discord.
Acesso à leitura completa da base de dados GitBook.
Direito a submeter artigos para revisão (Nível L0).
🥇 Nível 2: Pesquisador Pleno (Ouro)
Status: Contribuidor Ativo.
Como Obter: * Mínimo de 3 meses como Membro Prata.
Publicação de 3 artigos nível L1 (Ensaios) aprovados pelo Conselho Científico.
Privilégios: * Upgrade visual do NFT para o Brasão Dourado.
Acesso a salas exclusivas de debate sobre Sandboxes Regulatórios.
Direito a revisar artigos de membros Nível 1 (sob supervisão).
💎 Nível 3: Membro Honorário / Senior (Diamante)
Status: Autoridade Técnica.
Como Obter: * Publicação de 1 Technical Paper (L2) com Prova de Conceito (Código/Smart Contract).
Contribuição ativa no desenvolvimento das ferramentas do Instituto (GitHub/Documentação).
Privilégios: * Upgrade visual do NFT para o Brasão Diamante.
Assento no Conselho Científico do Instituto.
Representação oficial do e-Legal em eventos e conferências.
🛠️ Como funciona o Upgrade?
O processo de evolução é totalmente transparente e segue a lógica de Justiça como Protocolo:
Submissão: O membro atinge os requisitos e solicita a revisão de sua produção.
Validação: O Conselho Científico verifica a qualidade e a originalidade das contribuições.
Execução On-chain: O Administrador do Instituto executa a função upgradeMember no Smart Contract.
Atualização Visual: Automaticamente, o seu NFT em carteira e seu cargo no Discord são atualizados para o novo nível.
💡 Por que evoluir?
No ecossistema Web3 e no novo Direito Digital, a Reputação On-chain é o ativo mais valioso. Ter um brasão Diamante do Instituto e-Legal em sua carteira digital é uma prova pública e imutável de que você domina a fronteira entre o Direito e a Tecnologia.
Para o Instituto e-Legal, manter a vanguarda tecnológica significa que não podemos deixar a complexidade da Web3 afastar os acadêmicos da PUC Goiás. Se um interessado não possui uma carteira como a MetaMask, utilizamos o conceito de Account Abstraction (Abstração de Conta - ERC-4337) para facilitar o registro.
Aqui está como o fluxo de registro deve funcionar para o usuário comum:
1. Social Login (Web3Auth / Magic Link)
Em vez de lidar com 12 palavras-chave (seed phrases) logo de início, o usuário se registra usando algo que ele já conhece:
E-mail ou Google Login: O sistema cria uma carteira "invisível" vinculada à conta de e-mail dele.
Segurança: A chave privada é gerada de forma fragmentada, permitindo que o usuário acesse o ecossistema do e-Legal sem saber o que é um endereço hexadecimal no primeiro momento.
2. Smart Accounts (ERC-4337)
Com o suporte ao ERC-4337 que o e-Legal planeja adotar, o registro se torna muito mais amigável:
Gasless Transactions (Transação sem Taxas): O Instituto pode atuar como um "Paymaster", pagando a taxa de rede (gas) para que o aluno receba seu primeiro NFT de forma gratuita.
Recuperação de Conta: Caso o aluno perca o acesso, o Instituto ou um "Guardião" definido por ele pode ajudá-lo a recuperar sua identidade digital, algo impossível em carteiras tradicionais.
Fluxo de Registro no Dashboard Nexus
Passo
Ação do Usuário
O que acontece por trás
1
Clica em "Entrar com Google/E-mail"
Uma carteira é gerada via Account Abstraction.
2
Preenche os dados acadêmicos
O sistema vincula o perfil ao endereço gerado.
3
Clica em "Militar meu Título"
O e-Legal paga o gas e o contrato envia o SBT.
4
Acesso liberado
O usuário entra no Discord e GitBook sem nunca ter aberto a MetaMask.
💡 Evolução para o Usuário
Conforme o membro evolui na Carreira Digital, o e-Legal pode fornecer guias no GitBook ensinando como ele pode "assumir a custódia total" dessa carteira e transferi-la para uma MetaMask ou Hardware Wallet se desejar.
Este guia é essencial para o doc.e-legal.space, pois remove o "abismo tecnológico" que impede muitos juristas de ingressarem na Web3. Vamos explicar como o Instituto utiliza a Abstração de Conta (ERC-4337) para criar uma experiência de usuário (UX) invisível e segura.
Aqui está o conteúdo formatado para o seu GitBook:
🛡️ Guia: Acesso Simplificado (Web3 sem Fricção)
No Instituto e-Legal, acreditamos que a tecnologia deve servir ao Direito, e não ser uma barreira para ele. Por isso, implementamos o conceito de Carteiras Abstratas, permitindo que você inicie sua jornada institucional usando apenas seu e-mail acadêmico ou login social.
1. O que é Abstração de Conta (ERC-4337)?
Tradicionalmente, para interagir com a Blockchain, você precisaria criar uma carteira manual (como a MetaMask) e guardar 12 palavras secretas (Seed Phrase). Se perdesse essas palavras, perderia sua identidade.
A Abstração de Conta transforma sua carteira em um "Contrato Inteligente Programável". Isso permite:
Login Social: Acesso via Google ou E-mail (através de tecnologias como Web3Auth ou Magic Link).
Recuperação Social: Caso você perca o acesso, o Instituto pode atuar como um guardião para ajudá-lo a recuperar sua conta.
Transações sem Taxas (Gasless): O Instituto e-Legal paga as taxas de rede para que você receba seu título (SBT) sem precisar comprar criptomoedas.
2. Passo a Passo do Registro (Para quem não tem MetaMask)
Acesse o Dashboard Nexus: Clique em "Registrar com Google".
Criação Silenciosa: O sistema criará uma carteira criptográfica vinculada de forma única ao seu e-mail.
Assinatura Digital: Você assinará os termos de adesão do Instituto com um simples clique (autenticação biométrica ou senha).
Recebimento do SBT: O seu Soulbound Token de membro será enviado diretamente para essa conta protegida.
3. Segurança e Soberania
Embora o acesso seja simples, a segurança é de nível institucional:
Não Custodial: O Instituto não tem acesso à sua "chave privada". Ela é gerada de forma fragmentada no seu navegador.
Transição Opcional: A qualquer momento, você pode exportar sua chave e importar sua identidade do e-Legal para uma carteira física ou para a MetaMask, assumindo o controle total.
Nota para Acadêmicos da PUC Goiás: Este sistema foi desenhado para que você foque na pesquisa jurídica e na produção científica, deixando a complexidade da infraestrutura de rede para o nosso protocolo.