There is a new bytes32 rights parameter associated with each delegation, that did not exist in V1. This is used for subdelegations, or splitting up the rights associated with a wallet/token and pointing them towards distinct receiver wallets. For example, an NFT may grant airdrop rights, governance rights, event ticketing rights, gameplay rights, IP licensing rights, and access to a tokengated chat.

You can either continue aggregating these rights and pointing them to a single wallet, or choosing a more granular approach that points different rights to different wallets.

Simple Approach

To delegate all rights, pass an empty bytestring as the rights param. This can be done in most programming languages with the empty string: "". This encompasses all rights and any specific rights check will return true. Most users should do this unless specifically directed otherwise until app adoption paths become clear.

Complex Approach

Apps can choose to check a specific bytestring if they would like users to opt into more granular control. For example, an onchain governance protocol could call checkDelegateForERC20(to, from, contract_, "governance") which would encompass both users who made the default simple approach and users who specifically delegated "governance" rights. The frontend will eventually assist in grouping users into simple lowercased english words in conjunction with integration partners to avoid fragmentation. Please reach out if interested!

Last updated