An excerpt from the repository, fetched Nov 13, 2026.
Read the project’s introduction
⛔️ DEPRECATED: js-IPFS has been superseded by Helia
📚 Learn more about this deprecation or how to migrate
⚠️ If you continue using this repo, please note that security fixes will not be provided
The JavaScript implementation of the IPFS protocol
Getting started
Read the docs
Ensure CORS is correctly configured for use with the HTTP client
Look into the examples to learn how to spawn an IPFS node in Node.js and in the Browser
Consult the Core API docs to see what you can do with an IPFS node
Head over to https://proto.school to take the IPFS course that covers core IPFS concepts and JS APIs
Check out https://docs.ipfs.io for glossary, tips, how-tos and more
Need help? Please ask 'How do I?' questions on https://discuss.ipfs.io
Find out about chat channels, the IPFS newsletter, the IPFS blog, and more in the IPFS community space.
Table of Contents
Getting started
Install as a CLI user
Install as an application developer
Documentation
Structure
Packages
Want to hack on IPFS?
License
Getting Started
Install as a CLI user
Installing ipfs globally will give you the jsipfs command which you can use to start a daemon running:
$ npm install -g ipfs
$ jsipfs daemon
Initializing IPFS daemon...
js-ipfs version: x.x.x
System version: x64/darwin
Node.js version: x.x.x
Swarm listening on /ip4/127.0
.... more output
You can then add a file:
$ jsipfs add ./hello-world.txt
added QmXXY5ZxbtuYj6DnfApLiGstzPN7fvSyigrRee3hDWPCaf hello-world.txt
Install as an application developer
If you do not need to run a command line daemon, use the ipfs-core package - it has all the features of ipfs but in a lighter package:
$ npm install ipfs-core
Then start a node in your app:
import * as IPFS from 'ipfs-core'
const ipfs = await IPFS.create()
const { cid } = await ipfs.add('Hello world')
console.info(cid)
// QmXXY5ZxbtuYj6DnfApLiGstzPN7fvSyigrRee3hDWPCaf
Documentation
Concepts
Config
Core API
Examples
Development
Structure
This project is broken into several modules, their purposes are:
/packages/interface-ipfs-core Tests to ensure adherence of an implementation to the spec
/packages/ipfs An aggregator module that bundles the core implementation, the CLI, HTTP API server and daemon
/packages/ipfs-cli A CLI to the core implementation
/packages/ipfs-core The core implementation
/packages/ipfs-core-types Typescript definitions for the core API
/packages/ipfs-core-utils Helpers and utilities common to core and the HTTP RPC API client
/packages/ipfs-daemon Run js-IPFS as a background daemon
/packages/ipfs-grpc-client A gRPC client for js-IPFS
/packages/ipfs-grpc-protocol Shared module between the gRPC client and server
/packages/ipfs-grpc-server A gRPC-over-websockets server for js-IPFS
/packages/ipfs-http-client A client for the RPC-over-HTTP API presented by both js-ipfs and go-ipfs
/packages/ipfs-http-server JS implementation of the Kubo RPC HTTP API
/packages/ipfs-http-gateway JS implementation of the IPFS HTTP Gateway
/packages/ipfs-http-response Creates a HTTP response for a given IPFS Path
/packages/ipfs-message-port-client A client for the RPC-over-message-port API presented by js-ipfs running in a shared worker
/packages/ipfs-message-port-protocol Code shared by the message port client & server
/packages/ipfs-message-port-server The server that receives requests from ipfs-message-port-client
Packages
List of the main packages that make up the IPFS ecosystem.
Package
Version
Deps
CI/Travis
Coverage
Lead Maintainer
Files
ipfs-unixfs
Alex Potsides
Repo
ipfs-repo
Alex Potsides
ipfs-repo-migrations
N/A
Exchange
ipfs-bitswap
Dirk McCormick
IPNS
ipns
Vasco Santos
Generics/Utils
ipfs-utils
Hugo Dias
ipfs-http-client
Alex Potsides
ipfs-http-response
Vasco Santos
ipfsd-ctl
Hugo Dias
is-ipfs
Marcin Rataj
aegir
Hugo Dias
libp2p
libp2p
Jacob Heun
peer-id
Vasco Santos
libp2p-crypto
Jacob Heun
libp2p-floodsub
Vasco Santos
libp2p-gossipsub
Cayman Nava
libp2p-kad-dht
Vasco Santos
libp2p-mdns
Jacob Heun
libp2p-bootstrap
Vasco Santos
@chainsafe/libp2p-noise
N/A
libp2p-tcp
Jacob Heun
libp2p-webrtc-star
Vasco Santos
libp2p-websockets
Jacob Heun
libp2p-mplex
Vasco Santos
libp2p-delegated-content-routing
Jacob Heun
libp2p-delegated-peer-routing
Jacob Heun
IPLD
@ipld/dag-pb
N/A
@ipld/dag-cbor
N/A
Multiformats
multiformats
N/A
mafmt
Vasco Santos
multiaddr
Jacob Heun
This table is generated using the module package-table with package-table --data=package-list.json.
Want to hack on IPFS?
The IPFS implementation in JavaScript needs your help! There are a few things you can do right now to help out:
Read the Code of Conduct and JavaScript Contributing Guidelines.
Check out existing issues The issue list has many that are marked as 'help wanted' or 'difficulty:easy' which make great starting points for development, many of which can be tackled with no prior IPFS knowledge
Look at the IPFS Roadmap This are the high priority items being worked on right now
Perform code reviews More eyes will help
a. speed the project along
b. ensure quality, and
c. reduce possible future bugs.
Add tests. There can never be enough tests.
License
Read the full README on GitHub