Blockchain Primitive: Delegation Registry

The Prelude

In early 2021, I was working on an NFT project with my brother called TokenSign.app. We wanted a big influencer to use our product for publicity, so I naturally reached out to the person who had recently sold the one of the most expensive Crypto Punks of all time, a user known as @Sillytuna.

Sillytuna was very kind and took an in-depth look at TokenSign.app. They were considering using the project to generate autograph-like NFTs, but they brought up one important sticking point: They didn’t want to connect their wallet containing a multi-million dollar NFT to my website. They recommended I figure out a way to enable them to delegate their wallet to a different “hot” wallet, at which point they would consider using the project in more detail.

My brother and I discussed various schemas we could implement to enable wallet delegation. We didn’t have enough influence to create a standalone registry (also… why would people trust that code any more than our NFT project’s code anyway?), so that didn’t make sense. We could implement a project-specific, signed message system that would add a bunch of complexity to our smart contracts, frontend logic, and indexing scripts, but we were concerned about not having enough bandwidth, and were also concerned that the added complexity may drive away potential users.

In the end, the TokenSign project didn’t have enough steam to justify implementing a custom, complex wallet delegation system.

Enter: delegate.cash

Fast forward to one year later. The CTO of Art Blocks, my boss @purplehat, mentioned that they were in a dev chat discussing how to create a much-needed blockchain primitive: a simple and straightforward wallet delegation registry. The project was known as delegate.cash.

Knowing the painful experience from one year before, I jumped at the chance to help out on something that I felt could really help remedy a particularly difficult problem for NFT projects to solve on their own. The project, known as delegate.cash, was being headed by a really awesome dev and overall thought-leader in the NFT and blockchain space, @0xfoobar.

It was a really great experience getting to work with a group of devs motivated by nothing more than to build something together that would push the space forward. After much discussion and iteration, the team eventually deployed a smart contract to 0x00000000000076a84fef008cdabe6409d2fe638b. One teammate @wwchung, the founder of manifold.xyz, also submitted the new delegation registry to be considered as an EIP in ERC-5639.

The smart contract repository that contains the delegation registry code is open source, and can be found on GitHub here: https://github.com/delegatecash/delegation-registryhttps://github.com/delegatecash/delegation-registry

Six Hundred Million and Counting…

Six months after the registry was deployed, it is already securing over six hundred million USD worth of assets. It has been used by teams a Art Blocks, Yuga Labs (BAYC), Premint, OpenSea, and TokenProof (and more) to securely enable their users to follow a safe vault + hot wallet interaction pattern without sacrificing user experience.

The project’s success is largely due to the excellent follow-on work completed by 0xfoobar and company. An easy to use frontend was created at https://delegate.cash, and a great documentation site is available at https://docs.delegate.cash/. The docs are complete with tutorials, a javascript SDK, and embeddable components. The twitter profile for the project, @delegatecash, has over 6k followers, and provides up-to-date news related to the project.

Concluding Thoughts

It was a neat experience to go from being a developer without a clean and easy wallet delegation solution in 2021, to being invited to help out on a wallet delegation solution in 2022, to seeing the wallet delegation solution being used by so many people in 2023.

I’m continually appreciative of how many awesome people are in the crypto space. The fact that @sillytuna took the time to provide informative feedback on my TokenSign project (while amidst a multi-million dollar deal for their CryptoPunk), the fact that @purplehat and @0xfoobar and others were in conversation about how to build a delegation registry as a public good, and the fact that so many developers were willing to help out on the delegate.cash project is a great testament the quality of people involved in the space.

I also think this experience also shows how much need there still is in the crypto space for simple primitives. If you are a smart contract developer and encounter one of those all-too-frequent moments where you ask yourself, “why doesn’t this exist?!?”, we should all feel encouraged to start conversations with other users and developers in the crypto space. Discord posts and Twitter messages can lead to some really great conversations that sometimes leads to some awesome projects where everyone gets a chance to learn from each other, and build something cool.


Posted

in

by