The technical content top engineers rely on to level up.
5 min read
Deleting and Closing Accounts and Programs in Solana !Hero image showing Close accounts and programs In the Anchor framework for Solana, is the opposite of (initializing an account in Anchor) — it...
8 min read
Introduction to Solana Compute Units and Transaction Fees !Solana Compute Units In Ethereum, the price of a transaction is computed as $\text{gasUsed} \times \text{gasPrice}$. This tells us how much...
7 min read
Modifying accounts using different signers !Hero image showing Anchor Signer: Modifying accounts with different signers In our Solana tutorials thus far, we've only had one account initialize and...
10 min read
Zero Knowledge Multiplication Zero Knowledge Multiplication of Polynomials Using the polynomial commitment scheme from the previous chapter, a prover can show that they have three polynomials $l(x)$,...
6 min read
Polynomial Commitments Via Pedersen Commitments A polynomial commitment is a mechanism by which a prover can convince a verifier a polynomial $p(x)$ has an evaluation $y = p(x)$ at point $x$ without...
17 min read
Try Catch and all the ways Solidity can revert This article describes all the kinds of errors that can happen when a smart contract is called, and how the Solidity Try / Catch block responds (or...
12 min read
The Beacon Proxy Pattern Explained !Beacon Proxy Pattern Banner by RareSkills A Beacon Proxy is a smart contract upgrade pattern where multiple proxies use the same implementation contract, and all...
12 min read
Storage Slots in Solidity: Storage Allocation and Low-level assembly storage operations This article examines the storage architecture of the Ethereum Smart Contracts. It explains how variables are...
10 min read
Over 150 interview questions for Ethereum Developers All of these questions can be answered in three sentences or less. Easy What is the difference between private, internal, public, and external...
6 min read
AliasCheck and Num2Bits_strict in Circomlib An alias bug in Circom (or any ZK circuit language) occurs when a binary array of signals encodes a number larger than the field element can hold. We will...
12 min read
The initializable smart contract design pattern Initializers are how upgradeable contracts achieve the behavior of a constructor. When deploying contracts, it's common to call a constructor to...
11 min read
ERC-7201 Storage Namespaces Explained ERC-7201 (formerly EIP-7201) is a standard for grouping storage variables together by a common identifier called a namespace, and also to document the group of...