Just finished Fungible Tokens and Non-Fungible Tokens in @RealJohnnyTime's course.
Writing, deploying, and testing these tokens are now a piece of cake.
You can check out his course here:
smartcontractshacking.com/
New SCH CTF Arena challenge: Shop.
Worth 975 EXP and up to 1475 HP.
smartcontractshacking.com/toβ¦
We've updated mobile layouts, dark mode, course navigation and progress displays. Submitting a quiz answer now also shows loading feedback. Students: is there a particular screen or action that's still frustrating to use?
Study one hack by answering four questions:
What did the attacker control?
What did the protocol trust?
Which transaction crossed that boundary?
What changed?
Link the evidence. Leave unknown details unknown.
A bonding-curve token can rise in price while exits become fragile. Model a buy wave followed by a sell-off; check reserves and execution prices. Try the SCH stress tester:
smartcontractshacking.com/toβ¦
LFG!
vm.prank allowed me to run my tests correctly.
I tried finishing the exercises without AI and looking at the solutions.
Fungible Tokens Exercise 1 conquered!
Thanks, @RealJohnnyTime! Looking forward to finishing the whole SCH course before 2026 ends.
Great thread!
6 Lessons I learned while finishing the Fungible Tokens exercises from @RealJohnnyTime's SCH
An AI writes a smart contract, then reviews it:
"Who wrote it?"
"The model."
"Who reviewed it?"
"The model."
"What happens if the withdrawal fails?"
"Hang on."
4/4 Coinbase's analysis of the historical Nomad exploit:
coinbase.com/blog/nomad-bridβ¦
The blank passport illustration is a metaphor for accepting an unproven message.
3/4 Copycats reused transaction data with different recipients.
Test a message that has never entered the proof process. Follow its default storage value through validation; an unknown entry must not grant permission.
2/4 Looking up an unknown message returned bytes32(0).
An initialization change had made that zero root acceptable. The unproven message passed the root check, allowing a payout.
Nomad's bridge paid out on unproven messages in August 2022.
Bridge messages authorize actions such as releasing funds on another chain. An unknown message passed Nomad's validation because its default value was treated as trusted. 1/4
You can now find your course's exercise files, solutions and setup lessons under Course Resources. For lesson questions or account problems, use Get Help on the dashboard.
Full guide: smartcontractshacking.com/atβ¦
Free Rider hides a plain accounting bug inside a flash swap.
buyMany passes the same msg.value into every purchase. 15 ETH can satisfy six purchase checks.
That detail lets the attacker take every NFT.
youtube.com/watch?v=cxFH9U1Nβ¦
Hack totals need incident sources. Audit-firm claims need reports. We built two tools so readers can check both for themselves.
smartcontractshacking.com/toβ¦
smartcontractshacking.com/toβ¦
New SCH CTF Arena challenge: Denial.
Worth 1150 EXP and up to 1750 HP.
smartcontractshacking.com/toβ¦







