Web3Stash is a standard library to get a single api to connect to multiple decentralised storage service providers. If you are looking to connect to blockchain services like ipfs, pinata, nft.storage, arweave, bundlr, helia etc but don't want to read there docs and set them up individually, You can use this package to connect to any of these services. The best part is all the configuration settings and upload functions are almost same across all the services.
The official web3stash Node.js package. This is the easiest way to start developing with multiple decentralised storage service providers.
Install via NPM
npm install --save web3stash
Take a look at how you might import and use the web3Stash package:
// require the webStash module
const {Web3Stash} = require('web3stash');
//or
import {Web3Stash} from 'web3stash';
// provide service name, config properties like privateKeys
const service = Web3Stash(<serviceName>, <config>, <configOptions>)
// Call the methods(Same for all services)
service.uploadJson(<jsonData>, <options>).then().catch()
service.uploadImage(<path to image>, <options>).then().catch()
service.uploadVideo(<path to video file>, <options>).then().catch()
service.uploadFile(<path to file>, <options>).then().catch()
Head to services tab in docs page and pass config details based on the service you want to use. All services need same three things when initialising web3Stash as shown above:
Web3Stash(<serviceName>, <config>, <configOptions>)
We have made this project opensource and planning to integrate more and more services and also add data streaming and chunk uploading for big files for all the services we support making data uploading to decentralized storage networks easy, efficient, fast, and scalable.
We have been winner/Finalist at EthGlobal HackFS 2023.