How To Successfully Hosting A Decentralized Website Using ENS/IPFS.

  1. ) You’ll need an ENS domain name and IPFS Desktop for this guide. IPFS Desktop is a GUI you can use to interact with IPFS. It can be found here:
  2. 2.) Gather the website data you’ll be using in a convenient folder. IPFS only supports static content — so JS, CSS, and HTML are okay to use while PHP, etc… is not. If you have a Wordpress website, there are many plugins that will help you convert and export your website as a static site.
  3. 3.) Upload the folder mentioned in the previous step to IPFS and then upload the website data you’ll be using into that folder on IPFS. The hash of this folder will be used to configure your ENS domain and it will automatically resolve to the index.html file within the folder.
  4. 4.) Wait for everything to propagate and properly resolve. You can test that this is working by opening the IPFS Desktop GUI, clicking “Files”, navigating to the FOLDER (not individual files), clicking the options dots next to the folder name, clicking “Inspect”, and clicking “View on IPFS Gateway.” If everything is working, you should see your website in your default browser.
  5. 5.) If this does not work — and you’ve waited awhile for propagation — you may need to forward port 4001 on your router. You should be able to see if that port is currently open by asking Google. I can’t help you much with this step, because it depends on your networking equipment.
  6. 6.) After you’ve confirmed your website is visible in a browser after clicking “View on IPFS Gateway” — you’re ready to configure your ENS domain!
  7. 7.) Go to the ENS domain manager within your account on their website and configure your desired domain’s “Public Resolver” to 0x1da022710dF5002339274AaDEe8D58218e9D6AB5. It’s very important to use this public resolver if you’re configuring your ENS domain to work with IPFS because the default public resolver doesn’t play nice with IPFS hashes. (It didn’t for me, anyway.)
  8. 8.) Now we’ll convert the IPFS hash of the FOLDER that your website content is in to a hex string. This is actually very easy, just go to and paste in the IPFS hash of your FOLDER and the copy the hex string output.
  9. 9.) Back in the ENS domain manager, paste this hex string into the “Content Record” section. You may see a message that says something like “update your public resolver before setting content record” but that’s only because you’re not using the default public resolver. You can ignore this.
  10. 10.) Congratulations! After the transaction confirms you should be able to successfully visit http://yourdomain.eth! If you want your website content to be available even when your computer is offline, I suggest using an “IPFS pinning service” like Eternum. It’s ridiculously cheap and easy to pin small files/websites, and it guarantees that your files will always be accessible.
  11. IMPORTANT: Keep in mind that every single time that you update your website content and upload those updated files to IPFS not only will each file get a new IPFS hash but also the FOLDER that the files are in will get a new IPFS hash. You will have to convert this new hash to hex and replace the hex string in your “Content Record” on ENS every time you update on IPFS. You’ll also have to unpin your old hashes and pin your new hashes on your IPFS pinning service if you decide to use one.
  12. Thanks for reading, hope someone found this useful! If you have any other questions or comments about any of this, feel free to comment. I’m not an expert, but I’ll try to answer if it’s something similar to anything I’ve encountered.