Storedat.io
Listen Now
About This Episode
In this episode of DevNTell, Narb introduces Storedat, a new venture aimed at simplifying Web3 storage. Storedat is a GraphQL API built on top of decentralized storage providers like Arweave and Filecoin, designed to offer a provider-agnostic way to read and write data while abstracting away the complexities of Web3 from the user. Narb discusses Storedat's mission to improve user experience in decentralized storage and demonstrates its features, including both public and API-key-gated endpoints. He showcases how to query and mutate data across different providers using a single schema and highlights the platform's potential for grouping and filtering data. The presentation concludes with information on how to access resources, sign up for the beta program, and provide feedback.
Key Takeaways
Storedat is a GraphQL API designed to simplify decentralized storage (Web3) by providing a unified way to read and write data across multiple providers like Arweave and Filecoin.
The core mission of Storedat is to enhance the user experience of decentralized storage, making it accessible to both Web2 and Web3 users by abstracting away complexities like wallet interactions, gas fees, and private key management.
Storedat offers both publicly accessible and API-key-gated endpoints, allowing for diverse functionalities such as querying existing decentralized data and uploading new content without transaction costs.
A unique feature of Storedat is its indexing layer, which enables faster data retrieval and the ability to group data from different providers under a single identifier for easier management and querying.
Storedat is currently in beta, with plans for future expansion to support more storage providers and introduce advanced features like data encryption and a user dashboard.
Timestamps(click to jump)
Episode Transcript
Read full transcriptHide transcript
All right. Welcome, everyone. GM, GA, GA, everybody. So welcome to what's going to be another great DevNTell. So if you didn't know, DevNTell is a 30-minute window for members of the DAO to showcase something they're passionate about, working on, etc. This can be an awesome project they've been working on, demonstrating new testing best practices, automation goodies, smart contracts, how to structure a project, etc. Basically, if you've got a passion for something, this is your opportunity to share it with the community. And today, I will be playing host and presenter and be showing you my latest venture called Storedat. So with that, let me share my screen.
Can you all see? You should be able to just see Discord now. And if I switch over, can you test, can you see Chrome now?
Yep, including all the inappropriate links. Cool. Excellent. This is we're right on the edge here at DevNTell. So thank you very much. So yeah, so today, what I'll be going over is a new venture called Storedat. And basically, the intention around this is to make Web3 storage easier to use.
So a bit about me. So my name is Narb. You might know me as Narb 2669 on Discord. But Web2 me is basically an engineer working out of travel. Web3 me is a full-fledged Developer DAO member hosting these wonderful sessions with all you folks, as well as running a not-for-profit called The Glosseta Foundation. So if you recall last year when we started DevNTell, I demonstrated a project called Glosseta, which was which is a Web3 glossary, and kind of out of that decided to make a foundation out of it to kind of push Web3 education towards a non-technical crowd. And one of the pillars under this to kind of make the whole mission kind of come about was creating a way for myself to easily be able to create content and have that be stored permanently. So one of the projects that I wanted to kind of get out there by the end of this year was around making Web3 storage more accessible to everybody. So that's why I created Storedat.
And I do love me a good play on words. So sorry if there's going to be a lot of puns and whatnot. But basically, what is Storedat? So Storedat, very simply put, is a GraphQL API built on top of Web3 storage providers like Arweave and Filecoin. Why does it exist? It exists to accelerate the adoption of decentralized storage by providing a provider-agnostic way to read and write data and, very importantly, to abstract away the Web3 from the user.
And that kind of plays into the whole purpose of this is to basically make a better user experience around decentralized storage to make it accessible to all, like we are all doing on the DeFi and blockchain side of things, trying to abstract away wallet interactions and how Reddit is basically not using the word NFTs when they're talking about their avatars and people not having to pay gas prices and so on and so forth. And this is kind of what I'm trying to do in the space of decentralized storage. And the ultimate mission for Storedat is to become the go-to hub for anyone looking to plug and play with decentralized storage.
So at a glance, some of the features include, like I mentioned before, a provider-agnostic schema to be able to read and write data. So regardless of the provider of your choice, so at this point in stage only Filecoin and Arweave, you can read and write data using a single schema, versus you having to integrate a separate API for each of these things, or SDK. And data uploaded through the API, so through Storedat, is added to a indexing layer that enables you to read read that data in a faster manner, as well as being able to group said data. We'll get into that a little later.
And one of the things to one of the things I'm doing to improve the user experience is eating up the transaction costs that are associated with writing data. So the whole point of this and one of the big things for me when I started working with decentralized storage is a lot of things you had to pay for, and some of sometimes like working with wallets, signing transactions, it kind of like for me, it wasn't a big deal, but for somebody who doesn't really know too much about the area and just wants to start playing around, it wasn't very accessible. So one of the things that I was looking towards fixing was basically introducing this, I suppose, this variation of gasless transactions, but on the on the decentralized storage route. And as I mentioned, the initial support is for Filecoin and Arweave, but I plan to integrate more. And like I just mentioned, you don't have to deal with wallets, signing transactions, managing private keys, or paying for transactions, you just use the thing.
Now, some features. So Storedat is available both publicly and has public publicly accessible endpoints and endpoints that are gated by an API key. So the ones that are publicly accessible, as you see here, these queries are quite self-explanatory, but and you might be wondering, why why should I be why should I read data from Storedat when I can actually be able to read the same data using Arweave's SDK or Filecoin's SDK? Well, what I allow you to do, at least from an Arweave point of view, is you can read up to 10 pieces of data. But if you've ever worked with Arweave, you see that you typically have to query their GraphQL API to find your transaction ID, and then subsequently query the Arweave.net gateway with that transaction ID to be able to actually get your data. But here, it's just one call and you can get your data and your metadata in one shot. And the reason I have limited it to 10 items at this moment of time is just to kind of ease ease my way into building the the robustness of the system, and that will be expanded over time. The Get Data from Filecoin, again, self-explanatory. At this point in time, you're able to read one piece of data from Filecoin through a CID, but I'm thinking about expanding that to kind of align with the Arweave query. And Get Glossary Term is a use case that I'm using to support Glosseta. So Glosseta today is fully running on the Storedat API to be able to read its glossary terms.
And the API gated features, at this point in time, there are two. So, of course, one is Create Data. So this is a mutation that lets you write, at this point in time, text or JSON to your provider of choice, so that's either Filecoin or Arweave. And Get Data, that lets you read data through the Storedat indexing layer. And you might be wondering, Narb, you just told me I can read straight from Arweave or Filecoin. What's the difference between that and this Get Data? Well, things so the previous slide, those are in my view like power user Web3 power user methods. So if you've stored data through Arweave or Filecoin before, obviously it won't be available for reading through the indexing layer here. So that's where you would go towards if you have existing data. However, if you create data through Storedat, you can not only read it through those power user methods, but you also have access to them through this Get Data. And what's really cool is you can actually mix and match, and which will kind of which we will get into here in examples.
And with that, perfect segue, we're going into demo. So first thing I want to show is the website. So if you go to Storedat.io, you'll be presented with this awesome UI. Not gonna lie, this is one of the best front ends I've I've created personally. And essentially, it has the same spiel I just I just gave you. And there's also prompts here for you to sign up for the beta. So if you recall, the beta will will give you access to API keys that will let you perform the mutation basically let you perform the mutation against the Filecoin or Arweave.
If you click the documentation, I also have some awesome docs here for you. So kind of it'll tell you how to get started, how to get your API key, how to explore the playground, sorry, and I've also created a starter template for you to be able to play around, based on NextJS and Apollo Client. So you can fork that, pull that, and it basically has the GraphQL integration already for you to be able to query through those power user methods, the Get Data from Arweave and Filecoin and Get Glossary Term, and gives you a good great starting point to kind of play around with things. And of course, there's also the per-method overview of all the things with sample queries and their responses.
And with that, just wanted to kind of give you give you a view of the the code in action. So Get Data from Arweave, you can pass in a wallet address, so this is the target account that you want to read data from. You can pass in metadata if you know if you don't know, you can query Arweave with key-value pairs. You can sort and you can pass in a limit number. So that's the default is one, the max is 10 at this point. If you query, you get back basically so this is the glossary term data at this point in time, or which I queried rather. And you have sorry, is someone on yeah, thank you. Yeah, so you can get four at this I've queried four, and you get four blocks of data. And what's different, like I mentioned, what's different about this is I've actually provided you the data and the link to get that data in one call, versus you having to do separate calls to get this data ultimately.
Similarly with Filecoin, I'm we can query for a given CID and we get back the data. So in this case, I've queried a particular NFT metadata set from MoonRunners. And then of course Get Glossary Term, self-explanatory, I can fetch glossary term definitions.
And so the mutation, so what I'll do is I will store so I can create against Arweave. So I'll create JSON here. And currently, like I mentioned before, the supported types today are JSON and text. But I'm looking to expand towards images and videos as well. So giving you that whole full full feature set of core content types. So if we run this mutation now, you see we've added this JSON to Arweave. And we can do the same and store against Filecoin. So we can change up the numbers here. And we've also stored this next set of JSON to Arweave. And now, we can actually query this data through the the Storedat indexing layer.
So if I say so I, my apologies. So this group ID, I think warrants some explanation. So here, what you can use this group ID for is to group data under a single identifier. So if you want to query that data and by that particular set, you can through this Get Data. So a use case could be if you are you have content that you want to display on your site, you can group your images, your text, and potentially some JSON data if you so choose under the same group ID and then query for it in one shot, as well as being able to filter through the metadata you've added, adding being able to sort and whatnot. So in this case, I've created the group ID DevNTell Demo. So if I query here, so this is so I sorted by descending order. So this was the very last thing that we updated together, or we added together. I can increase the limit. So if I do two, now we see the Arweave upload and the Filecoin upload together. So just think about that. We queried for two different sets of data that we uploaded to different to two different sets of providers. So that is something that I haven't been able to find today. I don't know if there are any concrete use cases at this point in time. But if we imagine that we have different decentralized storage providers for different purposes, then we can utilize this type of creation and queries to be able to get all this data in one shot, which I think is pretty neat.
And at this point of time, I think this is great point to stop for questions. And let me see. Oh, thank you thank you for the kind words, Kemp and Brian. Awesome. But yes, just going to pause here for any questions anybody may have. Oh yes, how do I make it free? Indeed. So today, the how I'm covering the cost is through grant funding, graciously provided by Protocol Labs and Arweave. And out of my own pocket, of course. That's how typically how most startups kind of start out. But eventually down the line, when this starts to really get a lot of traffic, I have some plans around a pricing structure, very similar to what Web3 storage is kind of coming out with, nothing like out of this world, but basically just enough to keep things sustained. Now that's not concrete, but it's something that I'm thinking about.
I don't know, I don't know if I have all the monies. Yes. So it's it's too early to say whether how one can be able to pay. But basically, my whole initiative here is to make this accessible to the Web2 user that doesn't really know too much about the Web3 space. So payment options like credit card would probably be a go-to. Of course, there's also the option to pay with crypto. But again, too early to kind of go down those down that rabbit hole. What kind of beta customers am I looking for? So basically, anybody that kind of wants to start playing around, being able to create data through this through this medium. I would not suggest you use this in a production environment at this point in time, but rather in your side projects or things you're playing around with, or perhaps POCs that you're creating that need to be powered by decentralized storage. I would say those are appropriate things to use and a good purpose to be able to sign up for the beta program. But eventually, the sign-up process so the sign-up process now is kind of gated because I want to control kind of the ebbs and flows of who and what who is using the API to be able to kind of make my baselines and kind of improve things and bug fixes and whatnot. But eventually down the line, you will have a dashboard that you can sign up for autonomously and create your API keys on your own.
Thank you, yes. The Storedat.io frontend is is pretty dope. I did it, the design work is is me. Basically, I did all the things, the backend, the frontend, and all the wonderful stuff you see now. I used a no-code solution for the frontend. I I conceded, submitted, and kind of went for ease-of-life approach there. But backend and everything you see here, it was basically me. Yes. Oh yes, and oh yes, the logo. So all the what I wanted to mention, so all the all the logos and the art you see here, I am no artist. I can do only so much. But I actually utilized Dall-E to kind to create these. So it's a nice little life hack to be able to get an on-demand artist so to speak.
When am I hiring? Yes. So still in the inception phases of this. But yeah, the hope is to kind of be able to expand this beyond the beta program and get some folks some helping hands, because I certainly can't do this by myself forever. Not without some consequences. Yeah. Are there any questions from the crowd or something I may have missed in the chat?
I guess, is this something that you all think you would use, or would you prefer still to go towards a single integration approach? Oh oh okay. So question from the crowd here, what can we all do to help you the most at this time? So the biggest thing that would help me is a just start using this and if you like it, get the word out, let other people know that may be looking for a tool like this. Sign up for the beta. You there's really nothing to lose. You get to upload things for for free to Arweave and Filecoin, no expense to you. You just need to use the thing. And I would love any and all feedback you may have. You can be as brutal as as you want. I'm looking to improve things here. So any feedback you have is gold. Yes. The URL is so for the the GraphQL API, it is perma.storedat.io/api/v1/graphql. And all of that is actually is in the documentation. The frontend is Storedat.io. But yes.
What no-code solutions for frontend did you use, and can you repeat where did you get the graphics? So no-code solution I used TypeDream for the frontend. The images that you see on the landing page were created through Dall-E, the OpenAI image generator, the one that you type the prompt and then it spits you out for images. So that if you're looking to build your own websites and you don't have an artist or don't think you can you don't have the time to do the art, I suggest it's a great little life hack that I discovered through this all. So and I think their terms and service have changed so that the thing you create do actually belong to you, so it is your IP. Is this tool to upload metadata on decentralized storage, or is it more of a way to retrieve data from decentralized storage? Alice, yes, so it's both. So you are able to query data from decentralized storage and sorry about that, and to be able to upload as well in a provider-agnostic way. So you don't so it's one integration that you have to do with the single GraphQL API and you have access to read and write through at this point Filecoin and Arweave, but I plan to also expand to other decentralized storage providers.
We have about four minutes left here, gang. Just want to leave you off with some resources. So like I mentioned, if you want to sign up for beta, visit auth.storedat.io. It's kind of simple to sign up, it's signing up with a Google form, but like I mentioned, that will change after some further iterations to create a dashboard for you to be able to just sign up like you do on any site. Docs, API playground, and if you're if you came late, there I did mention there is a NextJS and Apollo Client template that you can fork or pull. And I've integrated the client already as well with the public-facing queries. So you can get up and running quickly and play around. And if you're curious about The Glosseta Foundation, check out Glosseta.foundation.
I'm just going to take a sip of water here. All right. Yeah. Why not why not go the SDK route, just out of curiosity? Like it's because you needed a service a service layer to be able to ping from multiple services as opposed to like, hey, if I did an SDK that just I make a request I could I could make my I could manage in terms of pulling from different providers on my own. But could you like elaborate on that a little bit in terms of why not an SDK as opposed to a service? For sure. So the main thing, time. So I do want to also explore an SDK. But for me, the most logical first step was an API, just because it solved a couple of problems in the well, not problems so to speak, but things that didn't exist today. So I there is no Filecoin GraphQL API as far as I can tell. And the Arweave process to fetch data was two network calls where I just wanted one network call. But definitely, the SDK is in my line of sight and is something I want to kind of help or look to build out and future iterations.
Basically, I want as many options available as possible for people to be able to utilize this and kind of ease their lives when they're using decentralized storage. And we are one minute until the community call. So if you have any further questions, please feel free to ping me. Make sure to sign up for the beta. You there's really nothing to lose. You get to upload things for free to Arweave and Filecoin, no expense to you. You just need to use the thing. And I would love any and all feedback you may have. You can be as brutal as as you want. I'm looking to improve things here, so any feedback you have is gold. Yes. The URL is so for the GraphQL API, it is perma.storedat.io/api/v1/graphql. And all of that is actually is in the documentation. The frontend is Storedat.io. But yes. Thank you again, everybody, for coming out. And hope to see you using Storedat soon. Remember, just Storedat. All right, gang. All the best.
Listen On
Share This Episode
Share on XWatch Episodes Live!
Subscribe to our event calendar and never miss a live episode.
View Event Calendar