In my previous Year In Review I mentioned we were heading into a new crypto bull market, and you can bet that we did. I got into crypto in the middle of the 2017 bull run, so this year was the first bull market I experienced from its onset.
It has mainly been exciting to see a lot of new people enter the space and to see many crypto projects gain legitimacy and mainstream attention. But at the same time it has been difficult to keep up with all the new developments and figure out what to spend my time on.
Some DeFi tokens such as AAVE had already seen enormous growth in 2020 but many other projects also multiplied over tenfold in 2021. And though most coins have seen both ups and downs, the market as a whole has seen a lot of growth.
We saw the rise of NFTs in generative art and profile pictures and also a subsequent crash of many of these NFT projects. But while many projects are down from their highs it doesn't look like this bull market is over just yet.
A big part of my year was spent working with General Protocols on AnyHedge, the first DeFi protocol on Bitcoin Cash. This open-source protocol was first integrated into the non-custodial exchange Detoken around the new year, where it saw a volume of over $10m in just a few months.
This kind of volume is only a drop in the ocean compared to the kind of usage that ETH projects enjoy, but it was a good proof of concept to show that it's possible to do DeFi on UTXO-based chains such as BCH, albeit a very different kind.
In the summer Detoken shut down, which left AnyHedge without users. The rest of the year was spent improving the AnyHedge protocol, smart contracts and infrastructure, as well as building a new user-facing application that is set to release in 2022.
While working on AnyHedge, CashScript also received some major updates. Most importantly the entire language was overhauled for BCH's upcoming upgrade. The May 2022 network upgrade will bring multiplication and native introspection. When the upgrade hits, covenant contracts will become much more accessible, flexible and efficient. And CashScript will support it from day 1.
In my last Year in Review post I mentioned that I would be working with the Truffle team on their upcoming Filecoin integration, which was launched at the end of March. After the successful Truffle + Filecoin launch, I stuck around for another project that we dubbed the Truffle Dashboard.
Previously, deploying contracts with Truffle, Hardhat or similar tools required you to copy-paste a seed phrase to be used for the deployment. But as security guides will tell you, copy-pasting seed phrases is something you generally want to avoid.
So as an alternative, the Truffle Dashboard allows you to use your existing Metamask wallet when deploying smart contracts. I have been quietly working on the dashboard project and it is set to release early in 2022.
Halfway into the year, a friend of mine reached out about Bright Union, a project he started that offers aggregation of DeFi risk coverage. I joined the project as an advisor and I mainly help out with guidance on the Solidity side.
They had a successful product launch for their dashboard that allows you to compare different DeFi coverage products such as Nexus Mutual. They are currently working on expanding their product offering.
The biggest hype this year was definitely NFTs, or Non-Fungible Tokens. While NFTs have been around for close to five years already, 2021 is the year they really picked up steam. Some older collections like CryptoPunks have seen their valuations increase over 50 times. And other wildly successful collections like Bored Ape Yacht Club and Cool Cats were launched and grew to massive valuations within this year.
BASTARD GAN PUNKS
The first NFT collection that I personally fell in love with was BASTARD GAN PUNKS. The bastards are derived from the attributes of the original CryptoPunks. These attributes are passed through a GAN (Generative Adversarial Network) to generate completely new images.
Because the images are generated by AI, some of them look very similar to the original CryptoPunks while others look completely messed up. This has created a collection with incredible diversity and a soul of its own.
When BASTARD GAN PUNKS launched in March, they had no attributes that they could be filtered on. NFT platforms like OpenSea don't lend themselves very well for collections like that, which made it very difficult to browse the collection.
As a solution I developed the ALLBASTARDS.COM gallery that displays the entire collection in a performant infinite scroll interface. As the community added more metadata attributes to filter on, I expanded the website to include those filters.
Towards the end of the year I started work on implementing a marketplace into ALLBASTARDS.COM, which has been a feature requested by many people within the community. By the end of the year I had gotten pretty far with the implementation, but I also had less and less time, so I asked help from the community.
Since December fellow bastard Christian Reynolds has been doing great work on additional features and final touches for the marketplace. Since he came on board I have mainly been offering guidance while he has been doing most of the development.
As you may know, revoke.cash is a project that I started in 2019 that allows you to inspect and revoke all the ERC20 allowances that you've granted to DeFi protocols and other decentralised apps. I've written about this in the past (See Unlimited ERC20 allowances considered harmful), but I hadn't written about how this applies to NFTs.
With the rise of NFTs we're seeing a lot of development at the intersection of NFTs and DeFi as well. Protocols like NFTX or Fractional provide interesting use cases at this intersection. But to use these kinds of applications (or even marketplaces), you need to grant an allowance similar to the one that exists for ERC20 tokens.
As we've observed in the past, more hype also attracts more scams and exploits into the space. So with the hype that NFTs brought it was important to extend revoke.cash to enable inspecting and revoking of NFT allowances as well. I added these features in July and revoke.cash became the first platform for NFT allowances.
One big theme of NFTs this year was generative art, meaning that the artist writes an algorithm that is used to produce artworks. This combination of the artist's vision, the algorithm and the aspect of randomness can make for incredibly interesting artworks.
Some famous collections that were created last year are Tyler Hobbs' Fidenza and Dmitry Cherniak's Ringers, but there are hundreds of beautiful collections with hundreds or thousands of artworks per collection.
Seeing the beauty that these algorithms could generate I decided to dive into it myself as well. So in my spare time I have been teaching myself generative art, both through trial-and-error as well as a plethora of online resources, of which Tyler Hobbs' blog has definitely been one of the most useful.
Imperfections by Kalis
My father has been an artist for most of his life, so as I got into generative art I decided it would be a great opportunity to combine our skills and start an art project together. At first he didn't really understand what all these NFTs and generative art were about, but after showing him some existing works he was 100% convinced.
Much of my father's physical work is based around the imperfections that come with the manual execution of otherwise perfect shapes - in his case, stripes. Converting that philosophy from the physical world to a generative digital artwork is a challenge, since the execution of a computer is inherently perfect.
We're both very happy with the progress we've made on the project and the results of the algorithm as it is now. It has also been a great experience to collaborate with my father on a topic like this, since generative digital art is directly at the intersection of our two worlds - art and code.
As the world got used to COVID we slowly saw more in-person events popping up. We're definitely not back to pre-COVID levels, but there were some great gatherings this year and it looks like the number of events will be ramped up further in 2022.
NFTHack & HackMoney
The first events I attended were still digital. And while I've expressed that I don't particularly enjoy these types of events, I decided to give them another go. I enjoyed working on Radical Domains in 2020 and NFTHack presented itself as a way to work more on harberger taxes and radical markets.
With the new Radical Protocol we set out to generalise the concept of Radical Domains, but for any NFT. Applying this to existing NFTs proved harder than we initially thought, so instead we built a platform that could be used by creators to mint new NFTs under a Harberger system.
This idea landed us a grant from the Rarible DAO, which allowed us to expand this system and we used the subsequent HackMoney hackathon to further the project. While the progress was promising, we had to give up due to lack of time and resources.
Come summer, it looked like it was finally time to leave the virtual events behind, as the European Ethereum community gathered in Paris for the fourth annual Ethereum Community Conference. Interesting to note is that EthCC was also the last major conference that wasn't cancelled in 2020.
At EthCC I gave a presentation about the potential dangers of the unlimited allowance pattern that is often used in modern DeFi applications. This is a topic that I wrote about in 2020 and I had been meaning to do a conference talk about for a while now.
Overall it was great to reconnect with a bunch of people that I hadn't seen in years and to connect with some people that got into the space recently as well. But although travel had mostly opened up by that time, most attendees were still EU-based.
A couple of months after EthCC travelling became even more widespread and the next big event was the Lisbon Blockchain week, championed by Liscon and ETHLisbon. I wasn't planning to go, but in the end the Truffle team managed to convince me to come over even though I had no tickets to any of the events.
The absence of tickets proved not to be a problem at all as my days were still packed with activities. I had a lot of people to catch up with and a lot of board games to play with the Truffle team back at the hotel, so in the end it was a great success.
A more unfortunate result of the jam-packed weekend of events and meetups was that I tested positive for COVID upon returning home. So what started as a fun break ended up taking quite some time to recover from. It was a great weekend though!
🐙 Open Source
2021 has been a good year for my open source projects. truffle-plugin-verify has ended the year with almost 5x the monthly downloads and revoke.cash ended the year with more than 10x the monthly users.
truffle-plugin-verify and revoke.cash doubled their GitHub Stars while my other projects also saw some growth in stars. My NPM packages now get a combined 35k+ monthly downloads, mostly because of the tremendous growth of truffle-plugin-verify.
A big topic in my open source projects was multi-chain support. 2021 gave rise to a lot of alternative smart contract chains, such as Polygon and Avalanche. truffle-plugin-verify supports most of these alternative chains, while revoke.cash supports a few. It does look like these chains are here to stay so multi-chain support will likely need to be expanded in years to come.
As always, the power of open source is having outside contributors. And like previous years I've had some great help building my open source projects. For revoke.cash I want to thank Dawson Botsford, Merwane Drai, Daniel Heyman, Tim Robinson and Juan Andreu for their contributions.
For CashScript I want to thank Jt Freeman, Sydwell and mr-zwets for their fixes. But most of all I want to highlight Nathaniel Cherian, who implemented several very important features, including tuple assignment and date literals - all while still being in high school!
For truffle-plugin-verify I want to thank oscarmartj, Timon Peng, Jason Smythe, fredlacs, Nhan Cao, albertov19 and Christopher Yu for expanding multi-chain support. I also want to thank Miao ZhiCheng and Kyle Holzinger for expanding and improving the CLI.
📊 Focus & Priorities
One side effect of the bull market is that there's a lot more going on in the space than there was in the years prior. This means that it's inevitably unattainable to keep up with all the development - however interesting they may be. If you combine this with the overflow of new projects that are looking for contributors, it's impossible to get involved with every project - however interesting they may be.
I recently came across this quote from Pieter Levels: The only way to get what you want in life is to repeatedly say no to what you don't. And this is something I want to internalise. Even though there are a lot of things that are interesting, that doesn't mean I need to be involved with all of them.
I have always done many things at the same time, and it has always seemed counter-intuitive to say no to something that I find interesting. But in the end I only have a limited amount of time, which means that I need to be much more selective with it. And besides saying no to new things, this also meant re-evaluating the things I was already spending my time on.
The first casualty of this re-evaluation was the @stoopingams instagram account. While I had only started it a year earlier, the account grew to be pretty popular and it needed attention multiple times a day. Luckily I was able to find a replacement from within the @stoopingams community so that the account can live on.
The second thing I found is that I don't want to be spending a large portion of my time on Bitcoin Cash. I've been involved in BCH since I created CashScript for my Master's thesis back in 2019. And while I spent a a lot of time on BCH, I was also active in other cryptocurrency communities like Ethereum. And in the end I'm just a lot more excited about Ethereum than I am about other projects.
Finally, I have been involved with a bunch of my own side projects, as you probably know if you're reading this blog. I started these projects for fun as I enjoy coding and building as a hobby. Even when I need a break from programming for work, I can keep programming on my side projects.
But as some of these projects grew, they sometimes started feeling more like a job than a hobby. Especially for truffle-plugin-verify I've found myself debugging other people's issues time and again, which has gotten tiring.
So I've become much more selective on the time I'm spending on my side projects as well. I've set up much stricter issue templates and I try to be very explicit about any expectations that users may have about future development (they shouldn't have any).
So come the end of 2021 I've ended my BCH work with General Protocols, I've finished my contracting engagement with Truffle, I'm only working on my personal projects for enjoyment, and I've let go of some time intensive activities like @stoopingams.
So by saying no to all those things, the remaining question is what I am saying yes to. The answer is Armada, which is the startup that I am currently working on with my friend Merwane Drai. Together we're tackling the problem of NFT discoverability by building a search engine for NFTs.
That is all I can share about Armada for now, but stay tuned for an exciting 2022. We have a bunch of great things in store that we can hopefully share soon.
In 2021 I helped build important new products for Bitcoin Cash and Ethereum. I got started with collecting NFTs and creating generative art. I added significant new features to my open source tools and apps which have seen tremendous growth.
While I have started to spend less time on my open source side projects, I do want to make sure they stay relevant. I hope to attract more community contributors to get involved with these projects so that I can shift my more time towards guiding them instead of developing myself.
In 2021 I had to step back and re-evaluate what I wanted to do, but by the end of the year I was able to set my priorities straight. I plan on going into 2022 with more focus and I am excited to build Armada together with Merwane.