The IPFS web browsers integration group

July 31, 2026 · View on GitHub

Informal group working on improving IPFS presence in web browsers

Official Part of IPFS Project Discourse Forum Matrix

Our goal is to facilitate native support for IPFS and other decentralized protocols in web browsers in order to benefit ....

  • Browser users: Browser extensions and native-included IPFS alike expose IPFS features in a robust and intuitive way
  • Web developers: Web developers can enjoy a smooth experience working with IPFS in browser contexts
  • Browser vendors: Browser developers are empowered to meet the requirements of the distributed web

Contents

Projects

IPFS Companion browser extension

IPFS Companion is a browser extension that simplifies access to IPFS resources and adds browser support for the IPFS protocol. It runs in Firefox and Chromium-based browsers including Chrome or Brave. Check out all of IPFS Companion's features and install it today!

Firefox Chrome | Brave | Opera | Edge
Install From AMO
Install from Chrome Store

Notable past web extension experiments

IPFS and the JavaScript ecosystem

Helia

Helia is a lean, modular, and modern TypeScript implementation of IPFS for the prolific JS and browser environments.

See the Manifesto, the FAQ, and the State of IPFS in JS blog post from October 2022 for more info.

Usage examples:

Legacy JS-IPFS

The js-ipfs / ipfs-core is is no longer maintained. See State of IPFS in JS blog post from October 2022 for rationale.

Browsers dialing nodes directly

As of 2026 Q3, a browser can fetch content straight from an IPFS node, with no gateway in the middle. Three transports carry that traffic: /webrtc-direct and /quic-v1/webtransport need no signalling server and no CA-issued certificate, while /tls/ws uses a real certificate the node obtains on its own. All three keep moving as browsers change what they accept.

  • 2024-05: service-worker-gateway is the client side of this: a Helia node running in a Service Worker that retrieves over WebTransport, Secure WebSockets, or plain HTTPS, and follows the subdomain gateway convention so every root CID lands on its own origin. A proof of concept was running at https://inbrowser.link.
  • 2024-11: AutoTLS gets a publicly reachable node a wildcard certificate for *.[PeerID].libp2p.direct, so a browser can open a Secure WebSocket to it from a Secure Context without the operator registering a domain or handling a certificate. The p2p-forge client brokers an ACME DNS-01 challenge, and Let's Encrypt issues the certificate. Kubo ships it in v0.32 and enables it by default, under AutoTLS. A proof of concept broker was running at libp2p.direct.
  • 2025-07: Kubo v0.36 turns its HTTP retrieval client on by default, so a node fetches blocks over plain HTTPS from providers that offer it. Browsers already retrieve this way through @helia/verified-fetch, and the same trustless gateway responses now serve both.
  • 2026-07: go-libp2p v0.49.0 accepts the webrtc-direct v2 handshake alongside v1. Chrome has merged the removal of the SDP rewriting v1 depends on, behind the WebRTC-NoSdpMangleUfrag field trial, so a v1-only server stops being dialable from Chrome once that reaches stable. libp2p/specs#672 tracks the other implementations.
  • 2026-07: the same release answers WebTransport draft-15 and the older session identifiers every shipping browser still sends. Firefox is implementing draft-15, and Safari 26.4 and later will not open a session unless the server sends the WT_MAX_SESSIONS limit from draft-14. More in go-libp2p#3532.
  • 2026-07: Kubo v0.43 carries the two transport updates above to node operators, with nothing to configure. See its changelog.

How to address IPFS on the web

How to run own HTTP Gateway

  • If you are a desktop user, try IPFS Desktop
  • If you only want to run a Gateway as a public HTTP server, and the data is provided by separate IPFS nodes, use the latest Rainbow, which is a specialized gateway daemon.
  • If you want to host your own data and prefer to work with command-line, use the latest Kubo daemon and follow gateway recipes.
  • If you have a lot of data, consider running Kubo with IPFS Cluster.

How to implement HTTP Gateway

See specification and implementer notes at https://specs.ipfs.tech/http-gateways/.

DNSLink enables you to map a domain name to an IPFS address (CID or IPNS libp2p-key) by means of a DNS TXT record.

  • Read the DNSLink guide for details, including how to set it up on your own website
  • See details on DNSLink in IPFS Companion to see additional benefits of using IPFS Companion with DNSLink support

Collaborations

W3C

Protocol Labs was a W3C Member until the end of 2024, and used that seat to watch and participate in the WebExtensions Community Group. The member list carried Protocol Labs on 2024-12-01 and no longer did on 2025-01-13.

WICG - Web Incubator Community Group

IPFS and Igalia collaborate on dweb in browsers

In 2020 IPFS and Igalia started a collaboration that continues to this day. Read more: https://blog.ipfs.tech/2021-01-15-ipfs-and-igalia-collaborate-on-dweb-in-browsers/

The most notable highlights (chronological order):

Brave

  • 2021: Brave v1.19 has integrated IPFS into their desktop web browser for Windows, macOS and Linux.
    • When Brave detected an address which is an HTTP gateway URL to IPFS content or a native IPFS address such as ipfs:// or ipns:// it prompted the user to install and enable the native IPFS node (Kubo), or to use an HTTP gateway.
    • Initial release (v1.19) was focused on daemon orchestration and on URI support (read blogs and press)
  • 2024: After over three years, the Brave team decided to remove support for running IPFS node as we could not find a mutually agreeable set of terms to make this integration sustainable.

ipfs-chromium

Opera

Opera for Android 57 introduced support for resolving ipfs:// or ipns:// via a customizable gateway.
Read more: https://blog.ipfs.tech/2020-03-30-ipfs-in-opera-for-android/

Get involved!

Contribute to an issue

Contributions to our work are more than welcome! Every IPFS Project repo makes use of the project-wide global issue labeling scheme. Good labels to look for are ...

  • help wanted
  • good first issue

If you see an issue that catches your eye, leave a comment so we know you're interested, and we'll go from there!

We're an open project and a friendly group, so please be nice and read the contributing guidelines when you're ready to jump in.

Discuss

For the sake of async communication, archiving, and searchability, we encourage browser-related technical discussions to happen in the context of GitHub issue comments whenever practical.

If you want to ask support question, or just chat informally to learn and brainstorm, feel free to join chat community or discussion forum at https://discuss.ipfs.tech

Improve docs

https://docs.ipfs.tech is backed by the repo at https://github.com/ipfs/ipfs-docs – any help in improving docs related to browsers (or not) is appreciated!

Improve specs

Proof-read ipfs/specs and fill an issue for: (1) outdated specs (2) missing specs (3) bits that are confusing and need to be clarified.

Resources

If you're looking for endeavors related to IPFS browser integration work, these resources may be helpful.

  • IPFS in Brave Browser: TLDR explanation how Brave supports IPFS out of the box (either as local node, or by delegating to a public gateway of user's choice)
  • IPFS Companion: Harness the power of your local IPFS daemon directly inside your favorite Chromium or Firefox browser, enabling support for ipfs:// addresses, automatic IPFS gateway loading of websites and file paths, easy IPFS file import and sharing, and more
  • IPFS Web UI: The IPFS dashboard shipped with the IPFS daemon or IPFS Desktop
  • js-ipfs-core: Core IPFS implementation in JavaScript for use in browser (without Nodejs daemon parts)
  • HTTP Gateway API docs - implementation-agnostic interface for trusted and trustless data retrieval
  • HTTP RPC API docs: Guide to the RPC over HTTP API exposed when a Kubo IPFS node (go-ipfs) is running as a daemon; allows you to control the node and run the same commands you can from the command line
  • IPFS GUI group - The other half of the IPFS Web Browsers & GUI Working Group, dedicated to creating and implementing standards and patterns for IPFS that are simple, accessible, reusable, and beautiful