Assignment Overview:
This practical lab teaches students to permanently inscribe their name and a picture on the
Ethereum Sepolia testnet blockchain, using only MetaMask and free web tools. No coding required.
Connects directly to L02 (Blockchain Fundamentals) and L03 (Cryptographic Foundations) concepts.
Pre-Lab Setup - Day Before
Preparation Checklist:
- Test all faucets - note which ones are currently working
- Create instructor wallet on Sepolia (for demo)
- Do a complete dry run of all 4 phases
- VERIFY MetaMask hex data field: In MetaMask v11+, the "Show hex data" toggle may have moved from Settings > Advanced. Check the current location and update student instructions if needed. See: https://support.metamask.io/
- Prepare backup: if ALL faucets are down, have pre-funded wallets (create 30 wallets, fund each with 0.1 SepoliaETH, distribute private keys)
- Verify Pinata free tier still allows signups
- Note your Pinata dedicated gateway URL (format: your-gateway.mypinata.cloud) - the old public gateway.pinata.cloud no longer works for new accounts
- Verify thirdweb dashboard works on Sepolia
- Check that testnets.opensea.io indexes Sepolia NFTs
- Prepare a shared doc/form for students to submit Etherscan links
Timing Guide - 90 Minutes Total
| Time | Activity | Notes |
|---|---|---|
| 0:00-0:05 | Introduction + demo | Show a completed example on Etherscan |
| 0:05-0:20 | Phase 1: Wallet + faucet | Help students with MetaMask install |
| 0:20-0:40 | Phase 2: Name on chain | Walk around, help with hex conversion |
| 0:40-1:10 | Phase 3: IPFS + on-chain CID | This takes longest; help with Pinata signup |
| 1:10-1:25 | Phase 4 (bonus): NFT | For fast students; others finish Phase 3 |
| 1:25-1:30 | Wrap-up + reflection | Quick class discussion |
Tool Version Notes - IMPORTANT
Web3 tools change frequently. Before each semester, verify:
- MetaMask Hex Data Field (v11+): The "Show hex data" setting may have moved. Do a dry run. If changed, prepare supplementary instruction sheet.
- Pinata Gateway URLs: Pinata no longer provides a shared public gateway. Each account gets a dedicated gateway (your-gateway.mypinata.cloud). Students must find their own gateway URL under "Gateways" in dashboard.
- nft.storage: nft.storage has discontinued free uploads. Do NOT recommend it. Alternatives: web3.storage (https://web3.storage/) or Filebase (https://filebase.com/).
- thirdweb Dashboard: Verify the NFT deployment flow still works on Sepolia. thirdweb occasionally changes UI and supported networks.
Adaptation Options
Take-Home Version:
- Remove time pressure, extend to 1 week deadline
- Add written report requirement (500 words) instead of in-class reflection
- Worth same 100 points
Shortened Version - 45 Minutes:
- Skip Phase 4 (bonus NFT)
- Simplify Phase 3: just upload to Pinata, record CID (skip on-chain step)
- Reduce to 60 points
Troubleshooting
| Problem | Solution |
|---|---|
| "All faucets require mainnet ETH" | Some faucets (Google Cloud, Chainstack) do not require mainnet balance. If all fail, distribute pre-funded wallet private keys. |
| "MetaMask doesn't show hex data field" | Settings > Advanced > "Show hex data" must be ON. NOTE: In MetaMask v11+, this toggle may have moved. Check current docs. This is extension-only; MetaMask mobile does not support hex data. |
| "Pinata gateway link doesn't work / 403 error" | The old public gateway (gateway.pinata.cloud) is deprecated. Students must use their account-specific gateway URL from their Pinata dashboard (format: your-gateway.mypinata.cloud/ipfs/CID). |
| "Pinata signup requires credit card" | As of 2026, Pinata free tier does not require credit card. Alternative: use web3.storage or Filebase (also free IPFS pinning). Do NOT recommend nft.storage (discontinued free uploads). |
| "Transaction stuck/pending" | Gas prices on Sepolia are usually negligible. If stuck: Settings > Advanced > Reset Account (clears pending tx nonce). |
| "OpenSea doesn't show my NFT" | Click "Refresh Metadata" on the NFT page. May take 5-10 minutes for indexing. Paste contract address + token ID directly. |
| "Hex conversion has spaces or special characters" | The hex string must be continuous with no spaces. Some converters add spaces between byte pairs - remove all spaces. Must start with exactly "0x" (not "0X", not missing prefix). |
Privacy & Ethics Notes
- Participation must be voluntary
- Testnet data is public and permanent (even on testnets)
- Students should use their actual name (educational purpose) but could use a pseudonym if they have privacy concerns
- No real financial risk (testnet tokens have no value)
- Offer alternative assignment for students who prefer not to use blockchain
Assessment Notes
Grading Priority:
- Did the student demonstrate understanding? (reflection questions)
- Did they successfully complete the technical steps? (Etherscan links)
- Quality of documentation (clear screenshots/links, organized submission)
Point structure: 85 core + 15 bonus = 100 maximum.
Common mistakes that should NOT lose points:
- Typos in the name
- Using a different faucet than recommended
- IPFS image being low quality
- OpenSea not indexing the NFT immediately (testnet indexing is unreliable)
© Joerg Osterrieder 2025-2026. All rights reserved.