Skip to main content
Try out the RareSkills ZK AI Tutor!

Blog

The technical content top engineers rely on to level up.

Books

RareSkills Tutorials

Full-length tutorials on the most in-demand skills in Web3.

The RareSkills Book of Zero Knowledge

The RareSkills Book of Zero Knowledge

This is the most programmer-friendly zero knowledge proof tutorial available.

View Tutorial
Formal Verification with Certora

Formal Verification with Certora

Formally verify smart contracts using the Certora Verification Language and Certora Prover.

View Tutorial
Uniswap V2 Book by RareSkills

Uniswap V2 Book by RareSkills

The Uniswap V2 Book is a comprehensive and in-depth explanation of the codebase. We don’t just screenshot the code and walk you through line by line. Hopefully you can already read code! We motivate why it was written that way in the first place, what the possible alternatives are, and the motivation behind the decisions.

View Tutorial
Compound V3 Book by RareSkills

Compound V3 Book by RareSkills

Compound Finance is the most forked DeFi lending protocol. By learning the Compound Finance codebase and tokenomics in depth, you will be able to understand dozens of other lending protocols and be able to navigate their codebases more efficiently.

View Tutorial
Mastering Uniswap V3

Mastering Uniswap V3

Uniswap V3 innovated the concept of concentrated liquidity. Concentrated liquidity allows traders to get better trade executions and enables liquidity providers to earn higher fees relative to a traditional xy = k AMM. As such, Uniswap V3 turned concentrated liquidity into a very popular DeFi primitive.

View Tutorial
Book of Proxy Patterns and Delegatecall

Book of Proxy Patterns and Delegatecall

The most comprehensive guide to smart contract upgradeability.

View Tutorial
60 Days of Solana

60 Days of Solana

This Solana course is designed for engineers with a beginner or intermediate background in Ethereum or EVM development to get up to speed quickly with Solana program development.

View Tutorial
Mastering Cairo

Mastering Cairo

A concise, developer-friendly tutorial series that helps Solidity and other experienced programmers quickly learn Cairo and build smart contracts on Starknet, no prior ZK knowledge required.

View Tutorial
The Ultimate Solidity Course

The Ultimate Solidity Course

A high quality, in depth Solidity course for experienced developers, free, comprehensive, and trusted by smart contract security experts.

View Tutorial
ICP for EVM Developers

ICP for EVM Developers

This course helps engineers with an Ethereum background quickly grasp smart contract development on the Internet Computer Protocol (ICP). Our goal is to streamline your journey towards learning how to program ICP smart contracts and utilize ICP’s Chain Fusion Technology

View Tutorial

8 min read

Number Theoretic Transform (NTT)

Number Theoretic Transform (NTT) The Number Theoretic Transform (NTT) is an algorithm for evaluating a polynomial in a finite field on n values in O(n log n) time. Normally, evaluating a polynomial...

Last updated onJul 1, 2026
Read Article

6 min read

Signal Flow Graphs

Signal Flow Graphs An algorithm or an algebraic expression can be visually represented through a Signal Flow Graph (SFG). In this chapter, we will: Illustrate what a signal flow graph looks like....

Last updated onJun 17, 2026
Read Article

11 min read

Using the Convolution Theorem to Prove Equivalence Between Multiplication in Coefficient Form and Point Form

Using Convolution Theorem to Prove Equivalence Between Multiplication in Coefficient Form and Point Form At the beginning of this series, we argued that the multiplication of two polynomials of...

Last updated onJun 16, 2026
Read Article

7 min read

INTT Algorithm by Hand

INTT Algorithm by Hand As seen in the previous article, the Inverse Number Theoretic Transform (INTT) is performed using a Vandermonde matrix, just like the NTT. This shows that both evaluation via...

Last updated onMay 5, 2026
Read Article

13 min read

Proof that the Inverse of a Vandermonde Matrix Is Another Vandermonde Matrix

Proof that the Inverse of a Vandermonde Matrix Is Another Vandermonde Matrix In the previous chapter on the Inverse Number Theoretic Transform, we claimed that the inverse of the Vandermonde matrix...

Last updated onMay 2, 2026
Read Article

11 min read

The Inverse Number Theoretic Transform

The Inverse Number Theoretic Transform In the previous chapters, we studied the Number Theoretic Transform (NTT), which evaluates a polynomial at its $k$-th roots of unity. It can be understood as...

Last updated onApr 29, 2026
Read Article

7 min read

Native Multicall

Native Multicall Native multicall is Starknet's ability to bundle multiple contract calls into a single atomic transaction. Some decentralized application workflows require signing multiple...

Last updated onApr 26, 2026
Read Article

17 min read

Account Abstraction

Account Abstraction On Ethereum, accounts are Externally Owned Accounts (EOAs) by default. Each account is controlled by a private key, and if it's compromised, there's no way to limit the damage or...

Last updated onApr 26, 2026
Read Article

10 min read

Pragma Oracle

Pragma Oracle Pragma is an oracle protocol built for Starknet that brings off-chain price data on-chain. It provides price feeds and computational feeds (such as yield curves and volatility data). In...

Last updated onApr 26, 2026
Read Article

9 min read

Upgrading Contracts on Starknet

Upgrading Contracts on Starknet On Ethereum, the proxy pattern is the most common approach for contract upgradeability. In this pattern, a proxy contract holds the contract's storage and delegates...

Last updated onApr 26, 2026
Read Article

17 min read

Components 3

Components 3 In Component Part 1, we learned how to create and use a component within a contract, and demonstrated that components behave like abstract contracts in Solidity. In Component Part 2, we...

Last updated onApr 25, 2026
Read Article

5 min read

Library call on Starknet

Library call on Starknet A library call executes the logic of a declared contract class in the context and storage of the contract that invokes it. This is similar to Solidity’s but uses class hashes...

Last updated onMay 14, 2026
Read Article