Skip to content

LeonardoIRC/Real-Mint

Repository files navigation

Real Mint Collection - ERC721 NFT Collection

Coleção ERC721 para tokenização de imóveis na rede Base Mainnet.

📋 Descrição

Este projeto implementa uma coleção NFT ERC721 para tokenização de propriedades imobiliárias. A coleção permite representar apartamentos e outras propriedades como NFTs não-fungíveis na blockchain Base.

🏗️ Estrutura do Projeto

Collection/
├── contracts/
│   └── RealMintCollection.sol    # Contrato ERC721 principal
├── scripts/
│   ├── deploy.js                 # Script de deploy
│   └── mint.js                   # Script para mintar NFTs
├── test/                          # Testes (a criar)
├── hardhat.config.js             # Configuração do Hardhat
├── package.json                  # Dependências do projeto
├── .env.example                  # Exemplo de variáveis de ambiente
└── instrucoes_markdown.md        # Metadados dos imóveis

🚀 Instalação

Opção 1: Deploy via Remix IDE (Recomendado - Sem chave privada)

Veja o guia completo em REMIX_DEPLOY.md

  1. Acesse https://remix.ethereum.org
  2. Copie o arquivo contracts/RealMintCollection_Remix.sol para o Remix
  3. Configure MetaMask para Base Mainnet
  4. Deploy usando "Injected Provider - MetaMask"

Opção 2: Deploy via Hardhat (Requer chave privada)

  1. Instale as dependências:
npm install
  1. Configure as variáveis de ambiente:
cp env.example .env

Edite o arquivo .env e adicione:

  • PRIVATE_KEY: Sua chave privada da carteira
  • BASE_RPC_URL: URL do RPC da Base Mainnet (ou use a padrão)
  • BASESCAN_API_KEY: Sua chave da API do Basescan (para verificação)

📝 Funcionalidades do Contrato

  • Mint Individual: Mint de propriedades individuais
  • Mint em Lote: Mint de múltiplas propriedades em uma transação
  • Metadata Hash: Armazenamento de hash dos metadados para verificação
  • Legal Document URI: URI para documentos legais de cada propriedade
  • Pausable: Contrato pode ser pausado pelo owner
  • Ownable: Controle de acesso pelo owner
  • ReentrancyGuard: Proteção contra reentrância

🔧 Deploy

Deploy via Remix (Recomendado)

Veja o guia detalhado: REMIX_DEPLOY.md

Resumo rápido:

  1. Abra https://remix.ethereum.org
  2. Copie contracts/RealMintCollection_Remix.sol para o Remix
  3. Compile o contrato (Solidity 0.8.20+)
  4. Selecione "Injected Provider - MetaMask"
  5. Configure MetaMask para Base Mainnet (Chain ID: 8453)
  6. Deploy com os parâmetros:
    • name: Real Mint Collection
    • symbol: RMC
    • baseURI: https://realmint.app/api/metadata/
    • _maxSupply: 8930
    • initialOwner: Seu endereço MetaMask

Deploy via Hardhat (Alternativa)

npm run deploy:base

O script irá:

  1. Fazer deploy do contrato
  2. Aguardar confirmações
  3. Verificar o contrato no Basescan (se a API key estiver configurada)

Configuração do Deploy

Parâmetros recomendados:

🪙 Mint de NFTs

Após o deploy, você pode mintar os NFTs usando o script mint.js:

  1. Configure o CONTRACT_ADDRESS no arquivo .env
  2. Execute o script:
node scripts/mint.js

O script irá:

  • Ler os metadados de instrucoes_markdown.md
  • Mintar os NFTs em lotes (configurável)
  • Associar metadados e documentos legais a cada token

📊 Especificações Técnicas

  • Padrão: ERC721
  • Rede: Base Mainnet (Chain ID: 8453)
  • Solidity: 0.8.20
  • Framework: Hardhat
  • Bibliotecas: OpenZeppelin Contracts v5.0.0

🔐 Segurança

  • Contrato utiliza bibliotecas auditadas da OpenZeppelin
  • Proteção contra reentrância
  • Controle de acesso (Ownable)
  • Pausable para emergências
  • Validação de inputs

📚 Recursos

⚠️ Avisos Importantes

  1. Deploy Seguro: Use Remix + MetaMask para não expor chaves privadas
  2. Gas Fees: Deploy e mint na mainnet requerem ETH na Base Mainnet
  3. Testes: Sempre teste primeiro na Base Sepolia testnet
  4. Verificação: Verifique o contrato no Basescan após o deploy
  5. Backup: Anote o endereço do contrato deployado em local seguro

📄 Licença

MIT License - Veja o arquivo LICENSE para detalhes.

About

Real Estate Tokenization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published