11 Weeks Of Online Classes

Solidity Bootcamp

The RareSkills Solidity Bootcamp helps busy engineers carve out time to upskill on smart contract developing and auditing as well as maximize ROI on time spent.
Next Cohort:
19th August 2025
9:00 AM EDT
Apply Now

Your Journey Explained

How It Works

Highly structured curriculum

10 students per cohort

Daily assignments that can be finished in under 1 hour

11 x weekly live classes (group sessions)

11 x weekly 1-1 calls with the instructor (15 - 30 mins)

Total time commitment is less than 7 hours per week

Structured For Success

Solidity Bootcamp Curriculum

Last updated: April 2025
1.

Review of Intermediate Syntax

2.

ERC-20 Security Drills

3.

Token Contract Drills 1

4.

Token Contract Drills 2

5.

Solidity DeFi Math 1

6.

Solidity DeFi Math 2

7.

Flash Loans

8.

Vaults and How They Break

9.

Uniswap V2 Exercises

10.

Uniswap V2 Math Derivation

11.

Hacking Uniswap V2 Forks

Join Our Solidity Bootcamp

Next Cohort:
19th August 2025
9:00 AM EDT
Apply Now

How we choose what topics to cover

A lot of courses like to cram as many impressive-looking topics into a syllabus to create an impression that the student will learn a lot of material. Obviously, it is not possible to “master” (in any sense of the word) 10 topics over the course of 10 weeks. In fact, if you spend so little time on a subject, you will probably just forget it the week after - and you net waste time! Our heuristic for what to include is simple: build the underlying skills that enable developers to easily understand large production-level DeFi codebases.

DeFi will feel easy after this

Fundamentally, all DeFi protocols have:
  1. A mechanism for investors to deposit liquidity (with the expectation of a profit)
  2. A mechanism for traders to use the liquidity (such as for swapping, borrowing, or leveraged trading)
  3. An accounting mechanism to track profit share for the investors
If you master these three components, then you will be able to make sense of any DeFi protocol. Let’s examine what the Tokens to DeFi course covers and see how they fit into this learning goal:
  • Solidity Syntax
  • ERC-20 Usage
  • Math in Solidity
  • Vaults
  • Flash Loans
  • Uniswap V2

Solidity Syntax

After teaching hundreds of developers, we’ve seen that some knowledge gaps in the Solidity language are surprisingly common. For example, we’ve seen a lot of developers don’t know the exact mechanics behind low-level calls and interface calls or how exactly try catch works. This part of the course focuses on aspects of Solidity that seem to not be covered well in existing online materials. If you have gaps in your understanding of Solidity, you will have a harder time reading production codebases and understanding how DeFi protocols work.

Tokens

A good Solidity developer must be able to code an ERC-20 from scratch from memory and be fluent in creating fundamental token mechanisms such as tracking staking rewards, conducting an auction, or splitting up tokens among multiple parties. We’ve found that many Solidity devs take several minutes to write token routines that ought to be second nature. This part of the course ensures that token mechanics become second nature. Why? Tokens are everywhere in DeFi, even “token-like” mechanics recur frequently. However, not all tokens behave exactly the same way. It must be second nature for a developer to know how a token should behave and where there may be some variation in the behavior.

Math

Math is fundamental to DeFi (finance and math go together!) but few learn how to use Solidity math properly. For example, one might compute the “average” of x, y, and z by computing (x + y + z) / 3, but this fails because the code will revert for some inputs (cases where x + y + z overflows). Similarly, how does one go about computing an exponent of Euler’s constant e (which appears in several financial formulas)? What is the difference between a fixed-point number and a Q-number? Students must master these subjects through repeated hands-on application as without knowing how math is done in Solidity, reading and writing production codebases in DeFi will be extremely challenging.

Vaults

Any non-trivial DeFi application needs a way to track which depositors are owed what based on when they deposited and how much the protocol has gained or lost. It isn’t feasible to loop through each account and update each one. Optimizations that allow all accounts to be updated simultaneously have subtle gotchas that must be understood fully to develop safe code. Additionally, understanding vaults makes understanding rebase tokens (another common accounting mechanism) far easier. Almost every DeFi protocol has a vault or vault-like mechanism built in. If you don’t deeply understand vaults, you will struggle to read large codebases.

Flash Loans

A flash loan is the simplest possible mechanism for traders to “use” the liquidity provided by investors. Therefore, we use this as the starting point for showing how liquidity is “used” and how profits ought to be distributed. We teach the ERC-3156, but also the way other protocols implement flash loans, notably Uniswap V2.

Uniswap V2

Uniswap V2 has been forked into over 600 protocols - more than any other DeFi protocol. It is not possible to understand Uniswap V3 without understanding Uniswap V2 - and Uniswap V3 has been forked into over a hundred protocols. By deeply understanding Uniswap V2, you are positioned to quickly learn hundreds of other protocols. The knowledge gained will serve you many times over. Someone who deeply understands Uniswap V2 can immediately understand hundreds of other codebases. As you can see, we want to get you to a point of NOT being intimidated by large DeFi codebases but rather understand the recurring patterns they rely on so you can read DeFi codebases in “chunks” rather than try to reverse-engineer them line-by-line. It is not possible to understand a moderately complex DeFi protocol without having a strong mastery of the subjects above - it’s like trying to learn calculus while having major knowledge gaps with algebra. Consider that the Uniswap V2 codebase depends on the following topics (and more!):
  • Fee-On-Transfer Tokens
  • Rebasing Tokens
  • The Safetransfer Pattern
  • Fixed-Point Numbers And Fixed-Point Arithmetic
  • Accumulator Accounting
  • Lp Tokens And Vault Design Patterns
  • Fee-By-Dilution
  • Flash Loans
  • Factory Pattern And Create2
If you try to learn Uniswap V2 without mastering those topics first, the design choices of Unsiwap V2 will seem random. If you deeply understand the topics above - and you will if you do the assignments leading up to the Uniswap V2 section of the course - then the Uniswap V2 codebase will feel easy and obvious.

Topics we do not cover

Let’s consider some topics we did not include and our rationale for not including them:

Oracles

Although oracles are critical to DeFi, there is not much to learn about them, and the documentation provided by oracle providers is already very good. Everything you need to know contained, or linked to, in our oracle tutorial. Learning how an oracle works does not “unlock” further skills. It’s one and done.

Proxies and upgradable contracts

Proxies can be learned passively if one has the correct foundations and the explanation is clear. Interested students can read our Book of Proxy Patterns which is far more extensive than any other resource on the topic. We’ve seen from experience that developers and auditors have no trouble understanding upgradeable contracts even if they haven’t coded a proxy before, provided they studied the underlying mechanics.

DAOs and Governance

Governance is similar to proxies; it can be learned passively if one has the correct foundations and a good explanation. Furthermore, excellent tooling for implementing governance protocols exists, so reinventing the wheel is usually not the right choice. See our Solidity governance tutorial if interested. Governance matters in the sense that protocols use it, but protocols do not depend on it. Governance is essentially a more decentralized version of a multisignature wallet, so when trying to understand DeFi protocols, developers and auditors can frequently treat governance and DAOs as an abstraction.

Unit testing

Thorough unit testing is rather straightforward nowadays with A.I. While obviously developers should not blindly trust the output of a chat bot, A.I. is very good at “boilerplate” code which unit tests tend to be. If you are unfamiliar with unit testing in Solidity, our article on Foundry Unit Tests is an industry classic. Furthermore, our exercises come with professionally crafted unit tests, so you’ll learn by exposure the best way to write them, as opposed to writing tests with delayed feedback on whether you did it correctly or not.

Invariant Testing / Formal Verification

Invariant testing is important! However, we’ve found it counterproductive to teach invariant testing before the student has strong mastery of at least one DeFi protocol. Otherwise, they don’t know how to come up with invariants, and invariants become more of an academic exercise for the student. By mastering the topics in this course, you will be better equipped to use invariant testing to its full potential. Again, we have an invariant testing tutorial for those interested.

NFTs (ERC-721)

The NFT market is quite dead! Besides, anyone launching an NFT doesn’t need a developer to do it, as there is robust tooling to accomplish this. A developer who wishes to integrate with an NFT can learn everything they need to know in our ERC-721 tutorial and ERC-721 Enumerable tutorial. Additionally, anyone who has mastered ERC-20s to degree this bootcamp trains, ERC-721 will be a walk in the park. With few exceptions, NFTs tend to exist in isolation. So “mastering” NFTs does not set the student up for mastering further topics, as very few topics depend on understanding NFTs. However, picking the right topics to study is only the first step - the second step is making sure you actually learn these topics.

How we design our assignments

We learned through experience that “project-based learning” is an inefficient use of time. We replaced it with “exercise-driven training”.

Many educators misatakenly confuse “learning by doing” with “project based learning”. It’s better to work on exercises that are designed to give rapid feedback rather than leave students to explore on their own and get delayed feedback as to whether they understood a concept correctly or not.

Here is why project-based learning is suboptimal

To get a project to function, there is a strong temptation is to copy working code from Stack Overflow or an LLM without understanding how it works. This is fine for a job or hackathon where you are evaluated on shipping features rather than knowing what you are doing. But it is counterproductive for efficient learning as your time is spent expertly crafting your Google search or LLM prompt instead of internalizing a design pattern.

People learn faster when they get direct feedback on their mistakes. A “functional” project doesn’t give as much feedback as targeted exercises do. We design our course to maximize feedback. Our exercises are designed to “bite-back” quickly even if a small mistake is made.

Instead, we ask engineers to write code we have already prepared aggressive unit tests for. When the engineer forgets to include a safety feature or deviates from best-practices, the unit tests will give rapid feedback for the engineer to course correct. On top of that, we have 1-1 code reviews with the instructor, but a pre-existing unit test will always provide faster feedback than an instructor can. In our course, you get the best of both worlds.

Even professional code reviewers (aka auditors) miss issues in large codebases; it’s very hard to reliably catch every mistake a coder makes. If an engineer learns by creating several projects, but makes more than a few uncaught mistakes, this can lead to engineers creating several projects while also unconsciously enforcing bad habits. That’s why we scope our exercises down to where the number of mistakes that could be made are limited and easy to catch.

We learned through experience that “project-based learning” is an inefficient use of time. We replaced it with “exercise-driven training”.

Summary

Old Method

  • Delayed feedback on mistakes
  • Important topics can be missed
  • Random exploration
  • Waste time on less important knowledge

RareSkills Method

  • Instant feedback on mistakes
  • Guaranteed to drill the important subject
  • Practice subjects from multiple angles
  • Concentrate on high-impact knowledge

Join Our Solidity Bootcamp

Next Cohort:
19th August 2025
9:00 AM EDT
Apply Now

Over 1,000 Stars

Check Our GitHub

See some of the exercises we use for training developers and auditors.
View Github
We encourage you to dig through the rest of our repositories to find hidden gems!

Meet Your Mentor

Your Instructor

Jeffrey Scholz

Jeffrey Scholz, founder of RareSkills, was Yahoo’s youngest senior engineering manager, building its video machine learning team and earning two AI patents. His work at RareSkills has helped 100s of engineers land roles at top blockchain companies, and the author of the popular The RareSkills Book of ZK. He holds a Masters degree in computational theory from Columbia University.

Welcome Onboard

Onboarding Process

1

Apply To Enroll

2

Interview

3

Payment

4

Course Access

5

Attend Class

Flexible Plans

Solidity Bootcamp Pricing

Next Cohort:
19th August 2025
19th August 2025

$3,000/upfront
$1,125 × 3/monthly
  • 11 × Weeks Live Classes
  • Small Class Size (10 students)
  • 11 × 1-on-1 Code Reviews & Mentoring Sessions
  • Pre-course Material
  • Course Material (Lifetime Access)
  • Weekly Office Hours (Lifetime Access)
  • Access to the RareSkills Slack and Discord Community (Lifetime Access)
Apply Now
Save 2% if you pay with USDC or USDT

Making Their Mark

Our Impressive Alumni

Highest earning security researcher in Cantina, with over $600,000 in earnings.
Zigtur
Joined zkSync, Shortly After Completing Our ZK Bootcamp.
Rahul Saxena
Landed a Job in Coinbase, shortly after completing our Course.
Darian Chan
Co-authored ERC-3643 & Worked as a tech lead at PolyTrade & Biconomy.
Adam Boudjemaa
DevRel at Chainlink
Andrej Rakic
Hired as a Zero-Knowledge Security Researcher at zkSecurity after completing the ZK bootcamp
Marco Besier
Achieved a Top 10 finish in the Reserve Protocol competition
agent3blood
Co-founded Kwenta, which was later acquired by Synthetix
etnom
Former Privacy Scaling Engineer at the Ethereum Foundation, now Lead Engineer at Cryptex Finance
crisgarner.eth
Serving as Blockchain Lead at the Fantom Foundation
Evgenii Danilenko

Everything You Need To Know

Frequently Asked Questions

This program is for busy engineers who want to upskill in Solidity, but have a job that keeps them busy. Learners who feel stuck in a “doom loop” of studying Solidity but still not being able to make sense of large codebases will also benefit from this.

Here is how you know if this program is a good fit or not:

  • You value active learning and deliberate practice over passive content consumption
  • You see value in trading money to gain higher ROI on your time
  • You see time as limited and precious commodity, but money as uncapped
  • You want to cover knowledge gaps in Solidity
  • You have some other obligation that limits the amount of time and energy you can put into upskilling
  • If you have a lot of time on your hands, we recommend working through the puzzles on our Github and going through our Solidity developer Roadmap.

Please note, there is no “secret tutorials” that we save for our premium members. What you are paying for is instructor time and lifetime access to one of the most respected communities in Web3.

There is absolutely nothing stoping you from working through the exercises on your own and reading the relevant blog articles on RareSkills!

The majority of people who use RareSkills to upskill only use our free material, so it’s perfectly fine if that’s you.

Our claim is you can develop a deep level of understanding of all the subjects listed above in 77 hours using this bootcamp (7 hours per week over 11 weeks). We’ve seen engineers put over 150 hours into study on their own and not achieve the outcomes of this course. So if this course saves you 73 hours (150 – 77) on your learning journey, then you can decide based on your hourly rate, whether this is positive ROI for you.

You should also consider the *likelihood* of completing all the materials as quickly independently as opposed to a community. “Accountability” can be a scary word, but you can also think of this course as “outsourced motivation to stick to an important habit.” In our view, that is a high ROI way to spend money.

Absolutely. RareSkills is the #1 resource for auditors in Web3. Auditors from very established audit firms (such as OpenZeppelin, Consensys, Spearbit, Sherlock, Certora, Immunefi etc) read our materials regularly and frequently cite our articles in audit reports.

Although this isn’t a “security” course per-se, you will still get a lot of practice spotting realistic bugs in production code.

That said, we cannot provide any guarantees about how successful your security career will be — although we should point out that some of our alumni have been *wildly* successful.

For Tokens to DeFi, you should have coded an ERC-20 before, or an NFT.

If you are completely new to Solidity, please spend two weeks on our free Learn Solidity tutorial.

If we think you are a potential fit, we will reach out to you for an interview.

No. Job guarantees are a marketing gimmick. Your career is completely your responsibility and it cannot be delegated for a price.

We run a Web3 engineering recruitment agency and have directly helped dozens of engineers get new jobs, both from this bootcamp and from non-students who join our recruitment agency through other channels.

We have direct relationships with some of the most influential companies in the Web3 space (meaning we talk with their founders regularly, not that we decided to slap their logo on our website). So we *know* what we are talking about here.

Employers overwhelmingly care about past production experience with Web3. Your “certificates” and “courses” hold zero weight.

This obviously creates a significant chick-and-egg problem for engineers who didn’t join Web3 more than two years ago!

You break the chicken-and-egg problem of experience by repeatedly proving your smart contract skills in a competitive environment such as a hackathon, smart contract security audit contest, or by delivering on grants or bounties for blockchain foundations. You don’t break the chicken-and-egg problem by getting a certificate. There is no industry-recognized certificate that accomplishes it.

Fundamentally, you need to prove you are better than other engineers who want the same job, which can only be done in a competitive setting.

By proving yourself in a competitive setting, you show that you have more of a measurable skill than other candidates and that you have higher intrinsic motivation.

If you are just looking for a new blockchain job, please note that you do not need to be a RareSkills student to use our recruitment agency. You do not need to pay anything or be part of the RareSkills community to use our recruitment services. Fill out the form in RareTalent. If we accept your application, you will get a free 30 minute consultation to work on your resume.

A business quarter has 13 weeks. Since our customers are working professionals for the most part, we find they can accurately forecast their availability up to one quarter in advance, then things become unpredictable.

Therefore, we make our course 11 weeks long to buffer for holidays or major conferences. During major web3 developer conferences (such as Devcon), we may institute a week long vacation for the course and pick up where we left off the week after.

We take vacations during Lunar New Year, New Year, and Christmas week. If a class falls on Eid al-Fitr, Diwali, Thanksgiving, or Good Friday, the class may be postponed depending on the preferences of the class. All postponed classes will be made up for.

Please connect with us here.

Apply Now