The folks over at Gitcoin are offering bounties to dApps for integrating ENS into their infrastructure, which can be done in a variety of ways. Integrating ENS can improve the user experience of any application.

In order to apply for the bounties, simply open an issue on the dApp you are working on or interested in working on and tag either me (@decanus) or Nick Johnson (@Arachnid) in the issue. We will get in touch with the team over at Gitcoin and get everything set up so the bounty is available, they will then fund the bounty.

Accept ENS names anywhere your app accepts addresses

The first step to supporting ENS in your application is making your application understand ENS names, and accepting them anywhere an address is accepted. To understand how to do this, see Resolving Names.

If possible, when a user enters an ENS name instead of an address, remember the ENS name, not the address it currently resolves to. This makes it possible for users to update their ENS names and have applications they used the name in automatically resolve to the new address, in the same way that you would expect your browser to automatically direct you to the new IP address if a site you use changes servers.

If your application deals with user funds or other critical resources, you may want to keep track of the address a name resolves to and warn them when it changes, to ensure they are aware of the change.

Display ENS names anywhere your app shows addresses

The second step is to display ENS names wherever your app currently displays addresses.

If a user entered an ENS name in step 1, you should retain this name and show it to them whenever you would normally show the address.

If a user entered an address, or the address was obtained from elsewhere, you may still be able to show an ENS name, by doing Reverse Resolution. This permits you to find the canonical name for an address and display that when possible. If no canonical name is provided, your application can fall back to displaying the address as it did previously.

For information detailing an integration, check out our docs.