Coleção ERC721 para tokenização de imóveis na rede Base Mainnet.
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.
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
Veja o guia completo em REMIX_DEPLOY.md
- Acesse https://remix.ethereum.org
- Copie o arquivo
contracts/RealMintCollection_Remix.solpara o Remix - Configure MetaMask para Base Mainnet
- Deploy usando "Injected Provider - MetaMask"
- Instale as dependências:
npm install- Configure as variáveis de ambiente:
cp env.example .envEdite o arquivo .env e adicione:
PRIVATE_KEY: Sua chave privada da carteiraBASE_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)
- 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
Veja o guia detalhado: REMIX_DEPLOY.md
Resumo rápido:
- Abra https://remix.ethereum.org
- Copie
contracts/RealMintCollection_Remix.solpara o Remix - Compile o contrato (Solidity 0.8.20+)
- Selecione "Injected Provider - MetaMask"
- Configure MetaMask para Base Mainnet (Chain ID: 8453)
- Deploy com os parâmetros:
- name:
Real Mint Collection - symbol:
RMC - baseURI:
https://realmint.app/api/metadata/ - _maxSupply:
8930 - initialOwner: Seu endereço MetaMask
- name:
npm run deploy:baseO script irá:
- Fazer deploy do contrato
- Aguardar confirmações
- Verificar o contrato no Basescan (se a API key estiver configurada)
Parâmetros recomendados:
COLLECTION_NAME: Real Mint CollectionCOLLECTION_SYMBOL: RMCBASE_URI: https://realmint.app/api/metadata/MAX_SUPPLY: 8930 (baseado nos metadados)
Após o deploy, você pode mintar os NFTs usando o script mint.js:
- Configure o
CONTRACT_ADDRESSno arquivo.env - Execute o script:
node scripts/mint.jsO script irá:
- Ler os metadados de
instrucoes_markdown.md - Mintar os NFTs em lotes (configurável)
- Associar metadados e documentos legais a cada token
- Padrão: ERC721
- Rede: Base Mainnet (Chain ID: 8453)
- Solidity: 0.8.20
- Framework: Hardhat
- Bibliotecas: OpenZeppelin Contracts v5.0.0
- Contrato utiliza bibliotecas auditadas da OpenZeppelin
- Proteção contra reentrância
- Controle de acesso (Ownable)
- Pausable para emergências
- Validação de inputs
- Deploy Seguro: Use Remix + MetaMask para não expor chaves privadas
- Gas Fees: Deploy e mint na mainnet requerem ETH na Base Mainnet
- Testes: Sempre teste primeiro na Base Sepolia testnet
- Verificação: Verifique o contrato no Basescan após o deploy
- Backup: Anote o endereço do contrato deployado em local seguro
MIT License - Veja o arquivo LICENSE para detalhes.