TL;DR: IPFS is planning the next phase of work to make browsers better for the decentralized web – not just IPFS, but any protocol that needs lightweight crypto, peer-to-peer connections, or native browser integration. We need your input on what features matters most.
Background: What We’ve Accomplished
Over the past 5 years, sustained collaboration with Igalia has delivered real improvements to all major browsers:
-
Ed25519 in WebCrypto API - Shipped in Chrome 137 (May 2025), now available in 79% of browsers. This eliminates the need to bundle crypto libraries for signature verification, reducing bundle sizes significantly for projects using content-addressing, decentralized identity, or verifiable credentials.
-
Service Worker improvements - Fixing Chrome bugs that block adoption of Service Worker-based IPFS gateways
We’ve also collaborated with Little Bear Labs to ship ipfs-chromium and ipfs-electron forks with native IPFS support. While they’re not in the main frameworks (yet!) they show what’s possible. This work has been supported by Protocol Labs and the IPFS Implementations Fund.
What’s Next: 2026 Priorities (Draft)
We’re drafting the 2026 priorities and want community input. While this work is highly subject to browser acceptance, we’ve seen that sustained, precisely-targeted effort does result in success, especially over 2+ year windows. Here is the draft of 2026 priorities:
A. WebCrypto API Expansion
Goal: More cryptographic primitives as browser defaults, eliminating the need for bundled crypto libraries.
-
Curve448 - (High confidence for Firefox, mid for Safari, low for Chrome)
-
Argon2 (better key derivation), SHA3, ChaChaPoly, kMAC - stretch goal, mixed browser signals - W3C report, Github issue
-
HPKE - Chrome/Firefox positive/mixed signals
-
BLAKE3 - Stretch goal
-
Streaming hashing - Via WebCrypto Streams spec (moving to WICG) - stretch goal, mixed signals from each browser - Proposal, Github issue
B. Service Worker IPFS Gateway Support
Goal: Fix Chrome bugs blocking IPFS Service Worker gateway adoption.
C. Secure WebSockets Metadata
Goal: Reduce double-encryption overhead in libp2p over WSS.
-
Feasibility analysis of making connection metadata available on secure WebSocket objects
-
Would allow libp2p to opportunistically skip redundant encryption when outer TLS provides same guarantees
-
Potential prior art: RFC 5705 (TLS Keying Material Exporters)
D. WebTransport Improvements
Goal: More viable transports for browser-based p2p applications.
-
Interoperability testing - Improve test coverage across browsers
-
Firefox parity with Chrome - Mid confidence
-
Safari parity with Chrome - Stretch goal (Apple just started implementation)
E. WebRTC Enhancements
Goal: Better p2p transport options, especially for Service Workers.
-
WebRTC Data Channels in Service Workers - Spec supports it, needs implementation
-
Remove 500 connection cap - Technically challenging but valuable
F. Protocol Handlers in WebExtensions
Goal: Native ipfs:// and ipns:// support via extensions, path toward Service Worker-based handlers.
-
Ship new WebExtension API - High confidence
-
Dynamic protocol handler URL updates - Allow extensions to update handlers
-
Sub-resource protocol handling - For
<img>,<script>,fetch(), etc. -
Per-CID origin isolation - Research chrome-extension://subdomain.ipfs.extension-uuid/ patterns
-
Service Worker protocol handlers - The end goal (Safari has negative signals)
G. Local-First Browser Support
Goal: Enable local IPFS nodes without mixed content warnings.
-
Uniform Secure Context treatment of localhost (Webkit bugs #281149, #171934)
-
Localhost/localdomain networking fixes (Webkit bug #160504)
-
Private Network Access spec contributions (IPFS #184)
-
Research: Using SRI attribute to verify CIDs
H. Content Security Policy
Goal: Better CSP controls for WebRTC and WebTransport to prevent exfiltration.
-
Investigate WebKit CSP/COOP/COEP limitations
We Need Your Input!
If your project needs specific features from browsers (whether it’s on this list or not), we want to hear from you! When commenting, please include:
-
Your project name (for coordination)
-
Specific feature(s) you need
Why? What’s blocked without them? -
Brief description of your use case
(e.g. "Project XYZ needs BLAKE3 in WebCrypto because we’re using it for content verification across 10k+ files per session. Current bundle with BLAKE3 WASM is 400KB.” or “We’re building a local-first app for precision agriculture and the localhost secure context issues are blocking our ability to talk to a local IPFS node.”) -
Whether you can help test/validate when ready
We’re aiming to collect and incorporate a first round of input by Tues, Dec 16, and will also make adjustments throughout 2026.