An Interview with Codecrafting, the Tezos developer behind Crunchy.network
Codecrafting is one of the most prolific application developers on the Tezos blockchain.
3,050 words, 16 minute read
Editorial note: The following article contains discussion of Decentralized Finance (DeFi). DeFi refers to a relatively new financial system based on blockchain, that decentralizes the infrastructure, processes, and technologies used in traditional financial transactions. As such, when it comes to DeFi, the regulatory framework that exists around traditional finance is incomplete and evolving. It is important that readers do their own research, and understand that coverage of DeFi products and services on Spotlight does not constitute endorsement by either the Spotlight editorial board, Blokhaus Inc, or any affiliated organizations.
After working for two decades in web development, Codecrafting eventually made his way to Tezos, where he quickly became one of the most prolific and impactful application-level developers on the blockchain. He started out at TQ Tezos working on TZIP-21, the Tezos NFT metadata standard still in place today. From there he ended up at , where he is currently working as a developer in what he describes as his ‘day job’.
Among his many side-projects, Codecrafting is the founder of Crunchy.network, a DeFi platform that offers a variety of tools for project developers and users in the Tezos ecosystem. Codecrafting also developed WTZ (in collaboration with Genius Contracts), a wrapped version of tez available to the public for a variety of uses; he built lockt.io, a tool for adding unlockable content to Tezos NFTs; sliced.art, which will allow users to fractionalize NFTs; and he’s helped the launch of numerous big NFT PFP projects on Tezos, such as Ottez and Mike Shinoda’s Ziggurats, among many more.
The following interview has been edited for clarity and length.
What is your background, and how did you end up in blockchain development?
I’ve been a web developer for about 20 years. I started forever-ago in PHP in the e-commerce space. I did that for many years, and then I moved through various industries like healthcare startups and eLearning platforms. […] Back then cryptocurrency was only just coming into fruition. Bitcoin was kind of becoming a topic, but people weren’t sure about it yet.
I eventually got into crypto puzzles and joined a team, and we did a few Ethereum hackathons. […] There was one hackathon where the Tezos category had pretty big prizes, but they couldn’t find anyone to enter those categories. So somehow they found out about us and asked if we would be interested in maybe doing one of the Tezos categories, and we said we would do it. We did a ‘proof of puzzle’, which is basically just an on-chain contract that has some rewards. If you could prove that you knew the answer to the puzzle, then you got the prize.
This was in late summer of 2020, and someone at TQ Tezos asked if I’d be interested in coming and working for TQ Tezos and help develop the NFT metadata standards. At the time we had the FA 1.2 and we had the FA 2 standard, but we didn’t have any metadata standard. So I interviewed and I got the job at TQ. The rest is kind of history.
Once you had found Tezos, what did you think? What made Tezos special?
The first obvious difference was that Tezos was Proof-of-Stake, and Ethereum was Proof-of-Work at the time. It was also super cheap in terms of transactions. I also liked the way that the contract language in the blockchain was better. When I say that, I mean it’s formally verifiable, whereas with EVM [Ethereum Virtual Machine], it is much harder to do that. I also like the governance model.
Probably one of the things that really made me fall in love and stay was the Ligo language. I started to write contracts in Pascal Ligo - at first there was some head bashing because it was different than what I was used to, but the more I used it the more I fell in love with the way it worked.
What have you built on Tezos since you’ve started?
The first big thing that I worked on was TZIP-21, the NFT metadata standard, which I worked on when I was at TQ. That has remained largely unchanged even to this day - that’s what allows everybody to see and make all those cool NFTs with all of the assets and interactions and everything. I also worked on open minter for a while, [and] I work at which is a gaming company on Tezos. We have the Emergents TCG trading card game. We also build other things around that to support it. For example, we have MinterPop, which is our NFT marketplace, and that’s where we sell cards for the game. Historically we’ve also sold various artworks, like comic art. We also do NFTs for GAP - lots of things like that.
What else have you done ‘on the side’ in the Tezos ecosystem?
The first big thing on the side was crunchy.network around April, May of 2021. It was just this weird time where for like a month in Tezos, a relatively small set of people were going crazy for anything ‘DeFi’ - people were creating meme coins left and right, and all sorts of stuff like that.
I wanted to provide some kind of a service that projects could use to develop trust within the community, so I built a ‘liquidity locker’
But out of that, a bunch of people wanted yield farms and there were actually some real projects coming out that needed them, but there was no open source farming contract, and they didn’t have the ability to do it themselves. That initially was where the idea of a DeFi-as-a-service platform started, [which] turned into crunchy.network.
I wanted to provide some kind of a service that projects could use to develop trust within the community, so I built a ‘liquidity locker’. Basically if a project wanted to raise some money, they could lock it up in a smart contract for like a year or whatever. That way people in the community could be sure that for at least a year, or whatever length of time, the project couldn’t just pull liquidity out from underneath you. So that was the start of crunchy.
What other features and tools have you released on Crunchy?
What we started with on crunchy was farms in the form of a service and the deep freezers/liquidity lockers. Farms as a service came first, and what that means is that anybody can go and make a token farm. All they have to do is provide the reward tokens, set the parameters of the farm and click a button - that’s it. Even for small farms, I think it’s a good tool to teach people about how yield farms work, to learn how the mechanics work without risking and perhaps losing a lot of money.
Then there’s the deep freezers, and that’s liquidity locking as a service. Right now it’s still just Quipuswap LP tokens, but at some point we will add support for LP tokens from any DEX so any individual can use it - they put some LP into a DEX, they’ve now got their LP tokens, and they can go to the deep freezer and they can lock those tokens for a certain timeframe. For example, six months is common.
Photo by Dev Benjamin / Unsplash
We also have a “fire pit”, which is the burner contract. That is a contract that does absolutely nothing - you just send tokens there to burn them. And it’s not a wallet - it’s an actual contract. The reason I like the contract better is that if you send something to the burner contract, it’s 100% proven mathematically that it can never come out of that contract. With a wallet, even though it’s extremely unlikely that it’s ever gonna come out, in theory, at some point in the future somebody could discover the key for that wallet. So that’s why I like the contract a little better - it was provable.
We also have a DeFi wallet tracker. We’ve got quite a bit of stuff still to do to it, but it’s well underway. Basically you go there and you can see all the tokens in your wallet, the current balance over the current price - we’ve got one day, seven day, and 30-day indicators of price movement. You can see protocols that you’re staked in, liquidity balance, etc. So we want Crunchy to be like the hub of your wallet tracking.
We now have a DEX aggregator, which is just a simple swap form where you go and put in your trade and it will try to figure out the best route to get you the best value for your trade. And that includes simple liquidity aggregation right now. We’re going to work in the future to expand that to more complex liquidity aggregation, which is something that I believe we desperately need on Tezos.
And there is also WTZ, but that’s not technically a crunchy product - it is technically a Codecrafting Labs-produced public good that was made in collaboration with Arri of Genius Contracts.
Can you say more about WTZ?
WTZ is wrapped Tezos - it’s wrapped XTZ that takes into account inflation for baking rewards. The way it works is that when you deposit XTZ, the XTZ goes into vaults where it is being baked. And then when those vaults receive baking rewards, there’s a mechanism which automatically updates the conversion ratio between WTZ and XTZ to take into account that change in inflation. It’s always swappable at the exact current swap ratio no matter what amount you want to swap.
When you deposit XTZ, the XTZ goes into vaults where it is being baked. And then when those vaults receive baking rewards, there’s a mechanism which automatically updates the conversion ratio between WTZ and XTZ to take into account that change in inflation
Some have expressed worries about centralization in this model, where there is a small amount of bakers that can potentially bake a large amount of XTZ in the vaults, but there is a lightweight governance model built around it, where we have an informal board that discusses and makes decisions about who the bakers of these vaults should be. And in the future, a formal DAO can be formed around it. We could also figure out a way that in the future anybody could add a vault and delegate it to any baker as long as there’s not already a vault being delegated to that baker. So there are solutions.
Crunchy has been trying to organize a DAO of its own with the CrDAO token. What is the status of that?
Yeah, we are organizing a Crunchy DAO, and CrDAO is the Crunchy DAO token. We distributed CrDAO late last summer and early fall through three farms: there was an XTZ/CRUNCH farm; there was an XTZ/KUSD farm; and then there was an XTZ/wBTC farm.
The reason that we did three farms is that we wanted to let anybody who was interested get the DAO token. CrDAO is extremely low supply at 12,000, and we’re trying to get governance going now with Homebase, which is working on some updates for us that will allow us to create proposals that with arbitrary Lambda calls.
Another thing we’re looking into is creating a dedicated CrDAO staking page where DAO members can stake their CrDAO and lock it for a period of time where they can’t withdraw - the more you stake and the longer you stake, the more rewards you earn, and the higher percentage voting power you get.
Upon staking, we issue you a non-transferable voting token, which is what the actual Homebase will use for voting. This is our solution to Homebase’s requirement to lock your tokens. It’s our solution for how can people can lock their tokens to vote at the same time as they earn rewards on DAO token.
Are there other features in the pipeline you’re able to talk about?
Yes! We just recently released a tool for fractionalized NFTs, which was previously under the codename ‘pie slicer’.
Fundamentally the way this works is if you own an NFT, or if you’re an artist that has a high value NFT, or several of them, you can make a basket where you put one or more NFTs in and then you they can be “sliced up” into however many pieces, or fractions, you want and we’re making these zero decimal pieces because in our opinion, trading them on an NFT marketplace makes way more sense than trading them on a DEX.
Let’s say you have a rare Tezzardz NFT - you can slice it into, say, a thousand or ten thousand slices - maybe you keep some for yourself and maybe you put the rest for sale [on an NFT marketplace]. Other people can then come and buy those fractions/slices, and they can actually own that percentage of the actual real one-of-one Tezzardz NFT. And then all the people that own fractions of the original can make use of a voting mechanism where they can vote on a reserve buyout price, i.e. a price that they would be willing to part with the basket of fractions for. Note that in this example, I’m talking about a one-of-one NFT, but it doesn’t have to be - the basket could have however many NFTs you want. Anyways, everybody votes on it and it’s like a weighted average, and that becomes what we call the reserve price.
Then assume that everyone sets the reserve price to 50,000 XTZ. This price becomes the minimum offer that is required for somebody to buy that original Tezzardz NFT. Once the reserve is set, somebody can come along and say: ‘Yeah, I would pay that for that NFT’, and at that point in time it starts a public auction. Parameters like auction duration can be reconfigured by the DAO.
At the end of the auction, the winner gets the basket of NFTs, meaning the winner gets the actual, real one-of-one rare Tezzardz NFT. And then everybody who has the slices/fractions can then go and turn them into the contract, their portions will get burned, and they can redeem their relative portion of the sale. So running with the example, if the basket sells for 50,000 XTZ, and you own 10% of the slices you can go and turn them in and get your 5,000 XTZ. That’s how it works.
It should be fun to see how people use this fractionalization tool.
I think there’s a lot of potential use cases - think of something like real estate timeshares. You could have an NFT that represents the unit and the timeshare, and then you slice, or fractionalize it, and everybody who owns part of that timeshare will have fractions of the NFT that represents their percentage of ownership. And then if the building were to ever sell, it could be done in the way described above with the rare Tezzardz NFT, and owners could redeem their share if they wished, or whatever. I’m really excited to see how people use it.
You’re known for helping out on a lot of NFT projects on Tezos - off the top of your head, what have you been involved in?
Bat Bits, Bigfoot Mafia Club, Chop Sumo, Cyber Gecko Gang, Cyber Kids Club, Froggos, Ottez, Pixel Pandas, Sad Pythons, Six Picks, Taco Dudes, Tez Ape Gang, Tezo Ninjas, Vessels, Mike Shinoda’s Ziggurats… I think those are all the big ones.
What core features of the Tezos protocol do you think are most under-appreciated or underused that you’d like to see used more?
Global constants are pretty underused. Global constants are a way for you to pack modular pieces of code onto the chain that your contract can reference, but it’s not actually part of your contract’s code. So it’s a way to re-use code between contracts. It also makes the contracts themselves contain less code. There’s a limit to how big a contract can be, and global constants help you to expand that size. If you write a lot of contracts, you find that you re-use a lot of the same code over and over, you can just reference a global constant.
There’s a lot of people that are at the forefront of the Tezos community that are always willing to help other people out and volunteer their time.
What do you think the Tezos community does right?
The community is extremely good at being welcoming and inviting to new users. This is something that I see and hear people talk about, especially artists who have come from other chains - I see people commenting all the time about how different the Tezos community is, and how helpful people are. There’s a lot of people that are at the forefront of the community that are always willing to help other people out and volunteer their time. You don’t necessarily get that on other chains - often, if you’re not ‘in the club’, then you’re just out in the cold, and we’re not really like that on Tezos.
Do you have any words of advice for new Tezos developers, or people interested in becoming a developer on Tezos?
It’s not as hard as you think! For some reason there seems to be this perception outside of Tezos that to write smart contracts on Tezos, you have to hand-write Michelson or something, which is not true. I mean, that would be like saying to that to create a website, you have to hand-write assembly code. But that’s not the case. We have higher level languages now, like Ligo, which even has a Java script variant, and there’s smart Py - you can use Python to write the contract in sort of a meta language that uses Python. It’s easier than you think it is.
For users, if you’re used to something like Metamask, you can use Temple wallet - you’ll feel right at home with Temple. It’s not scary as some people think. There’s differences, there’s obviously things to learn, but it’s not as hard as you think it might be.