Tracking IPFS support in web browsers: ipfs:// addressing, transports browsers can dial directly, and work with browser vendors
357
183 commits
updated Aug 18, 2026
Informal group working on improving IPFS presence in web browsers
Our goal is to facilitate native support for IPFS and other decentralized protocols in web browsers in order to benefit ....
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!
libdweb to implement experimental APIs for Firefox WebExtensions, with a goal of enabling dweb protocols in Firefox through browser add-ons:
window.ipfs (experiment ended in 2020)chrome.sockets.* APIs in Chromium browsers (ended due to EOL 2022)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:
ipfs/helia@helia/verified-fetch node in ServiceWorker can be found at https://inbrowser.link (sources)The js-ipfs / ipfs-core is is no longer maintained.
See State of IPFS in JS blog post from October 2022 for rationale.
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.
*.[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.@helia/verified-fetch, and the same trustless gateway responses now serve both.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.WT_MAX_SESSIONS limit from draft-14. More in go-libp2p#3532.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.
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.
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):
ext+. Refinement is pending for the permission UI.http://*.localhost/ URLs as secure context, which means websites loaded from local subdomain gateway will have access to the same Web APIs as HTTPS version.registerProtocolHandler()protocol_handlers in Chromium. The prototype was abandoned once the real implementation started, see the 2025-Q2 and 2025-Q3 entries belowprotocol_handlers manifest key lands in ChromiumServiceWorkerInterceptDownloads flag, one of the blockers for the Service Worker Gatewayipfs:// or ipns:// it prompted the user to install and enable the native IPFS node (Kubo), or to use an HTTP gateway.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/
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 wantedgood first issueIf 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.
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
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!
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.
If you're looking for endeavors related to IPFS browser integration work, these resources may be helpful.
Tracking IPFS support in web browsers: ipfs:// addressing, transports browsers can dial directly, and work with browser vendors
357
183 commits
updated Aug 18, 2026
Informal group working on improving IPFS presence in web browsers
Our goal is to facilitate native support for IPFS and other decentralized protocols in web browsers in order to benefit ....
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!
libdweb to implement experimental APIs for Firefox WebExtensions, with a goal of enabling dweb protocols in Firefox through browser add-ons:
window.ipfs (experiment ended in 2020)chrome.sockets.* APIs in Chromium browsers (ended due to EOL 2022)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:
ipfs/helia@helia/verified-fetch node in ServiceWorker can be found at https://inbrowser.link (sources)The js-ipfs / ipfs-core is is no longer maintained.
See State of IPFS in JS blog post from October 2022 for rationale.
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.
*.[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.@helia/verified-fetch, and the same trustless gateway responses now serve both.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.WT_MAX_SESSIONS limit from draft-14. More in go-libp2p#3532.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.
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.
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):
ext+. Refinement is pending for the permission UI.http://*.localhost/ URLs as secure context, which means websites loaded from local subdomain gateway will have access to the same Web APIs as HTTPS version.registerProtocolHandler()protocol_handlers in Chromium. The prototype was abandoned once the real implementation started, see the 2025-Q2 and 2025-Q3 entries belowprotocol_handlers manifest key lands in ChromiumServiceWorkerInterceptDownloads flag, one of the blockers for the Service Worker Gatewayipfs:// or ipns:// it prompted the user to install and enable the native IPFS node (Kubo), or to use an HTTP gateway.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/
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 wantedgood first issueIf 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.
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
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!
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.
If you're looking for endeavors related to IPFS browser integration work, these resources may be helpful.