metadata: {"signature": "0x28f610f61bc4965d07a29c91e77e51870f1fea9b72b70f69227efe5899f8719747008774c7943c4becfafb6653eebd6c33b77ef49386c32b4a09e1b360c910ca1c", "application": {"round": "0x1b48bb09930676d99dda36c1ad27ff0a5a5f3911", "answers": [{"type": "email", "hidden": true, "question": "Email Address", "questionId": 0, "encryptedAnswer": {"ciphertext": "dJWOATRCFn6KExlY2nc1Txfc6liOnpwWvE8ZuuWA4Qbt7SSC7kkA/4GEFToTwybM", "encryptedSymmetricKey": "0d571cdea1d4cddb17f8c357b0eee16f9dfb4e83587e19697bd21ea571115e10aa9f94118dc2b78e54b32d82c1feeb162c312f75d2029df481244790b5be2d2cde48455318c2b5d746b34e2604cbc74b2712bb723899d6b521f895fd5e55e2a59f5d5ccd4a5cfaeb2e3a33e031b05312f71fc4b89fbbf25360e6064dbfaafbb40000000000000020dd3493b2d5d730893765c6cb91e4af0ef2d69c85a531f3b498394429af2bb845a5b2404209b479d6a5a2cd6a9ee60492"}}, {"type": "short-answer", "hidden": true, "question": "Telegram Handle We Can Use To Contact You(you can answer N/A)", "questionId": 1, "encryptedAnswer": {"ciphertext": "9SrKZ6zOXPOjxTOp4m1mEzHo7Vf64Xplzdpw+rZ5wAo=", "encryptedSymmetricKey": "0f4408e38bbe776d6c2b84c0a02f3ac93faec338e35d0dcb2251ce7e2c3574d2973e164cb648fb2a91ebd193b3dc97140fe79f534ca67648b560b1c9591658f8945699483db9380e94456ef8f6ea84c533bdb226f823f3cbeca7c3a5fbaa88b15d4846fc8a18b4568dafb9e8d98a27113d066c2ae44ca4587465b7bb3d329f1f00000000000000204c32332a97c5f51b52d3b118e615e5ec4017aec178e0a97c508836f155af2893a9f9e2a5aab018607d1d15fe35fc5d87"}}, {"type": "link", "answer": "https://github.com/mbcse/web3stash", "hidden": false, "question": "Project GitHub Repo (Not Team Page): ", "questionId": 2}, {"type": "number", "answer": "1", "hidden": false, "question": "Total Team Size", "questionId": 3}, {"type": "paragraph", "answer": "mbcse - 0xAa81f641d4b3546F05260F49DEc69Eb0314c47De", "hidden": false, "question": "List the Github Handles and Wallet Addresses of Each Team Member (e.g. owocki - 0x123, kbw  - 0x456):", "questionId": 4}, {"type": "paragraph", "answer": "N/A", "hidden": true, "question": "Social profiles (Twitter, Farcaster, Lens, etc.) of other main team members publicly associated with the project (N/A for solo founders): ", "questionId": 5}, {"type": "link", "hidden": false, "question": "Link to your Public Group Chat (e.g. Discord or Telegram)", "questionId": 6}, {"type": "paragraph", "answer": "N/A", "hidden": false, "question": "If you've participated in past grant rounds, please share any new updates or milestones from the prior months (N/A if you haven\u2019t participated previously). ", "questionId": 7}, {"type": "address", "hidden": true, "question": "If you participated in past grant rounds using a different project payout wallet address, please share it here:", "questionId": 8}, {"type": "paragraph", "answer": "You can look at npm for daily and weekly downloads\nhttps://www.npmjs.com/package/web3stash", "hidden": false, "question": "Where should we look to see the impact of your project? Please provide links to public websites and/or the latest values for key metrics you track privately. This might be used in future impact reports", "questionId": 9}, {"type": "paragraph", "answer": "0", "hidden": false, "question": "Total Prior Funding for the project in USD", "questionId": 10}, {"type": "checkbox", "answer": ["Grants"], "hidden": false, "question": "Which of the following funding sources do you have? Check all that apply", "questionId": 11}, {"type": "number", "answer": "6", "hidden": false, "question": "How old (in Months) is the project?  ", "questionId": 12}, {"type": "checkbox", "answer": ["Asia"], "hidden": false, "question": "Location/Region where the project is based ", "questionId": 13}, {"type": "multiple-choice", "answer": "Yes", "hidden": true, "question": "Have you read and confirmed your grant abides by the Program General Eligibility Policy? ", "questionId": 14}, {"type": "multiple-choice", "answer": "No", "hidden": true, "question": "Are you applying for any other OSS rounds in GG20? (Reminder: you can only be accepted into one) ", "questionId": 15}, {"type": "paragraph", "answer": "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.", "hidden": false, "question": "Please describe the developer tool or library you're working on. How does it fit into the development environments, frameworks, or testing tools landscape for Web3? ", "questionId": 16}, {"type": "paragraph", "answer": "Based on the number of npm downloads stars and forks. We are still a new library but very much used by the community", "hidden": false, "question": "Please provide details on how you measure the adoption of your tool and/or library. Do you have metrics on usage, downloads, and installs?", "questionId": 17}, {"type": "paragraph", "answer": "Web3Stash, addresses the need for secure and efficient smart contract development by providing a standardized library to connect to multiple decentralized storage service providers. By offering a single API, developers can seamlessly integrate various blockchain services like IPFS, Pinata, NFT.storage, Arweave, Bundlr, Helia, and others without the need to individually read their documentation and set them up.\n\nThis approach enhances security by minimizing the potential for errors or misconfigurations that could compromise the integrity or confidentiality of smart contracts and associated data. Additionally, by streamlining the connection process, Web3Stash promotes efficiency in development workflows, allowing developers to focus more on building and deploying smart contracts rather than grappling with the intricacies of each storage service.\n\nThe library's key features or capabilities that cater to this need include:\n\nStandardized API: Web3Stash offers a unified API interface, making it easier for developers to interact with different decentralized storage providers using consistent methods and parameters. This standardization simplifies the development process and reduces the learning curve for integrating storage services into smart contracts.\nUniform Configuration Settings: With Web3Stash, developers can leverage similar configuration settings across various storage providers. This consistency minimizes the effort required to switch between different services and ensures that security measures, such as access controls and encryption, remain consistent across deployments.\nSimplified Upload Functions: The library provides straightforward upload functions that abstract away the complexities of interacting with different storage protocols. Developers can easily upload data, files, or assets to their preferred storage provider using a common interface, streamlining the deployment of smart contracts that rely on decentralized storage.\nCompatibility with Multiple Providers: By supporting a wide range of decentralized storage service providers, Web3Stash offers developers flexibility and choice in selecting the most suitable solution for their specific use case or requirements. This versatility enables developers to optimize for factors such as cost, performance, durability, and decentralization without being locked into a single provider.\nOverall, Web3Stash enhances the security and efficiency of smart contract development by providing a standardized, easy-to-use interface for integrating decentralized storage services, thereby empowering developers to focus on building robust and reliable blockchain applications.", "hidden": false, "question": "How does your project address the need for secure and efficient smart contract development? If applicable, detail the library's features or capabilities that cater to this need.", "questionId": 18}, {"type": "paragraph", "answer": "Let's consider a scenario where a developer is building a decentralized application (dApp) that involves storing and retrieving various types of data on the blockchain using different decentralized storage providers. We'll demonstrate how Web3Stash significantly reduces barriers to development and enhances project efficiency in the open-source software (OSS) or Web3 ecosystems through a case study.\n\nCase Study: Decentralized Social Media Platform\n\nImagine a developer is creating a decentralized social media platform where users can upload images, videos, and text posts, which are then stored on decentralized storage networks like IPFS, Arweave, and Pinata. The developer wants to ensure that the platform is resilient, censorship-resistant, and scalable, but faces challenges in integrating multiple storage providers efficiently.\n\nSimplified Integration:\nThe developer discovers Web3Stash, a library that provides a unified API for connecting to various decentralized storage providers. Instead of spending time reading and understanding the documentation of each provider separately, the developer can use Web3Stash to streamline the integration process.\n\nStandardized Configuration:\nUsing Web3Stash, the developer sets up configuration settings for IPFS, Arweave, and Pinata in a single configuration file. The library ensures that the configuration settings are standardized across different providers, reducing the likelihood of errors and simplifying maintenance.\n\nConsistent Upload Functions:\nThe developer utilizes Web3Stash's upload functions to seamlessly upload user-generated content to the decentralized storage networks. Whether it's an image, video, or text post, the developer can use the same upload function regardless of the underlying storage provider, saving time and effort in coding and testing.\n\nFlexibility and Choice:\nThroughout the development process, the developer has the flexibility to experiment with different decentralized storage providers supported by Web3Stash. For example, if one provider becomes prohibitively expensive or experiences downtime, the developer can easily switch to another provider without rewriting significant portions of the codebase.\n\nCommunity Support and Collaboration:\nAs an open-source library, Web3Stash benefits from community contributions and collaboration. The developer can leverage community-driven updates, bug fixes, and enhancements to continuously improve the functionality and reliability of the library, accelerating development cycles and ensuring compatibility with emerging storage providers.\n\nBy incorporating Web3Stash into the development workflow, the developer successfully builds a decentralized social media platform that leverages multiple decentralized storage providers seamlessly. The platform offers users enhanced privacy, censorship resistance, and data permanence while reducing the complexity and overhead associated with integrating decentralized storage solutions.\n\nIn this case study, Web3Stash significantly reduces barriers to development and enhances project efficiency in the OSS or Web3 ecosystems by providing a standardized, easy-to-use interface for interacting with decentralized storage providers, ultimately empowering developers to focus on building innovative and resilient decentralized applications.", "hidden": false, "question": "Can you demonstrate how your tool or library significantly reduces barriers to development or enhances project efficiency in the OSS or Web3 ecosystems? Provide examples or case studies of your tool in action.", "questionId": 19}, {"type": "paragraph", "answer": "We have been Winner/Finalist at EthGlobal HackFS 2023 and are highly appreciated by IPFS, Filecoin Community", "hidden": false, "question": "Anything else you'd like to share about your project, previous work, or other project affiliations? Is there anything you'd like to add that may help determine project eligibility?", "questionId": 20}, {"type": "multiple-choice", "answer": "Yes", "hidden": true, "question": "Would you like to opt-in to future messages from Gitcoin for updates, information, and/or interviews? ", "questionId": 21}, {"type": "multiple-choice", "answer": "Yes", "hidden": true, "question": "Would you like to opt-in to us sharing your information with select third parties for investment opportunities? ", "questionId": 22}], "project": {"id": "0x6c8bb00824315c1746e42eefff4cfa9277079b509983976d495793c052ddd228", "title": "Web3stash Library", "metaPtr": {"pointer": "bafkreiekdes7imshtyw6vuq4wus4mor56vsc5stzpmji3wgfnnau73c33q", "protocol": "undefined"}, "website": "https://www.npmjs.com/package/web3stash", "createdAt": 1714135055918, "userGithub": "mbcse", "credentials": {}, "description": "# Web3Stash\nWeb3Stash 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.\n\n# How this library works and Ease Your Development\n\n## Install the library\nThe official web3stash Node.js package. This is the easiest way to start developing with multiple decentralised storage service providers. \n\n```js\nInstall via NPM\nnpm install --save web3stash\n```\n\n## Importing and Using Package\nTake a look at how you might import and use the web3Stash package:\n\n```js\n// require the webStash module\nconst {Web3Stash} = require('web3stash');\n//or\nimport {Web3Stash} from 'web3stash';\n// provide service name, config properties like privateKeys\nconst service = Web3Stash(<serviceName>, <config>, <configOptions>)\n// Call the methods(Same for all services)\nservice.uploadJson(<jsonData>, <options>).then().catch()\nservice.uploadImage(<path to image>, <options>).then().catch()\nservice.uploadVideo(<path to video file>, <options>).then().catch()\nservice.uploadFile(<path to file>, <options>).then().catch()\n\n```\n\n### Start using services\nHead to services tab in [docs](https://theblockchainchief.gitbook.io/web3stash/) 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:\n\n```js\nWeb3Stash(<serviceName>, <config>, <configOptions>)\n```\n\n- serviceName(string) -  Here you have to put service you want to use like \"PINATA\", \"ARWEAVE\", \"BUNDLR\", etc in string format \n\n\nWe 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. \n\nWe have been winner/Finalist at EthGlobal HackFS 2023.", "lastUpdated": 0, "projectGithub": "mbcse/web3stash", "projectTwitter": "mbcse"}, "recipient": "0x381eA45d53d9d306855153cbc58d04cBe5723A5e"}}