Tutorials
-
Understanding The Fallback & Receive Functions In Solidity
Among Solidity’s essential features are the fallback and receive functions, which play crucial roles in handling Ether transactions and contract interactions. A thorough understanding of these functions is vital for developers aiming to create robust and secure smart contracts. The Fallback Function In Solidity, the fallback function is a unique, unnamed function that executes under…
-
Programmatic Stellar Transfers
In this tutorial we will be setting up scripts to send and monitor transfers on the Stellar network. James On YouTube Watch On YouTube: https://youtu.be/gVC5ijif2-0 | Subscribe I’ll be using Node.js and the Stellar-SDK library. All the code is open source and you can fork the repository here: https://github.com/jamesbachini/Stellar-Cross-Border-Test There are two scripts, send.js and receive.js, created to…
-
How Often Should I Rebalance My Portfolio
In this tutorial I modelled the optimal rebalancing frequency for a digital asset portfolio holding: This is a 60/40 crypto portfolio which I’ve discussed before. You can run the code with different assets (anything with a historical price feed). Starting with a $10,000 initial investment, the code allocates the funds accordingly and tracks performance over…
-
Creating Custom Solidity Libraries For Reusable Code
Solidity libraries enable blockchain developers to create modular reusable code. This shared usage avoids duplicating code, saves gas during deployment and promotes consistency within a code base. Let’s create a basic library that demonstrates how this works: This code defines a simple smart contract that utilises a library for basic arithmetic operations. The MyMath library…
-
Automating Web3 Interactions In Rust | Minting Ethereum NFT’s With Ethers-rs
In this tutorial we are going to be deploying a simple NFT contract to Ethereum and then minting new NFT’s using a bot built with Rust and ethers-rs Let’s start by heading to Remix and deploying this contract to Ethereum’s Sepolia testnet. It has already been deployed here if you want to skip this step:…
-
Building A Cross Chain Token Bridge With LayerZero v2
This tutorial will guide you through the process of building a token bridge using LayerZero v2, specifically employing the OFTAdapter on mainnet and the OFT.sol contract on all other chains. We’ll cover the setup and deployment workflow, ensuring you have a comprehensive understanding of the process. Before we delve into the deployment process, it’s crucial…
-
Practical Applications Of Merkle Trees
Merkle trees are a useful tool for blockchain developers offering a myriad of benefits, chief among them being the efficient verification of large data sets and proof of inclusion. By leveraging Merkle trees developers can significantly optimise gas costs and enhance the overall performance of their decentralised applications. In this article we will look at…
-
How To Connect An Arduino To A Soroban Smart Contract
This tutorial will guide you through the process of connecting an Arduino to a Soroban smart contract on the Stellar blockchain. We’ll create a system where blockchain events can trigger physical actions through an Arduino. James On YouTube Watch On YouTube: https://youtu.be/C4a9O7AFAVc | Subscribe All the code for this project is open source at: https://github.com/jamesbachini/Arduino-Soroban-Controller…
-
Implementing RBAC Patterns in Solidity
We can implement role based access control or RBAC patterns in Solidity using OpenZeppelin’s AccessControl.sol library. This allows developers to manage different roles and assign permissions dynamically. Here’s a step by step guide based on the information provided. Understanding Roles in Access Control The essence of RBAC in Solidity involves defining roles, where each role…
-
Tokenomics 101 Designing Effective Token Models
Tokenomics Fundamentals Tokenomics refers to the economic model and framework that governs the use, distribution, and value of tokens. At its core, tokenomics is the study of the supply and demand of tokens, how they incentivise users and developers, and the role they play in driving network effects. Unlike traditional currencies, tokens are highly versatile…
-
A Simple Browser Resource Monitor
This single index.html file can be uploaded to any web server, run locally, or accessed here: https://jamesbachini.com/misc/browser-resources.html It enables web developers to monitor browser resources over time and test different devices processing abilities. The dashboard first collects and presents fundamental system information, providing context about the environment in which the application operates. This data includes:…
-
Stellar Soroban Boilerplate
In this tutorial I’m going to go through the code for a boilerplate which connects a Soroban smart contract to a React dApp. Note that for a more full featured demo app you can check out the excellent Scaffold Soroban at: https://developers.stellar.org/docs/learn/interactive/dapps/scaffold-soroban There is also this from the guys at Palta Labs:https://create-soroban-dapp.paltalabs.io/ James On YouTube…
-
Encrypting Private Keys in .env
It has become very normalised to store Ethereum private keys in plain text within .env files. While this is convenient, it’s a disaster waiting to happen when working in production with wallets that contain real funds. Today, I’ll show you a better way to manage your hot wallet keys using AES encryption. Full code for…
-
Creating WASM Files Using Rust and Running Them in the Browser
In this tutorial we will be writing some code in Rust, compiling to web assembly (WASM) and then running that code in a browser. This enables high performance applications to be run within a web dev setting. In this tutorial I’ll be using windows subsystem for Linux. Let’s first install Rust and wasm-pack (more instructions…
-
Understanding ABI Encoding: A Guide to abi.encodeCall and encodeWithSelector
What Is ABI Encoding Application Binary Interface (ABI) encoding is a crucial concept in Ethereum smart contract development. It serves as a standardised method for encoding function calls and data, enabling seamless communication between different components of the Ethereum ecosystem. ABI encoding ensures that data is consistently formatted and interpreted across various platforms and programming…
-
How to Host Your Own Generative AI Model with Flux
Why Host Your Own Flux Model Hosting your own AI model offers significant benefits, particularly for users who demand fine control over image generation, privacy, and customisation. Unlike public cloud-based APIs, which may impose usage limitations or fees, self-hosting gives you full control over how the model operates. You can adjust hardware configurations, implement optimised…
-
WebAuthn PassKey Smart Wallets
In this article we will take a glimpse into the future of account abstraction where web3 can offer walletless, passwordless authentication to web applications. I’ll be connecting a Stellar Soroban smart contract to a web3 frontend and verifying signatures from biometrics on your phone. Welcome to the future. The full source code used in this…
-
React Hooks Tutorial | The 7 Most Important React Hooks
React Hooks provide a way to manage state, side effects, references and more in functional components. In this tutorial, we’ll look at the seven most commonly used React hooks When You Would Use These React Hooks useStateImagine you have a piece of data in your component that might change, like a number for a counter…
-
Building Rust Smart Contracts On Stellar Soroban
Soroban is the smart contract platform that allows developers to write and deploy smart contracts on the Stellar network. This tutorial will guide you through the process of building a simple smart contract using Rust and deploying it to Soroban. I recently took on the role of Developer in Residence with Stellar and this is…
-
Pump.fun Clone In Solidity
Pump.fun is a token factory that lets users create and trade memecoins on Solana with dynamic pricing along a bonding curve. In this article I’ll show how I went about converting this concept to Solidity and deploying it on Ethereum. Full code for this is open source at: https://github.com/jamesbachini/Pump.sol Token Factory Contract At the core…
-
Creating Your Own Oracle Solidity & NodeJS
In this tutorial I’m going to go through the steps to setting up your own oracle service to bring data on-chain. We are going to be deploying a simple smart contract, then setting up a NodeJS client to fetch the price of Bitcoin, then uploading this to the contract. Full code for this is open…
-
How To Calculate Gas Costs For Solidity Contracts
Deploying Solidity smart contracts can be expensive because the code needs to be stored on the shared storage of a decentralized peer to peer blockchain network. The dollar cost of deploying Solidity smart contracts is dependent on a number of variables: I’ve previously provided code to analyze the bytecode size of contracts, you can also…
-
NFT Token Vault Solidity
This was inspired by the CryptoKitties WG0 token vault which accepts gen zero CryptoKitty deposits and mints 1 ERC20 token for each. Users can then buy tokens on exchange and claim NFT’s from the vault. The code is open source and available at: https://github.com/jamesbachini/NFTvault How The NFTvault Contract Works When you deposit your NFTs into…
-
Creating an UpOnly ERC20 Token
In this tutorial we are going to create a ponzi game in the form of an ERC20 token that has an internal marketplace function. The idea is to increase the price over time so that early buyers get to dump on late buyers at a higher price. The last buyer will have no liquidity to…
-
Solidity Encrypted Messaging dApp
This morning Pavel Durov, founder of Telegram, was arrested at a French airport for refusing to provide backdoor access to the messaging application. This tutorial will demonstrate how to use Elliptic Curve Diffie Hellman (ECDH) cryptography to establish a shared secret and encrypted messaging across a insecure communication channel, in this case a public blockchain.…
-
Solidity Virtual Pet
Let’s create a virtual pet in Solidity and deploy it to the blockchain. Full frontend and contract code for this tutorial can be found here: https://github.com/jamesbachini/Solidity-Virtual-Pet Demo here: https://jamesbachini.com/misc/SolidityPet/index.html Smart Contract Our pet is going to have two attributes for hunger and happiness. Hunger should increase over time and happiness should have a mechanism where…
-
How To Scrape Twitter/X Without API Access
Scraping Twitter/X without direct API access can be accomplished by leveraging third-party services like RapidAPI, which provides a streamlined way to interact with Twitter data. In this tutorial, we’ll walk through the process of using RapidAPI to scrape tweets from a specified user. I’m going to provide code snippets in Python and NodeJS for this…
-
Calculating Bitcoin Fair Value With Rust
In this tutorial, we will create a Rust script that: Instructions Rust Code The code is open source and available on Github: https://github.com/jamesbachini/Bitcoin-Fair-Value We’ll start with the async fetch_klines function to fetch Bitcoin price data from the Binance API. The Binance API provides various endpoints for accessing market data, and we’ll use the /api/v3/klines endpoint…
-
Can ChatGPT & Keras Predict The Price Of Bitcoin
I get asked a lot if ChatGPT can be used for trading and I normally say “no, it’s a language model which isn’t designed to find market patterns in numerical price data”. ChatGPT works more like predictive text in a search engine or on your phone but what it is good at is writing code…
-
How To Check Token Balances Using Python
To check a wallet token balance on the Ethereum blockchain using Python you will need the following: Once we have our API key ready and Python installed we can install web3.py using the following command Now let’s create a file called balance.py and add the following code. Note the code is also available in the…
-
DeFi Whale Watching Tutorial & Code
Imagine if you could tap into the strategies of top investors and see where the smart money is allocating capital? Welcome to the world of DeFi whale watching, where tracking high net worth wallets can give you the edge and open up new Whale Watching Explained DeFi whale watching involves tracking the investments of “smart…
-
DeFi Analysis With Rust
In this tutorial I’m going to provide some code and show you how to monitor the number of depositors to Eigenlayer over the last 24 hours. We will be using Rust with the Tokio and Ethers libraries along with the Infura API which you can get a free key from here. The first thing we…
-
How To Lookup An ENS Name In Python
To check a wallet token balance on the Ethereum blockchain using Python you will need the following: Once we have our API key ready and Python installed we can install web3.py using the following command Now let’s create a file called enslookup.py and add the following code. Enter your Infura API key on line 5.…
-
Building A Portfolio Tracker In Python
In this tutorial we will be building a digital asset portfolio tracking tool using python and the Coinbase API. You’ll need to install python and the following library to make requests. The code for this is open source on Github at: https://github.com/jamesbachini/Python-Portfolio-Tracker Put this in a file called portfolio.py or fork the repo above. Then…
-
Creating A Solidity Escrow Smart Contract
In this tutorial, we will create an Escrow contract using Solidity and deploy it to an Ethereum testnet. An Escrow contract is a financial agreement where a third party (the arbitrator) holds and regulates payment of the funds required for two parties involved in a given transaction. It helps make transactions more secure as it…
-
How To Create ERC404 Tokens Solidity Tutorial
An ERC404 token is a digital asset that combines the characteristics of ERC20 fungible tokens and ERC721 non-fungible tokens (aka NFT’s) to enable fractional ownership of an NFT. In essence, ERC404 tokens represent divisible parts of an NFT, allowing multiple individuals to own shares of a single NFT. This approach is designed to enhance the…
-
Vyper Tutorial | Learn Vyper In 24 Hours
Vyper is a pythonesque smart contract language that can be compiled and deployed on Ethereum and other EVM blockchains. 90%+ of blockchain devs use Solidity but there are some big projects such as Curve using Vyper and it’s growing in popularity and tooling compatibility. The best way to get started with Vyper is to head…
-
Using Vyper With Remix
You can now use Vyper (a smart contract programming language similar to python) with remix to build and deploy contracts on Ethereum and other EVM blockchains. The first step is installing the Vyper plugin at https://remix.ethereum.org/ where you’ll find a list of plugins using the icon in the bottom left. You’ll then get an extra…
-
Sell Me This Pen.sol
What happens when you ask a blockchain developer to sell you a pen? Etch your words permanently on the Ethereum blockchain where they will outlive you & create an everlasting record of your thoughts, contemplations & predictions. This is your chance to leave an eternal mark and express your presence in the digital age while…
-
How To Deploy A Website Or dApp To IPFS | Fleek Tutorial
Gm, in this tutorial we are going to be deploying a website to IPFS to create a decentralized frontend. To do this I’ll be using Fleek which has a free tier and which suits our needs. James On YouTube Watch On YouTube: https://youtu.be/https://youtu.be/DmpXbmjnpec |Subscribe We will start by getting our site on Github. We can…
-
Etherspot Account Abstraction Tutorial
I find it surprising and rare when using new technology and it just works and is intuitive. Getting up to speed with Etherspot and account abstraction is one of those rare occasions. In this tutorial I’ll show you how I created a little demo to create a smart wallet, fund it and then send batched…
-
TradingView Pine Script Examples | Master Pine Script With 6 Real World Examples
TradingView’s Pine Script coding language has emerged as the leading tool for traders looking to craft custom indicators and strategies with accuracy and ease. In this Pine Script tutorial I’ll provide a practical gateway into the intricacies of this coding language, tailored with useful examples to get you started. Whether you’re a novice coder or…
-
Solidity Proxy Contract Tutorial With Example Code
This Solidity proxy contract tutorial delves into the concept of upgradeable proxy contracts in Solidity, specifically utilizing OpenZeppelin’s proxy contract template. We’ll start with an understanding of how these contracts work, the compromise of immutable decentralization vs upgradeability and then dive into practical code examples. Proxy Contract Video Tutorial In this video I provide an…
-
Web3 Session Keys
We are going on a journey to seamlessly integrate session keys into a web3 dApp, striking a balance between autonomy and ease of use that your users are yearning for. The goal is to enable users to authenticate with a digital wallet and store a session key on their device. This session key will provide…
-
Ethers-rs Tutorial | The Rust Web3 Library
In this tutorial we will be setting up a Rust script to connect to a smart contract on a blockchain network to display on-chain data using the ethers-rs library. James On YouTube Watch On YouTube: https://youtu.be/FA7WFGtyri8 |Subscribe Let’s start by setting up a new Rust project (you’ll need rust installed on your device and I’ll…
-
How I Built A Smart Money List On Twitter
X formerly known as Twitter includes two features which allows us to create a list of accounts from people that frontrun narratives and successful trades. tl;dr if you just want to see the final list it is here: https://twitter.com/i/lists/1712044491618545903 James On YouTube Watch On YouTube: https://youtu.be/4qYraarbsYs |Subscribe Step 1. Collecting Project Data My main focus…
-
Hardhat Solidity Tutorial
Hardhat is an extensive framework for developing, testing and deploying solidity smart contracts. In this Hardhat Solidity tutorial you will learn how to set it up, how to create hardhat unit test tricks, working with hardhat scripts and finally some Hardhat tips and tricks for Solidity developers. Hardhat Easy Setup Hardhat is built on NodeJS…
-
Calculating The Intrinsic Value Of Bitcoin & Ethereum
Calculating the intrinsic value of Bitcoin, Ethereum and other digital assets is challenging due to its intangible nature. In this analysis I’m going to discuss common methods of calculating intrinsic value and then create a model using a combination of the methods. tl;dr based on the models described below: Methods Of Calculating Intrinsic Value Store…
-
The Essential Checklist For Deploying A New Token
In this article we are going to look at all the things that need doing when launching a new token to create a token deployment checklist for developers and founders. At the end there is a big list of all the token listing sites that you can submit your new token to. Unit Tests &…
-
Solidity Tutorial | Gas Paying NFT
The challenge is to create a NFT contract that charges 1 ETH to mint but then stores the entire amount as collateral in a liquid staking token. As staking rewards come in they get distributed to the holders of the NFTs. At any time a user can burn the NFT to reclaim the 1 ETH.…
-
Web3 PWA Boilerplate | How To Create Next Generation dApps
One of Web3’s biggest issues is getting around the centralization of app stores and their stringent terms on the commission requirements for digital asset payments and transfers. Progressive Web Apps (PWAs) in my opinion are the best solution as it allows you to install dApps directly on to a mobile device without using the app…
-
Using Ethereum To Offset Bitcoin’s Carbon Footprint
Never have I sounded more like an Ethereum maxi, but there is a point beyond the provocative title. In this post I’m going to explore the potential for investors to use carbon credit tokens on Ethereum to offset the electrical consumption of BTC mining on their Bitcoin holdings. This novel idea provides the opportunity to…
-
How To Shuffle A Deck Of Cards In Solidity
In this post I explore how to simulate the shuffling of a deck of cards, addressing the challenges of randomness and predictability in a solidity smart contract environment where every input and output is part of the public record. Whether you’re looking to create an on-chain poker game, a collectible card game, or you’re simply…
-
The Secrets Web3 Marketers Use To Launch New Crypto Projects
My previous background in digital marketing and now having worked in the blockchain sector for 6 years provides unique vantage point on the differences between conventional and web3 marketing. Successful crypto projects create communities of advocates who act as micro-influencers championing the cause. In this article I’ll discuss why “build it and they will come”…
-
Solana SoLang Tutorial | How To Deploy Solidity On Solana
In this SoLang tutorial I’ll show you how to deploy Solidity code on Solana. We will start by setting up a dev environment before looking at some of the nuances in writing SoLang contracts. I’ll end on a few security considerations and a comparison to developing on Solana with SoLang vs Rust. Setting Up A…
-
Gnosis Safe | The Most Secure Multisig Wallet For Your Crypto
Gnosis Safe multisig wallets are used by institutions and individuals to hold some of the largest quantities of funds on the Ethereum network. The free to use wallet includes multisignature functionality for enhanced security and control over digital assets. It is developed by Gnosis, a blockchain technology company based out of Switzerland and Germany, known…
-
3 Tips For Gas Efficient Solidity Smart Contracts
Here are 3 tips which could be considered the low hanging fruit of gas efficient solidity smart contracts. James On YouTube Watch On YouTube: https://youtu.be/xfNHzqkMWEQ |Subscribe Use Correct Modifiers & Declarations This is the simplest way to get some small wins with gas optimisation. Go through your contract and define anything that shouldn’t change as…
-
How To Create Your Own Memecoin With Solidity and Uniswap
In this tutorial we will be creating a permissionless, ERC20 memecoin and deploying it with a Uniswap v3 liquidity pool so users can buy it on the decentralized exchange. This tutorial is for demonstration purposes, don’t speculate on memecoins. James On YouTube Watch On YouTube: https://youtu.be/-bVzqtIa0bc |Subscribe The full source code for this is at:…
-
Technical Analysis For Crypto Degenerates
For cynics technical analysis is seen as astrology for middle aged white guys for others it is the holy grail, which when mastered, inevitably leads to trading success. The truth is somewhere in the middle, it is undeniable that price action reacts more at some levels than others. It’s important for anyone involved in investing…
-
Sign In With Ethereum Tutorial
To sign in with Ethereum using Metamask we will be using the ERC4361 specification that allows Ethereum accounts to authenticate with off-chain services using a standard message format. This technology offer users a self-custodial alternative to centralized identity providers that generally use email:password credentials. In Web3 applications we can improve user experiences and establish a…
-
Solidity Callback | Solidity Tips & Examples
A callback function in Solidity allows us to pass a function reference from one contract to another and have it execute as part of an atomic transaction. James On YouTube Watch On YouTube: https://youtu.be/pjm0eOelPXc |Subscribe Let’s first take a look at an example from the Solidity Snippets Github repo. Full code at: https://github.com/jamesbachini/Solidity-Snippets/blob/main/contracts/Callback.sol This code…
-
Strings in Solidity | Solidity Tips & Examples
A string in Solidity is a data type used to store text. Working with strings in Solidity can be challenging due to the limitations and efficiency required by the Ethereum virtual machine. This article aims to provide a comprehensive guide on how to use strings in Solidity, covering their properties, limitations, and best practices for…
-
Timestamp in Solidity | Solidity Tips & Examples
A timestamp is a numerical value that represents a specific moment in time. It’s often used to track when a certain event occurred or when a piece of data was created or modified. The most common way to represent a timestamp is by using the number of seconds that have elapsed since a specific moment…
-
encodeCall in Solidity | Solidity Tips & Examples
From Solidity version 0.8.11 we can use an interface to define a function to pass to encodeCall parameters. encodeCall is a function that allows you to encode a function call with its parameters into a single byte array. This byte array can then be used to make a low-level call to another contract’s function. Here…
-
Custom Error Handling in Solidity | Solidity Tips & Examples
Custom error handling enables Solidity developers to efficiently handle reverts and failed transactions including logging parameters. Let’s first take a look at an example from the Solidity Snippets Github repo: Note that the Solidity compiler version must be greater than 0.8.4 to use custom errors. Customer errors are supported by Etherscan and most other block…
-
Solidity Libraries | Solidity Tips & Examples
A solidity library is a reusable contract that contains functions that can be called by other contracts. When you import a Solidity library into your contract, you can use the functions provided by the library. How To Import Solidity Libraries In your smart contract, you can import the library by using the import keyword followed…
-
Random Numbers in Solidity | Solidity Tips & Examples
Generating a random number in Solidity is not as straightforward as in some other programming languages, because the Ethereum blockchain is deterministic, meaning that multiple execution clients or nodes must come to the same conclusion about the state of the blockchain. For many use cases using the new prevrandao global variable provides “good enough” randomness…
-
Conditional Statements & Loops in Solidity | Solidity Tips & Examples
Conditional statements & loops in Solidity are fairly intuitive and follow the conventions of other languages such as Javascript. In this article we will go through some examples of each before looking at the relational operators we can use within these statements. if statement The “if” statement is used to execute a block of code…
-
Natspec in Solidity | Solidity Tips & Examples
Natspec comments are important for Solidity developers to understand because sooner or later you will come across a code base that requires you work with them. Proponents will say Natspec makes the code more readable and understandable. While I personally disagree with this and prefer to separate code and documentation, the format is popular and…
-
ERC1155 Token Contract | Solidity Tips & Examples
ERC1155 offers a more flexible and efficient way of managing fungible and non-fungible tokens, making it an attractive option for developers who want to create complex digital assets with multiple use cases. In this blog post, we’ll dive into the details of ERC1155 and explore why it’s becoming a preferred choice for Solidity developers looking…
-
ERC721 Token Contract | Solidity Tips & Examples
The ERC721 Token contract is the original industry standard for NFTs (Non-fungible tokens). In this article we will look at a simple example and talk about some of the best practices around building ERC721 Tokens. James On YouTube Watch On YouTube: https://youtu.be/B64VBGt3tMU |Subscribe Why Use ERC721 Token ERC721 is a standard interface for NFTs on…
-
ERC20 Token Contract | Solidity Tips & Examples
ERC20 tokens have become the de facto standard for creating tokens on Ethereum and are widely used in many DeFi protocols for things like governance and utility tokens. Why Use ERC20 Token Solidity developers use ERC20 tokens because they are the industry standard for fungible tokens (where every token is equal to another one). The…
-
Merkle Tree in Solidity | Solidity Tips & Examples
Merkle Trees provide an efficient way to verify data in Solidity. This reduces the gas cost for on-chain storage when validating large data sets such as a large list of addresses. James On YouTube Watch On YouTube: https://youtu.be/NTPpyL4pJG0 |Subscribe How Do Merkle Trees Work Merkle trees are a data structure that allow efficient and secure…
-
How To Emit Events in Solidity | Solidity Tips & Examples
A Solidity Event is a way for smart contracts to communicate with the outside world by providing a mechanism for emitting messages that can be observed by external applications. It’s like a signalling message that is broadcast when a certain condition is met within the smart contract. Emitting Events In Solidity Here is a simple…
-
Bulk Send Tokens & ETH Contract | Solidity Tips & Examples
Sending payments in bulk can be a tedious and time-consuming process, especially when dealing with a large number of recipients. However, with a Solidity smart contract, bulk payments can be executed in a matter of seconds, providing a more efficient and cost-effective solution for managing bulk transfers. In this article, I will walk you through…
-
Multiple Return Values | Solidity Tips & Examples
In Solidity we can multiple return values from a function. This enables us to efficiently move data about within the application flow of a smart contract. In this example we are returning three variables enclosed within brackets. Note that the data types of these variables are defined at the top of the function in the…
-
Modifiers in Solidity | Solidity Tips & Examples
Modifiers in Solidity are a way to add a certain condition to functions within a smart contract. They allow developers to define a piece of code that can be reused across multiple functions and contracts, making your code more modular and easier to read. A modifier is defined using the modifier keyword, followed by a…
-
Struct in Solidity | Solidity Tips & Examples
A struct in Solidity is a data type that allows you to group together multiple variables of different data types into a single unit. This is useful because it gives us a convenient container to package structured data, it enables us to pack variables into memory slots more efficiently and it allows us to get…
-
Ownable Contracts | Solidity Tips & Examples
Ownable contracts in Solidity are used to implement access control for certain functions. The idea is that only the contract owner, who is typically the deployer of the contract, can execute these protected functions. To do this we will first import the OpenZeppelin library Inside our contract we can then add the onlyOwner modifier to…
-
Payable Transfers | Solidity Tips & Examples
Payable transfers are one of a number of ways to send ether from a Solidity smart contract to an external address. In this next example we create a fallback function so that any user can send this contract ether and it will get split between the different addresses. Full code at: https://github.com/jamesbachini/Solidity-Snippets/blob/main/contracts/PaymentDivider.sol Payable fails if…
-
Solidity Interface | Solidity Tips & Examples
A Solidity interface is code that provides a set of function declarations without any implementation details. Interfaces are used to interact with 3rd party contracts or external systems by defining a common set of functions that both parties agree to implement. Interfaces are used to define a contract’s external-facing functions, which is the only part…
-
OpenZeppelin Libraries | Solidity Tips & Examples
OpenZeppelin libraries are popular for building secure smart contracts on top of pre-audited code in Solidity. The framework includes a number of reusable smart contract components, such as token contracts, access control contracts, and math libraries. In this article we will explore the various Libraries available within the OpenZeppelin framework to give you a tool…
-
Arrays in Solidity | Solidity Tips & Examples
Arrays are a fundamental data structure in programming, and Solidity is no exception. In Solidity, there are several types of arrays available, including dynamic arrays, fixed-size arrays, and multi-dimensional arrays. Dynamic Arrays Dynamic arrays are the most common type of array in Solidity. These are arrays whose length can be changed during runtime. To declare…
-
Get Contract Balance | Solidity Tips & Examples
To get the contract balance in solidity there are a few different methods depending on if you want the Ether balance or an ERC20 token balance. Contract Balance Eth You can use the address type’s balance property to get the balance of any address, including the contract’s own address. The this value is used to…
-
Mapping in Solidity | Solidity Tips & Examples
This article explores how mapping in Solidity is used to for storing key->value pairs, where the keys are of a specific data type and the values can be of any data type. Mappings are declared using the mapping keyword, followed by the key data type in parentheses and the value data type after the parentheses.…
-
Variables in Solidity | Solidity Tips & Examples
Variables in Solidity can be classified into several categories based on their data types and scope. In this article we will explore all the different uses of variables in Solidity and look at some example code. Variables in Solidity Solidity variables are used to store and manipulate data in our smart contracts. They come in…
-
ERC721 vs ERC1155 | Solidity Tips & Examples
Today we will discuss the differences between ERC721 vs ERC1155 smart contracts and the use cases where each is best suited. These are the two most popular types of smart contracts used for the creation of NFTs (non-fungible tokens). James On YouTube Watch On YouTube: https://youtu.be/B64VBGt3tMU |Subscribe ERC721 Smart Contract ERC721 is the original standard…
-
The Feynman Technique 2.0
The Feynman Technique is a learning tool developed by the infamous physicist Richard Feynman. It involves breaking down complex concepts into simple terms and explaining them as if you were teaching the subject. In March 2020 Covid lockdowns were imposed and I started creating content based on what I was learning or interested about at…
-
Anonymous Developer Tutorial | How & Why You Should Code Anonymously
There are plenty of articles and content about why you should be an anonymous developer for blockchain projects but I haven’t seen much content about best practices and how to actually set up an anonymous development environment. In this article we will cover the following:- Anonymous Developer Video Tutorial James On YouTube Watch On YouTube:…
-
Advanced MidJourney Prompt Engineering | Unleash Your Inner Artist
As the leading AI image generator, MidJourney consistently produces stunning, high-quality images that range from the bizarre to the breathtaking. As someone who lacks artistic talent, I’ve taken the time to study and master this tool, and in this post I share my insights and tips for getting the most out of it. Follow my…
-
Advanced ChatGPT Prompt Engineering
By now you have probably experimented with ChatGPT and realised the huge potential this “calculator for words” has. In this article I share the results of my research on how to make the most of this powerful tool. Whether you’re using ChatGPT as a personal assistant or in a professional setting, you’ll find some valuable…
-
Remixd Tutorial | How To Take The Solidity IDE To The Next Level
I’ve gone full circle from Remix > Hardhat > Foundry > Remix I find that I enjoy coding most when I’m experimenting with ideas and proof of concepts within the Remix IDE at https://remix.ethereum.org However for more serious projects I inevitably find myself moving out of creative mode and into testing mode in either Hardhat…
-
How To Debug Solidity Smart Contracts
If you’ve ever received a “gas message” error which makes no sense in Solidity then you’ve probably come across one of it’s greatest flaws. Error reporting and debugging isn’t great for blockchain developers but in this tutorial I’m going to provide some tips, tools and resources to debug Solidity smart contracts. James On YouTube Watch…
-
Dynamic Evolving NFTs | How To Create Dynamic NFTs & dApps
Dynamic NFTs include logic that evolves the underlying data that the NFT contract holds. In this example we will build a picture profile NFT that is upgradeable to an alien 👽 All the source code for this project is available at: https://github.com/jamesbachini/WomenWhoCode Dynamic NFT Smart Contract The Solidity smart contracts will comprise of two tokens:…
-
Aligning Founders, VC’s and Stakeholders Interests In A Smart Contract
The blockchain sector prides itself on openness and transparency. Except that is when it comes to early stage VC deals and token allocations. In this article we are going to look at an experimental solidity smart contract which lays out terms, vesting schedules and milestone bonuses on-chain. Team Allocations and VC Unlock Schedules This is…
-
Dune Analytics Tutorial | How To Create A Dune Analytics Dashboard
In this Dune Analytics Tutorial we will look at how the platform works and get up to speed with creating our own queries, visualisations and dashboards to analyse and present blockchain data. Queries, Visualisations & Dashboards Dune Analytics dashboards are built using a 3 step process. First we make SQL queries to pull data into…
-
3 Examples Of How To Use Assembly In Solidity
Ethereum developers can directly use assembly in Solidity to improve the performance of their code. When OpenSea released the Seaport upgrade it reported the use of assembly reduced gas fees by 35% saving it’s users an estimated $460m per year. Today we are going to go through some simple examples of how and when to…
-
Solidity for Beginners
Solidity is the programming language used to develop smart contracts on Ethereum and other compatible blockchains. In this “Solidity for Beginners” tutorial I will take you from setting up solidity tools to deploying your first contract. James On YouTube Watch On YouTube: https://youtu.be/yM6oRMdMiTM |Subscribe Tools & Setup We will be starting in Remix which is…
-
Solidity Interface Examples | How To Connect The Lego Bricks Of DeFi
Solidity interfaces allow developers to call external contracts from within their own smart contract. This enables us to build on top of the existing DeFi ecosystem. In this tutorial we will be looking at how solidity interfaces work and going through some example code for common tasks. James On YouTube Watch On YouTube: https://youtu.be/GWZmklp7RTg |Subscribe…
-
Hardhat Plugins & Hacks For Solidity Developers
Hardhat provides a lot of features out of the box but with the addition of some 3rd party plugins and some additional code snippets we can add custom functionality to streamline our testing and migration processes. Top 3 Hardhat Plugins These plugins add a lot of functionality to make your life as a developer easier…