insights from a blockchain developer, researcher & investor
exploring emerging opportunities in decentralized finance
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 […]
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 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 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 […]
On the 31st March 2023 Twitter open-sourced large sections of it’s algorithm which ranks content. This provided refreshing insights into how large scale social media applications rank content. In this article I’m going to look at how the algorithm works and how content creators can use this new information to gain more reach and influence. […]
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 […]
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 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 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 […]
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 […]
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 […]
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 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 […]
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 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 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 […]
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 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 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 […]
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 […]
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 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 […]
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 […]
Carbon credits are used to tokenise finances put towards carbon offsetting. On-chain products often have a purchase and burn mechanism where a user must first purchase the token on a DEX and then manually execute a transaction to burn the token. I had the idea to create a automatically depleting token which you just hold […]
zkEVM is a zero knowledge Ethereum virtual machine, credited as being “the ultimate solution to Ethereum scaling” The Ethereum ecosystem continues to grow alongside concerns around its scalability and privacy. A new technology currently being rolled out aims to address these issues through the implementation of zero-knowledge rollups. In this article, we’ll take a closer […]
This article is aimed at providing an overview summary of what was talked about at ETHDenver and some of the things I picked up while being there. Buzz Word Bingo I took the schedule and ran through how many talks there were on each of these subjects. Buzz Word No. Of Talks Zero Knowledge 18 […]
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 […]
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: […]
Staking Ethereum has become a popular way for crypto investors to earn passive returns on their holdings. Liquid staking tokens like stETH make this process easily accessible. You can buy staking tokens and effortlessly enjoy the rewards of staking Ethereum without having to manage the technicalities of running a node. Lido Finance were first to […]
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 […]
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 […]
Once viewed as a fringe market for tech-savvy libertarians, the crypto market has grown exponentially in recent years and is now being recognized as a legitimate asset class by mainstream investors. As we move into 2023, the crypto market is at a crucial juncture, with the potential to continue its explosive growth or face regulatory […]
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 […]
The Psychology of Money by Morgan Housel covers personal finance from the perspective of a middle aged American value investor. It offers some interesting insights into long-term investing mindsets and the psychology of why we make investment decisions. Evolution of Personal Finance Western economies have seen a transition in the way we work from manual […]
Mean Finance is a DeFi protocol that enables users to dollar cost average (DCA) into a position for an ERC-20 token. In this article we will look at why dollar cost averaging is useful and how Mean Finance works. Why Dollar Cost Average Dollar cost averaging is an investment strategy that simply breaks a entry […]
In this article we are going to look at how to send messages or data from one chain to another. In this LayerZero example we will be sending a string from Ethereum’s Goerli Testnet to Optimisms Layer 2 Goerli Testnet. Cross-Chain Tutorial Video James On YouTube Watch On YouTube: https://youtu.be/rKVhQHmljXM |Subscribe How LayerZero Works LayerZero […]
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 […]
Railgun just announced the launch of version 2.0 this week and in this article we are going to explore the zero knowledge wallet and discuss why privacy protocols are important. In August 2022 Alexey Pertsev was arrested and he has been imprisoned without trial ever since. He was a developer on a ZK mixer called […]
In this article I’m going to provide a timeframe, gantt chart and budget costs for web3 development projects. This assumes a medium sized project for something like a new, innovative DeFi protocol consisting of 5-10 interconnected smart contracts and around 1000 lines of code plus an external audit and dApp frontend. If you are just […]
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: […]
In November 2022 the world’s second largest cryptocurrency exchange FTX collapsed, stopped withdrawals and filed for bankruptcy. The stories of the last week are so far-fetched they deserve a Netflix documentary. Here we will look at how FTX was able to defraud the crypto industry of somewhere in the region of $10 Billion US dollars. […]
In this article we will look at what POAPs are and how their technology is built on top of NFT standards. We will also look at how to create simple POAPs and NFTs. In the conclusion I’ve put together some thoughts on why I think POAPs should only be used for fun and not for […]
Below I’ve shared an example SAFT legal agreement and a smart contract which can be used to lock up tokens. James On YouTube Watch On YouTube: https://youtu.be/hpsegda6gvo |Subscribe What Is A SAFT? A SAFT is a simple agreement for future tokens. It is used primarily for blockchain projects to sell tokens at an early stage […]
In this post I’m going to try to summarise some of the most interesting talks at from DevCon 2022. Here’s a video summary about the key takeaways from the conference. James On YouTube Watch On YouTube: https://youtu.be/kgiAV7z1fwo |Subscribe The main topics for this years event were: One of the best things about the event is […]
This video course provides a complete introduction to Web3 development. The Web3 tutorial starts with a simple Hello World smart contract and React frontend before diving in to create something useful on Ethereum mainnet. Introduction To Web3 Development James On YouTube Watch On YouTube: https://youtu.be/RwuG9HluFQY |Subscribe Hello World Smart Contract James On YouTube Watch On […]
Resonate Finance is building a protocol for the creation and sale of yield futures. In this article we will look at what yield futures are, how they can benefit a projects tokenomics & why investors might find them attractive. This post isn’t sponsored and I currently have no stake in Resonate Finance or Revest at […]
A token factory contract is used to deploy tokens from a parent contract within Solidity. In this simple example we will be deploying an ERC20 token from our factory contract. James On YouTube Watch On YouTube: https://youtu.be/MY9SoGPGVoo |Subscribe Full source code below and on Github: https://github.com/jamesbachini/Token-Factory-Tutorial We start with a standard ERC20 token using the […]
Once or twice a year the crypto markets align to provide exceptional trading volumes and volatility. I believe the Ethereum merge will presents one such opportunity for low time frame system trading. James On YouTube Watch On YouTube: https://youtu.be/3ltpF4UGir4 |Subscribe About The Ethereum Merge The merge is happening in just a few days. This is […]
Nation states across the world are exploring CBDC’s (central bank digital currency). Many governments including France, Canada, Saudi Arabia & China have pilot schemes already in place. The US dollar is the global reserve currency, it’s used throughout the world as a base asset and more recently as a political weapon in the form of […]
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 […]