A comprehensive repository documenting my blockchain and smart contract development journey through Alchemy University's Ethereum Bootcamp and Patrick Collins' Solidity courses.
An intensive program covering blockchain fundamentals, Ethereum development, and decentralized application (dApp) creation.
Following Patrick Collins' comprehensive blockchain development course, focusing on Hardhat, smart contract testing, and best practices.
Project: ECDSA Node
- Implementation of Elliptic Curve Digital Signature Algorithm
- Client-server architecture for transaction signing
- Understanding public key cryptography and wallet authentication
Project: Gift List (Merkle Trees)
- Merkle tree implementation and verification
- Proof generation and validation
- Cryptographic data structures in blockchain
Projects:
- JSON-RPC Activity: Interacting with Ethereum nodes
- Block Explorer: Building a blockchain data viewer
- Transaction Signing: Understanding and implementing transaction flows
Topics Covered:
- Hardhat development environment setup
- Contract compilation and deployment
- Testing smart contracts
- Modifying contract state
- Contract interactions with ethers.js
Projects:
au-hardhat-practice/: Core Hardhat conceptsmodify-contract-state/: State management in contractsTest_exercise/: Writing comprehensive testsWork with contract/: Contract interaction patterns
Project: Contract Puzzles & Escrow
- Solving smart contract challenges
- Implementing escrow functionality with Hardhat
- Security considerations and best practices
- Local Hardhat Games: Interactive learning challenges
Topics:
- ERC-20 token implementation
- Token creation and deployment
- ERC-20 Token Indexer project
- NFT minting and standards
Topics:
- Governance contracts
- Upgradeable contracts
- Proxy patterns (Transparent, UUPS)
- Storage layouts and collision avoidance
Location: ethers-simple-storage-fcc/
- Basic interaction with smart contracts using ethers.js
- Contract deployment from JavaScript
- Environment variable management and key encryption
- Reading and writing to blockchain
Key Files:
deploy.js: Contract deployment scriptencryptKey.js: Secure key managementSimpleStorage.sol: Basic storage contract
Location: Git_hardhat-simple-storage-fcc/ & my_hardhat-simple-storage-fcc/
- Hardhat framework fundamentals
- Testing with Chai and Mocha
- Task automation
- Gas reporting and optimization
- Code coverage analysis
Features:
- Custom Hardhat tasks
- Comprehensive test suites
- Coverage reports
- Gas consumption analysis
Location: hardhart-fund-me-fcc/
- Building a crowdfunding/donation contract
- Chainlink price feeds integration
- Mock contracts for testing
- Multi-network deployment
- Deployment scripts with
hardhat-deploy
Key Concepts:
- Price feed oracles
- Withdrawal patterns
- Owner-only functions
- Testing with fixtures
- Network configuration
- Blockchain: Ethereum, EVM-compatible chains
- Languages: Solidity, JavaScript
- Frameworks: Hardhat, Ethers.js
- Testing: Chai, Mocha, Waffle
- Tools:
- Alchemy SDK & API
- Chainlink (Price Feeds, VRF)
- OpenZeppelin contracts
- Hardhat plugins (deploy, gas-reporter, coverage)
- β Cryptographic primitives (hashing, signatures)
- β Blockchain architecture and consensus
- β Transaction lifecycle and validation
- β Merkle trees and data structures
- β Solidity programming and best practices
- β Contract design patterns
- β Security considerations
- β Gas optimization techniques
- β Upgradeable contract patterns
- β Hardhat development environment
- β Contract testing and coverage
- β Deployment automation
- β Network configuration
- β Contract verification
- β ERC-20 token implementation
- β NFT standards and minting
- β Token indexing and tracking
- β Oracle integration (Chainlink)
- β Proxy patterns and upgrades
- β Governance mechanisms
- β DeFi patterns (escrow, crowdfunding)
node --version # v16+ recommended
npm --version # v8+- Clone the repository
git clone https://github.com/Alexander-NM/web3.git
cd web3- Navigate to a specific project
cd "Alchemy_eth_bootcamp/Week_4/au-hardhat-practice"
# or
cd "Patrick Collins/hardhart-fund-me-fcc"- Install dependencies
npm install- Set up environment variables
cp .env.example .env
# Add your private keys, API keys, etc.Compile contracts:
npx hardhat compileRun tests:
npx hardhat testDeploy locally:
npx hardhat run scripts/deploy.js --network localhostGenerate coverage:
npx hardhat coverageA practical implementation of Merkle trees for efficient verification, demonstrating:
- Proof generation and verification
- Client-server architecture
- Cryptographic data structures in action
Secure transaction system using elliptic curve cryptography:
- Digital signature generation
- Transaction validation
- Public key infrastructure
Full-featured crowdfunding contract:
- Chainlink price feed integration
- Multi-network deployment
- Comprehensive testing suite
- Gas-optimized withdrawals
- Never commit private keys or sensitive data
- Use
.envfiles for secrets (add to.gitignore) - Always test contracts thoroughly before mainnet deployment
- Follow smart contract security best practices
- Use established libraries (OpenZeppelin) when possible
- Week 1: ECDSA & Digital Signatures
- Week 2: Blockchain Fundamentals & Merkle Trees
- Week 3: Ethereum & JSON-RPC
- Week 4: Smart Contracts with Hardhat
- Week 5: Advanced Smart Contract Development
- Week 6: Token Standards (ERC-20, NFTs)
- Week 7: Governance & Upgradeable Contracts
- Patrick Collins: Simple Storage
- Patrick Collins: Hardhat Fundamentals
- Patrick Collins: Fund Me Project
This is a personal learning repository, but suggestions and feedback are welcome! Feel free to:
- Open issues for questions or discussions
- Suggest improvements to implementations
- Share additional learning resources
This repository is for educational purposes. Individual projects may have their own licenses.
- Alchemy University for the comprehensive Ethereum Developer Bootcamp
- Patrick Collins for the excellent free blockchain development course
- OpenZeppelin for secure smart contract libraries
- Chainlink for decentralized oracle solutions
- The entire Web3 community for open-source contributions
Happy Learning! π
This repository represents an ongoing journey in blockchain development. Each project builds upon previous knowledge, creating a comprehensive understanding of Web3 technologies.