Sistema completo de identidade digital com credenciais verificáveis, integração blockchain e armazenamento distribuído.
IDweb3 é uma plataforma MVP de identidade digital descentralizada que combina:
- ✅ Identidades Digitais: Criação e gestão de identidades únicas
- ✅ Credenciais Verificáveis: Padrão W3C via Guardian Framework
- ✅ Blockchain: Registro imutável no Hedera Hashgraph
- ✅ NFTs de Identidade: Tokens ERC721 para identidades (via Hardhat)
- ✅ IPFS: Armazenamento distribuído de documentos
- ✅ API REST: Integração completa para aplicações externas
- Docker e Docker Compose
- Node.js >= 16.0.0
- MetaMask (para interação com contratos)
- Conta Hedera Testnet (gratuita)
# 1. Clone o repositório
git clone https://github.com/dronreef2/IDweb3.git
cd IDweb3
# 2. Configure o ambiente
cp .env.example .env
# Edite o .env com suas credenciais Hedera
# 3. Inicie todos os serviços
chmod +x setup.sh
./setup.sh
# 4. Acesse a aplicação
# Frontend: http://localhost:3003
# API: http://localhost:3001
# Guardian UI: http://localhost:3000- Stack: Node.js, Express, MongoDB, Redis
- Blockchain: Hedera SDK para consenso e armazenamento
- Storage: IPFS para documentos distribuídos
- Identity: Guardian Framework para credenciais W3C
- Stack: React 18, Material UI
- Web3: Ethers.js para interação com contratos
- API: Axios para comunicação com backend
- IdentityNFT: ERC721 para NFTs de identidade
- Networks: Sepolia, Hedera EVM, Local
- 📖 Guia de Integração Completo - Setup detalhado e integrações
- 🔧 Hardhat Setup - Deploy de contratos EVM
- 📋 Resumo do Projeto - Visão geral técnica
- 🔗 Exemplos de API - Uso dos endpoints REST
- 🚀 Deploy em Produção - Checklist de produção
- 🤖 instructions.json - Arquivo semântico para agentes IA
# Instalar Hardhat
npm install --save-dev hardhat @nomicfoundation/hardhat-toolbox
# Compilar contratos
npx hardhat compile
# Deploy em Sepolia
npx hardhat run scripts/deploy.js --network sepoliaVeja o guia completo de Hardhat.
import { mintIdentityNFT } from './utils/contract';
// Emitir NFT de identidade
const result = await mintIdentityNFT('ipfs://Qm...');
console.log('NFT emitido:', result.tokenId);# Criar identidade
curl -X POST http://localhost:3001/api/identity/create \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"personalInfo": {...}}'POST /api/auth/register- Registrar usuárioPOST /api/auth/login- Login e obter JWT
POST /api/identity/create- Criar identidade digitalGET /api/identity/me- Obter minha identidadePOST /api/identity/issue-nft- Emitir NFT no Hedera
POST /api/documents/upload- Upload para IPFSGET /api/documents/list- Listar documentos
POST /api/credentials/issue- Emitir credencial W3CGET /api/credentials/my-credentials- Listar credenciais
- URL: https://sepoliafaucet.com
- Token: ETH (para gas)
- URL: https://portal.hedera.com/register
- Token: HBAR (já incluso na conta testnet)
| Serviço | URL | Porta |
|---|---|---|
| API Backend | http://localhost:3001 | 3001 |
| Frontend | http://localhost:3003 | 3003 |
| Guardian UI | http://localhost:3000 | 3000 |
| MongoDB | localhost | 27017 |
| Redis | localhost | 6379 |
- ✅ Autenticação JWT
- ✅ Rate limiting
- ✅ Validação de entrada (Joi)
- ✅ CORS configurado
- ✅ Hashing de senhas (bcrypt)
- ✅ Restrições de upload de arquivos
# Backend
cd backend
npm test
# Contratos Hardhat
npx hardhat test- Hedera Hashgraph SDK
- Guardian Framework
- Hardhat
- OpenZeppelin Contracts
- Ethers.js
- Node.js
- Express
- MongoDB
- Redis
- JWT
- React 18
- Material UI
- Axios
- IPFS
IDweb3/
├── backend/ # API REST Node.js
├── frontend/ # Interface React
├── contracts/ # Smart contracts Solidity
├── scripts/ # Scripts de deploy
├── docs/ # Documentação
├── docker-compose.yml
└── hardhat.config.js
# Iniciar serviços
docker-compose up -d
# Ver logs
docker-compose logs -f
# Parar serviços
docker-compose down
# Rebuild
docker-compose up -d --build
# Compilar contratos
npx hardhat compile
# Deploy contrato
npx hardhat run scripts/deploy.js --network sepoliaContribuições são bem-vindas! Por favor:
- Fork o projeto
- Crie uma branch (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Add: MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
- 📧 Abra uma issue no GitHub
- 📖 Consulte a documentação
- 💬 Entre em contato com o time
- ✅ Backend API completo
- ✅ Frontend React funcional
- ✅ Integração Hedera Hashgraph
- ✅ Guardian Framework configurado
- ✅ IPFS integrado
- ✅ Hardhat setup com IdentityNFT
- ✅ Docker Compose pronto
- ✅ Documentação completa
MVP COMPLETE AND READY FOR DEPLOYMENT 🚀
Desenvolvido com ❤️ pelo time IDweb3