What is DelegateRegistry, who's using it, and how you can use it

delegate.xyz is the best solution to secure valuable onchain assets while still participating in NFT airdrop claims, ERC20 token governance, and more. Users link cold wallets with hot wallets, and then the hot wallet can act on behalf of the cold wallet, like crypto power-of-attorney. It can be incorporated into login flows, token-gated minting & claiming, gaming actions, DAO governance, and more. By integrating the registry, your product improves by (1) derisking new user acquisition from those who have already delegated; (2) making it safer and easier for existing users to interact with your app from hot/mobile wallets without risking security. Get in touch if you're interested in using!

Who's Using It?

We've seen 150+ project integrations onchain, and even more offchain. This is a list of highlights, not comprehensive. Analytics nerds can dive even deeper by looking at registry code integrations on Codeslaw. Unique usecases are bolded on their first appearance in the list.

What are the Features?

  • Fully Onchain

    There are no offchain signatures floating around a hidden relay network. This gives users important assurances that what you see is what you get. Attack vectors like the OpenSea stale listings problem are prevented.

  • Fully Enumerable

    We provide onchain methods to get a complete list of all delegations for both cold and hot wallets. No event parsing needed. This greatly simplifies integration efforts for both smart contract and frontend developers.

  • Fully Independent

    There are zero external dependencies or admin/governance control, so the attack surface is locked down and the registry can deployed on any EVM chain of your choice.

  • Fully Immutable

    There are zero admin powers. Because governance is an attack vector, there should be none of it in a neutral trustless delegation standard. The standard is designed to be as flexible as possible, but upgrades are always possible by deploying a new registry with different functionality.

  • Fully Verifiable

    By using vanity addresses for CREATE2 deployment, the contract can be permissionlessly deployed at the same 14-leading-zeros address across multiple chains. This makes it easier for end users to verify that they’re interacting with the correct contract.

How does it work for normal crypto users?

You’ll use https://delegate.xyz/ to assign a hotwallet delegate for your coldwallet vault - that's it. The delegate has permission to claim airdrops or other utility on behalf of the vault, but it cannot touch anything within the vault. The granular permissioning lets you assign a delegate for either (1) everything; (2) a specific contract; (3) a specific token. For fungible ERC20/1155 tokens you'll be prompted to enter a specific token amount to delegate; for nonfungible ERC721/1155 tokens you'll be prompted to enter a specific token id to delegate.

How about smart contract wallets like Gnosis Safe or 4337?

Since the registry does not rely on offchain signatures and instead exclusively uses `msg.sender` for authentication, it works just as well for smart contract wallets as it does for externally-owned-accounts (EOAs) like Metamask/Rabby/Rainbow.

For Gnosis Safe, follow the instructions here for using WalletConnect. WalletConnect should also work for other smart contract wallet types.

How does it work for smart contract devs?

Writing a smart contract? Follow the instructions in Smart Contract Examples. Import the the IDelegateRegistry.sol interface to interact with the deployed registry address found in Contract Addresses. You'll query the registry to see if a delegated address has permissions to act on behalf of another.

How does it work for frontend devs?

Use the JavaScript SDK or HTTP REST API found in Setup to fetch a list of incoming and outgoing delegations for a connected wallet.

Comparison with Status Quo

Last updated