Instructor Mode is a toggle that reveals teaching-specific features throughout the bootcamp. It’s designed for educators running cohort-based workshops, community leaders facilitating study groups, and technical trainers delivering FHEVM content.
Instructor Mode is always available and persisted to localStorage. It doesn’t require authentication - it’s a UI preference.
instructorNotes: [ 'Start with the "why": show a token transfer on Etherscan (sender, receiver, amount visible). Ask: "Would you use this to pay your salary?" This motivates FHE.', 'The HTTPS analogy is your best friend: HTTPS encrypts in transit, server sees plaintext. FHE encrypts in compute — the EVM never sees plaintext.', 'Gauge audience familiarity - if most have crypto background, lean into technical comparisons with ZK proofs vs FHE.', 'Estimated pacing: 10 min lecture, 10 min slides, 10 min discussion/Q&A.',]
Rendered as:
Instructor Notes
Start with the “why”: show a token transfer on Etherscan
The HTTPS analogy is your best friend
Gauge audience familiarity
Estimated pacing: 10 min lecture, 10 min slides, 10 min Q&A
Instructor notes are collapsible by default to reduce visual clutter. They expand/collapse with smooth animation.
instructorNotes: [ // 1. Opening hook or motivation 'Start with the "why": show a token transfer on Etherscan', // 2. Key analogies or examples 'The HTTPS analogy is your best friend', // 3. Common student mistakes 'Common mistake: Forgetting FHE.allowThis() after arithmetic', // 4. Pacing guidance 'Estimated pacing: 10 min lecture, 10 min slides, 10 min Q&A', // 5. Audience-specific tips 'If most have crypto background, lean into ZK vs FHE comparison',]
instructorNotes: [ 'This is the densest lesson - consider splitting it across two sessions for cohort delivery.', 'Don\'t rush ACL. It\'s the most misunderstood concept: FHE.allow() is not a getter — it grants off-chain decrypt permission. The contract still needs allowThis separately to compute on the value. Dedicate at least 15 min to what happens when you forget each call.', 'Common mistake 1: Forgetting FHE.allowThis() after arithmetic. FHE.add produces a new handle; the new handle has no permissions yet. Draw the "new-handle rule": _count (handle 0x1) → FHE.add → new_count (handle 0x2) — handle 0x2 has NO permissions yet.', 'Common mistake 2: Confusing euint32 (internal) vs externalEuint32 (user input). Use the analogy: externalEuint32 is an unopened envelope; FHE.fromExternal is the post office verifying and stamping it.', 'Common mistake 3: Not calling FHE.allow(result, msg.sender). allowThis = contract can use the value; allow(addr) = that address can decrypt off-chain. Both are almost always needed together.', 'Use the interactive type comparison table - have students predict which type to use for different scenarios.', 'Show forge test verbosity: run the same test with default, -v, and -vvv. Students are often surprised how much -vvv reveals (call traces, gas, revert reasons). This is their main debugging tool.',]
These notes provide actionable guidance (“dedicate 15 min”, “draw the rule”), analogies (“unopened envelope”), and common mistakes with visual examples.