Browse all Smart Contract Security articles.
20 min read
ERC-1155 Multi Token Standard The ERC-1155 standard describes how to create both fungible and non-fungible tokens then incorporate them into a single smart contract. This saves significant deployment...
22 min read
Storage Slots of Dynamic Types (Mappings, Arrays, Strings, Bytes) Dynamic-sized types in Solidity (sometimes referred to as complex types) are data types with variable size. They include mappings,...
16 min read
Assembly revert Reverting transactions using inline assembly can be more gas-efficient than using the high-level Solidity or statement. In this guide, we’ll explore how the different types of reverts...
15 min read
Smart Contract Foundry Upgrades with the OpenZeppelin Plugin Upgrading a smart contract is a multistep and error-prone process, so to minimize the chances of human error, it is desirable to use a...
12 min read
UUPS: Universal Upgradeable Proxy Standard (ERC-1822) The UUPS pattern is a proxy pattern where the upgrade function resides in the implementation contract, but changes the implementation address...
16 min read
20 Common Solidity Beginner Mistakes Our intent is not to be patronizing towards developers early in their journey with this article. Having reviewed code from numerous Solidity developers, we’ve...
4 min read
UniswapV2Library Code Walkthrough UniswapV2Library The Uniswap V2 Library simplifies some interactions with pair contracts and is used heavily by the Router contracts. It contains eight functions...
10 min read
Initializing Accounts in Solana and Anchor !Storage in Solana Up until this point, none of our tutorials have used "storage variables" or stored anything permanent. In Solidity and Ethereum, a more...
5 min read
Read account data with Solana web3 js and Anchor !Read Account Data This tutorial shows how to read account data directly from the Solana web3 Javascript client so that a web app could read it on the...
6 min read
PDA (Program Derived Address) vs Keypair Account in Solana !Hero image showing PDA (Program Derived Address v.s. Keypair accounts) A program derived address (PDA) is an account whose address is...
6 min read
Tx.origin, msg.sender, and onlyOwner in Solana: identifying the caller !tx.origin msg.sender onlyOwner in Solana In Solidity, the is a global variable that represents the address that called or...
4 min read
Solana logs, "events," and transaction history !Solana logs, "events," and transaction history Solana programs can emit events similar to how Ethereum emits events, though there are some differences...