insights from a blockchain developer, researcher & investor
exploring emerging opportunities in decentralized finance
AutoGPT is an open source app that uses ChatGPT and several other plugin based modules to carry out every step needed to achieve a goal. AutoGPT is capable of interacting with 3rd party software and services both external such as the web and APIs and internal like spreadsheet apps. AutoGPT vs ChatGPT AutoGPT is a…
Hackathons are a great way to socialise with other developers and build projects over a short period of time for fun and profit. James On YouTube Watch On YouTube: https://youtu.be/mnBofeo1Ib0 |Subscribe Work on something you are passionate about This starts with choosing a hackathon that is based on tech that you are interested in. I’m…
Frax is a growing ecosystem of DeFi products built on Ethereum. This is a write up of my internal research notes, this is not a sponsored post and I have no stake currently in Frax or FXS. What Is Frax? Founded in 2019 by Jason Huan, Sam Kazemian & Travis Moore. Frax has a legal…
Bitcoin is a monolithic blockchain, consensus is achieved on a single chain where all state data is stored. The Cosmos ecosystem is an example of a polylithic chain where there are multiple sub-chains running under a single consensus client. Monolithic Blockchains Monolithic blockchains are single-chain protocols where all functionalities including programmability through smart contracts, consensus…
This Web3 investment thesis covers the potential disruption from decentralized permissionless computing. As blockchains scale it’s going to be possible to use smart contracts to enable users to store their own data creating the opportunity for a new era of decentralized applications. Web3 Disrupting Data Web3 disrupts the way we store data online by using…
Since the 2018 ICO bust, venture capital funding has become the primary avenue for blockchain startups to raise money. This comes with pros & cons which we will explore in this article alongside how raising capital works in the blockchain sector. How Private Funding Rounds Work During a private funding round the founders of a…
With the growing popularity of digital assets and decentralized finance, blockchain jobs are becoming increasingly lucrative and desirable. If you’re looking for a career with the potential for innovation, challenge, and outstanding opportunity, this list will guide you though the different jobs in the blockchain sector and what to expect. Executive Blockchain Jobs The founders…
Trading DeFi Futures products on decentralized exchanges such as GMX and DyDx has never been easier. The user experience is getting close to on par with centralized exchanges. Liquidity however, not so much… In this article we will look at how DeFi futures work, the market opportunity for decentralized futures exchanges and the two most…
ERC4337 is an Ethereum standard that achieves account abstraction on the protocol without any consensus-layer changes. Deployed on the Ethereum mainnet in March 2023, ERC4337 makes it possible to transact and create contracts in a single contract account. Account abstraction opens the door to user-friendly crypto wallet designs that could potentially facilitate broader adoption. How…
CAP Theorem states that a distributed system can deliver only two of three desired characteristics: Consistency, Availability, and Partition tolerance. In this article I’ll explore what CAP theorem is and how it relates to blockchain technology. What is CAP Theorem CAP theorem, was introduced by Eric Brewer in 1998 and proven as a theorem in…
Bitcoin ordinals are a means of creating NFTs by attaching data such as images, videos, and more to an individual satoshi on the base Bitcoin blockchain. They use an arbitrary but logical ordering system called ordinal theory to give each individual Bitcoin satoshi a unique non-fungible reference. What Are Bitcoin Ordinals? Bitcoin ordinals, also known…
Solidity and Vyper are the two most popular programming languages for blockchain developers on Ethereum. Both of these languages have their own strengths and weaknesses which we will go through to help developers decide which is best suited for their project. Solidity Solidity is the most widely used programming language for developing smart contracts on…
Autonomous AI agents are often considered the most dangerous form of AI, as they have the capacity to evolve to meet their developers goals. In this article we will explore how autonomous AI agents work, the potential for this technology and question some implications in it’s inevitable roll out. How Autonomous AI Agents Work Autonomous…
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…
EigenLayer is a protocol which allows Ethereum stakers to restake their ETH. This is a write up of my internal research notes, this is not a sponsored post and I have no stake currently in EigenLayer. EigenLayer is being developed by EigenLabs which is headed by CEO Sreeram Kannan. Sreeram has an academic background and…
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…
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…
Renegade is a new type of decentralized exchange that utilizes a dark pool to provide MEV resistant private transactions. This is a write up of my personal research, is not a sponsored post and I currently hold no stake in Renegade. What Is Renegade? The Renegade whitepaper was authored by Christopher Bender and Joseph Kraut.…
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…
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…
GammaSwap is a decentralized exchange that allows perpetual leverage trading on any token without liquidation risk from price movement, while also offering additional yield to liquidity providers through borrow fees. In this article I will write up my internal research notes, this is not a sponsored post and I currently have no stake in GammaSwap.…
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…
Ricsson Ngo took inspiration from Uniswap and set out to build a permissionless money market. The idea evolved into Timeswap which recently launched on Arbitrum. In this article I’ll write up my own notes and internal research on the protocol. Note this is not a sponsored post and I don’t currently hold any stake in…
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…