{"id":22796285,"url":"https://github.com/makerxstudio/node-ipfs","last_synced_at":"2026-02-24T17:38:44.102Z","repository":{"id":219730861,"uuid":"734620693","full_name":"MakerXStudio/node-ipfs","owner":"MakerXStudio","description":"A NodeJS package that makes interacting with IPFS easier","archived":false,"fork":false,"pushed_at":"2024-11-19T09:05:57.000Z","size":678,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-03-29T08:11:20.769Z","etag":null,"topics":["blockchain","ipfs","nft","npm","package","storage","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MakerXStudio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-22T06:49:35.000Z","updated_at":"2024-11-19T09:05:16.000Z","dependencies_parsed_at":"2024-01-29T13:13:59.232Z","dependency_job_id":"3f22c050-21f0-42fb-a7ee-8b371ad80fdf","html_url":"https://github.com/MakerXStudio/node-ipfs","commit_stats":{"total_commits":17,"total_committers":4,"mean_commits":4.25,"dds":"0.23529411764705888","last_synced_commit":"9fde561056e1857bc657c05b468d57cdcc9dae66"},"previous_names":["makerxstudio/node-ipfs"],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakerXStudio%2Fnode-ipfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakerXStudio%2Fnode-ipfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakerXStudio%2Fnode-ipfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakerXStudio%2Fnode-ipfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MakerXStudio","download_url":"https://codeload.github.com/MakerXStudio/node-ipfs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248883248,"owners_count":21177184,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","ipfs","nft","npm","package","storage","typescript"],"created_at":"2024-12-12T05:11:48.666Z","updated_at":"2025-10-25T05:07:53.396Z","avatar_url":"https://github.com/MakerXStudio.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Node IPFS (node-ipfs)\n\n\u003e A NodeJS package that makes interacting with IPFS easier\n\n[![Build Status][build-img]][build-url]\n[![Issues][issues-img]][issues-url]\n[![Semantic Release][semantic-release-img]][semantic-release-url]\n\n## Install\n\n```bash\nnpm install @makerx/node-ipfs @makerx/node-cache\n```\n\n\u003e [!NOTE]\n\u003e This package is only compatible with Node 18 and above, as it uses the native node fetch.\n\n## Usage\n\nThe primary purpose of this package is to make reading and writing files on the IPFS network easier. Unfortunately IPFS can be slow, so to mitigate this some cache implementations have also been supplied.\n\n```typescript\nimport { S3 } from '@aws-sdk/client-s3'\nimport { PinataStorageWithCache } from '@makerx/node-ipfs'\nimport { S3ObjectCache } from '@makerx/node-cache'\n\nconst s3Cache = new S3ObjectCache(\n  new S3({\n    region: process.env.AWS_REGION,\n  }),\n  'CACHE_BUCKET_NAME',\n  'cache/ipfs/',\n)\n\nconst ipfs = new PinataStorageWithCache('PINATA_STORAGE_API_JWT', s3Cache)\n\n// Put blob to IPFS\nconst myImage = new Uint8Array([104, 101, 108, 108, 111])\nconst { cid } = await ipfs.putBlob(myImage, 'image/png', 'my_file.png')\n\n// Put json to IPFS\nconst { cid } = await ipfs.put({ hello: 'world' }, 'my_file.json')\n\n// Get blob by cid from cache with pass through to IPFS\nconst myImage = await ipfs.getBlob('cid')\n\n// Get json by cid from cache with pass through to IPFS\nconst json = await ipfs.get('cid')\n\n// Get cid of blob\nconst myImage = new Uint8Array([104, 101, 108, 108, 111])\nconst cid = await ipfs.getCID(myImage)\n\n// Get cid of json\nconst cid = await ipfs.getCID({ hello: 'world' })\n```\n\n## Why Pinata?\n\nWe use [Pinata](https://www.pinata.cloud/) to upload and pin files on the IPFS network. We previously used [web3.storage](https://web3.storage/), however they decided to [implement a more complex upload API and sunset their old API](https://blog.web3.storage/posts/the-data-layer-is-here-with-the-new-web3-storage), which makes integration a lot more complex.\n\nIn order to use this library you'll need to [signup for a free account on Pinata](https://app.pinata.cloud/register) and generate a JWT to access the API.\n\n---\n\n[build-img]: https://github.com/MakerXStudio/node-ipfs/actions/workflows/release.yaml/badge.svg\n[build-url]: https://github.com/MakerXStudio/node-ipfs/actions/workflows/release.yaml\n[issues-img]: https://img.shields.io/github/issues/MakerXStudio/node-ipfs\n[issues-url]: https://github.com/MakerXStudio/node-ipfs/issues\n[semantic-release-img]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\n[semantic-release-url]: https://github.com/semantic-release/semantic-release\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakerxstudio%2Fnode-ipfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmakerxstudio%2Fnode-ipfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakerxstudio%2Fnode-ipfs/lists"}