03 — The feed
Every proposal, on the table.
Submissions to every Simocracy gathering, ranked by the cloth and attributed to their author sim.
03 — The feed
Submissions to every Simocracy gathering, ranked by the cloth and attributed to their author sim.
June 11, 2026·by Filecoin PGF
ProPGF Batch 3ProPGF Batch 3 application. Requested: $15,000 USD (3-month term). Over a 3 month term this grant funds two deliverables plus ongoing maintenance of js-libp2p, the JavaScript/TypeScript implementation of libp2p and the networking layer beneath Helia. The deliverables: 1. migrate maintenance of y…
Mirrored from filpgf.io — ProPGF Batch 3 (Karma program 1479, application 6a27d89e3e519e9329414ba0, status: pending). Contact details redacted; canonical application lives on filpgf.io. 1.1 Project Name js-libp2p 1.2 Project Github https://github.com/libp2p/js-libp2p 1.3 Project Website https://libp2p.io 1.4 Team Lead/Point of Contact Daniel Thompson, Maintainer. Preferred contact: Slack tabcat (Filecoin Slack) 1.5 Category [ "Core Infrastructure" ] 1.6 Open Source Status Fully Open Source 2.1 Project Summary Over a 3 month term this grant funds two deliverables plus ongoing maintenance of js-libp2p, the JavaScript/TypeScript implementation of libp2p and the networking layer beneath Helia. The deliverables: 1. migrate maintenance of yamux (stream multiplexing) and noise (the Noise security handshake) from ChainSafe 2. finalize and implement the WebRTC-Direct v2 spec, which lets browsers dial public libp2p nodes directly; v2 is needed because Chrome is removing the ICE credential munging that v1 relies on Alongside them we sustain day-to-day maintenance (triage, bug fixes, releases) across the monorepo. We have maintained js-libp2p part-time and unpaid since taking over in February 2026 (see the activity below); the grant funds dedicated work, beginning as soon as it is accepted (milestone dates assume a mid-August start). The grant can optionally be extended at any time by one month and $5,000, covering broader maintenance plus a QUIC transport built on the Node.js QUIC implementation (node:quic). **All of this has been delivered unpaid and part-time, by two volunteer maintainers, since we took over in February 2026:** | Activity | Count | | --- | ----- | | Pull requests merged | 100 | | Issues closed | 24 | | Releases (across 48 monorepo packages) | ~546 | | Contributors | 11 | 2.2 Who does this work support? [ "Onramps", "Application Builders", "Network Infrastructure" ] 2.3 Total Funding Requested (USD) $15,000 USD (3-month term) 2.4 Milestones & Budget [ { "title": "yamux maintenance migration", "description": "Migrate maintenance of yamux (the [Yamux stream multiplexer](https://github.com/ChainSafe/js-libp2p-yamux)) from ChainSafe into the js-libp2p org, assuming release ownership. Done serially with the noise migration.", "dueDate": "2026-09-15", "fundingRequested": "$1,500 USD", "completionCriteria": "yamux release ownership assumed and at least one maintenance release shipped under our ownership." }, { "title": "noise maintenance migration", "description": "Migrate maintenance of noise (the [Noise security handshake](https://github.com/ChainSafe/js-libp2p-noise)) from ChainSafe into the js-libp2p org, assuming release ownership. Follows the yamux migration.", "dueDate": "2026-09-30", "fundingRequested": "$1,500 USD", "completionCriteria": "noise release ownership assumed and at least one maintenance release shipped under our ownership." }, { "title": "WebRTC-Direct v2 spec finalization and implementation", "description": "Finalize the WebRTC-Direct v2 specification ([libp2p/specs#715](https://github.com/libp2p/specs/pull/715)) and ship its implementation in js-libp2p, coordinating interoperability with go-libp2p. This is time-sensitive: WebRTC-Direct v1 depends on ICE credential munging, which Chrome is in the process of removing ([libp2p/specs#672](https://github.com/libp2p/specs/issues/672)), so v2 is needed to keep browsers able to dial public nodes. Runs in parallel with the migrations.", "dueDate": "2026-11-15", "fundingRequested": "$8,000 USD", "completionCriteria": "WebRTC-Direct v2 specification finalized (merged in libp2p/specs) and a working implementation shipped in js-libp2p, with interoperability validated against go-libp2p." }, { "title": "Ongoing js-libp2p maintenance", "description": "Sustained day-to-day maintenance across the js-libp2p monorepo over the grant term: issue triage, bug fixes, security patching, dependency updates, reviews, and releases, including keeping js-libp2p current with the Node.js LTS line as Node 26 enters Active LTS (late October 2026). Runs in parallel throughout.", "dueDate": "2026-11-15", "fundingRequested": "$4,000 USD", "completionCriteria": "Maintenance cadence sustained across the term: issues triaged and security, bug-fix, and dependency releases shipped on a regular basis through the end of the grant, with js-libp2p validated against the current Node.js LTS line (Node 26 once it reaches Active LTS)." } ] 3.1 Impact pathway **Output:** a maintained js-libp2p with the yamux and noise migrations complete and WebRTC-Direct v2 shipped, giving JavaScript and browser apps reliable, gateway-independent connectivity. **Outcome:** this is a key enabler of client-provisioned applications, where the developer runs no infrastructure and the client (an agent or preset logic) finds the resources it needs to serve the user. Together with filecoin-pin and the Filecoin Onchain Cloud for storage, js-libp2p provides the networking layer of that model. **Impact:** lowering the barrier to building these apps brings more real, user-facing activity onto Filecoin, which indirectly supports Objective 1 (Drive Paid Onchain Deals). 3.2 Verification metrics N/A. js-libp2p is networking infrastructure and does not directly move onchain metrics. 3.3 References - Cayman Nava (GitHub: @wemeetagain), ChainSafe. ChainSafe currently maintains yamux and noise, which this grant migrates to us; Cayman can speak to the handover and to our work. - Alex Potsides (GitHub: achingbrain), previous lead maintainer of js-libp2p. Can vouch for our stewardship. 4.1 Monthly Operating Burn [ "< $10K (basic solo operation or part-time team)" ] 4.2 What % of total team monthly burn depends on this grant? Negligible current burn; we maintain js-libp2p part-time and unpaid. The grant wouldn't cover existing overhead; it would fund dedicated maintenance time we otherwise can't commit. 4.3 If this grant is not awarded, what happens? js-libp2p is currently maintained part-time and unpaid by the two of us using spare time we have. We want the project to succeed and see it as an important piece for future dapp developers. Without this funding we would have to focus more on personal projects and could not commit as much time to js-libp2p, until we find or build our own funding for it. WebRTC-Direct v2 is vital enough that we would still push it forward, but without funding it would progress much more slowly and on an uncertain timeline. | Month | Merged PRs | Note | | --- | --- | --- | | Sep 2025 | 34 | Shipyard's last active month | | Oct 2025 | 14 | | | Nov 2025 | 5 | handover gap | | Dec 2025 | 0 | project stalled | | Jan 2026 | 4 | trough | | Feb 2026 | 6 | Daniel and Ste take over | | Mar 2026 | 20 | | | Apr 2026 | 38 | | | May 2026 | 36 | recovered to pre-handover capacity | 4.4 Core Team - **Daniel Thompson**: js-libp2p maintainer (GitHub: tabcat). Day-to-day maintenance lead since Feb 2026. - **Steven Jones (Ste)**: js-libp2p maintainer (GitHub: dozyio). Active co-maintainer since Feb 2026. 4.5 Has your team received a ProPGF grant or funding from PLFIF before? [ "No" ] 5.1 Key risks & dependencies - **Spec stalling:** the WebRTC-Direct v2 spec ([libp2p/specs#715](https://github.com/libp2p/specs/pull/715)) is still a draft and has not yet received review feedback. Finalization depends on the libp2p community and go-libp2p maintainers engaging; if review stalls, the spec milestone could slip even though the implementation is within our control. - **Adoption:** if the Filecoin ecosystem does not converge on js-libp2p for building dapps, outside contributions and usage could decline, weakening the project's long-term sustainability and the case for browser-based connectivity. Part of our aim is to demonstrate and grow that usage. - **Funding continuity:** this is a 3-4 month grant; sustaining the same level of maintenance afterward depends on follow-on funding. - **QUIC transport (optional extension only):** the optional one-month extension includes a QUIC transport built on Node.js's QUIC implementation (node:quic), which is still experimental and not yet stable in a released Node.js version. Anything else you want to share that we didn't ask? We understand this work is not directly related to the network objectives, but we believe it is important to application developers: js-libp2p is the networking layer their browser and JavaScript apps depend on, and the foundation IPFS Helia, the standard JavaScript IPFS implementation, is built on. How Helia depends on js-libp2p, from Helia's own manifest and docs: > "The core of Helia will be very focused on use as a library: just js-libp2p, a datastore, and a blockstore that transparently uses js-bitswap to load any requested blocks not already in the blockstore from the network and/or to transfer them to network peers." ([Helia Manifesto](https://github.com/ipfs/helia/wiki/Manifesto)) The core `helia` package depends directly on `libp2p` and its modules: ``` IPFS Helia (npm: helia) │ ├─ libp2p the p2p node every Helia node runs on ├─ @libp2p/interface the libp2p API Helia is written against │ ├─ security @chainsafe/libp2p-noise noise() ◀ grant M2 (noise) │ @libp2p/tls tls() (Node) ├─ muxing @chainsafe/libp2p-yamux yamux() ◀ grant M1 (yamux) │ @libp2p/mplex mplex() ├─ transports @libp2p/tcp @libp2p/websockets @libp2p/webrtc ◀ grant M3 (WebRTC-Direct v2) ├─ routing @libp2p/kad-dht @libp2p/bootstrap @libp2p/mdns ├─ NAT/relay @libp2p/circuit-relay-v2 @libp2p/autonat @libp2p/dcutr @libp2p/upnp-nat ├─ identity @libp2p/identify @libp2p/ping @libp2p/keychain └─ misc @libp2p/http @libp2p/config ``` Helia's default libp2p config wires these up (`connectionEncrypters: [noise(), tls()]`, `streamMuxers: [yamux(), mplex()]`), and its Bitswap block exchange runs over libp2p streams. Sources: [helia package.json](https://github.com/ipfs/helia/blob/main/packages/helia/package.json), default config [node](https://github.com/ipfs/helia/blob/main/packages/helia/src/utils/libp2p-defaults.ts) / [browser](https://github.com/ipfs/helia/blob/main/packages/helia/src/utils/libp2p-defaults.browser.ts), [IPFS docs](https://docs.ipfs.tech/concepts/libp2p/). Contributing to Core Infrastructure? js-libp2p is the JavaScript/TypeScript implementation of libp2p, the modular peer-to-peer networking stack that the IPFS and Filecoin networks are built on. It helps developers build novel peer-to-peer applications across both native and browser environments, bringing libp2p connectivity directly into the browser client. Its primary dependent is Helia, the standard JavaScript IPFS implementation, which builds entirely on js-libp2p. Through Helia, effectively every browser- or Node-based application that stores, provides, or retrieves content-addressed data relies on js-libp2p, making it foundational to the dapp developers building the user-facing applications that drive Filecoin and IPFS usage. Objective 1 Indirect Objective 2 N/A Objective 3 N/A Open Source Context N/A. js-libp2p is fully open source, dual-licensed under MIT and Apache-2.0, with all development conducted in public on GitHub.
Sign in to comment.