Glosseta
Listen Now
About This Episode
Narb introduces the first ever DevNTell session, where he presents his pet project, Glosseta. Glosseta is an open-source Web3 glossary aimed at demystifying the complex terminology of the crypto and blockchain space for both new and existing members. Narb explains the inspiration behind the project, its technical foundation on the Arweave storage protocol, and its future roadmap, which includes becoming a decentralized educational platform and potentially a DAO.
Key Takeaways
Glosseta is a decentralized Web3 glossary that stores all its content permanently on the Arweave protocol.
The project was inspired by Narb's own confusion with Web3 terminology like 'GM' when first entering the space.
Technically, the project uses Arweave's GraphQL API and a custom JSON uploader to store metadata as tags for efficient data retrieval.
The roadmap for Glosseta includes expanding into Wikipedia-style articles, quizzes, and localized content in multiple languages.
Community contributions are encouraged through GitHub issues, research for terms needing definitions, and technical development.
Monetization strategies being explored include Gitcoin Grants and potential educational lesson content.
Featured Guest
Narb
Foudner @ Glosseta
Timestamps(click to jump)
Episode Transcript
Read full transcriptHide transcript
All right. Welcome one and all to the first ever DevNTell. My name is Narb, or Narbe for short. I'm a software developer of six years, full stack, working in travel out of Vancouver, British Columbia. I joined this DAO, I think in early October and have been on this wonderful journey with all of you awesome folks. Just to give a brief overview of what DevNTell is, it's kind of this idea I threw out there in the developer guild to allow everybody in the DAO an opportunity to kind of present any cool thing they're working on or maybe a particular subject area they're passionate about.
So today I'll be going over, for example, my project Glosseta, but if you're so interested in presenting in a DevNTell, you could go the route of perhaps demonstrating what a good unit test looks like versus a bad one, maybe how to structure a class, maybe like a brief introductory overview of like Solidity. Basically the world is your oyster, so to speak. So with that out of the way, I guess we can get into the nitty gritty of things. So again, welcome one and all, and to the people trickling in. So today what I'll be presenting to you is basically my little pet project named Glosseta.
I just switched the screen. Can somebody confirm whether or not they can see my Chrome? Are you trolling or can you see? Oh no, you indeed can't see because I have not enabled screen sharing. Let me just get that going here. Okay, unfortunately looks like I will have to quit and open this unless... that is a shame. Okay, brief intermission. I will be back in one minute, hopefully. Did it work? Can you see the Discord? Yes, oh yeah. Now can you see Chrome? All right, sweet. Back to our content here. So as I was saying, Glosseta, yes, this is a little pet project I've been working on the last month and a half. In its current form factor, it is a Web3 glossary of common terms, lingo, potentially people, applications and whatnot you may see floating around on the internet, hoping to demystify kind of the concepts around Web3 for new and existing folks coming into this space.
The inspiration behind me kind of working on this was basically my own adventure into Web3 where basically all my sources of information were basically Twitter, Reddit, various articles I'd find online, and a lot of the time I didn't really know what people were talking about in that content just because they were throwing out acronyms and whatnot. I'm like, oh what the heck does this mean? For example, as I joined the DAO, I saw a whole stream of GMs flood into my Twitter feed, and I couldn't for the life of me figure out what GM meant, and I literally thought people were like raving about General Motors for some odd reason or another. But then I kind of searched around and I believe somebody on a town hall or something mentioned that it was 'Good Morning'. I'm like, oh well then I wouldn't have known unless somebody had told me. So that's kind of the... I mean GM is a pretty simple acronym, but there are far more complicated terms and whatnot out there. So the aim here is kind of to help people onboard into the space with a basically an ambitious educational platform.
The kind of the mission statement for Glosseta is to provide the best open localized decentralized education platform for anybody of any skill level looking to learn about Web3. And when I say decentralized, Glosseta isn't fully decentralized. Its content that is served is served in a decentralized fashion, though it is still served in regular Web2 fashion off of Next.js.
So I can go briefly demo Glosseta. It's pretty simple, right? It's like not much to it at the moment. So if you want to search for a particular term, let's say if you want to search for DAO, for example, right? So you search for DAO and you indeed get DAO as a definition. And what I think really sets Glosseta apart from any other glossary out there is the fact, as I mentioned before, the content is served in a decentralized manner. And how that is, is all of the definitions you see and all the content that is going to be uploaded in the future are stored on the Arweave storage protocol. If you didn't know what the Arweave storage protocol is, basically it is a humongous huge shared hard drive where data is stored in a permanent fashion. So basically once you upload something, it's there forever and is unable to be taken down or be at the whim of the all too common 404s that you get from common APIs. So in short, Arweave is basically my database and my API for my content. So if you see here in the bottom, I have a little blurb on every particular definition that kind of tells you more or less that. And I have a link here that actually shows the actual transaction that is for a particular given definition. So you see here, this is the actual transaction for the term DAO being uploaded onto Arweave.
Typically if you want to access data on Arweave, the convention is to hit arweave.net and then slash your transaction hash, and then arweave.net gets resolved into this fancy-shmancy stuff. But basically I have all my definitions stored as JSON. So there's the term, the description, the locale, and some extra metadata around that. Now kind of going into some design decisions, how the uploads look like are indeed the entire JSON that you just saw, but there's also this concept of tags. So tags are basically metadata you can attach to the content you upload. So I have this GraphQL that took away my query, so that sucks. Okay, but anyways, the intent is to basically allow you to attach extra metadata for your content. So you're not only restricted to JSON, you can upload like any multimedia, you can upload markdown, any file, basically anything you can conceive of. And as a design decision, I decided to attach all the elements of the JSON as tags. And why I did that was because the GraphQL API only allows you to fetch the transaction IDs. So if I were to search on my account for this given transaction, all I get back is the tags and the transaction that I was actually looking for. And that's not really helpful for me because then I'd have to take that transaction and do a network call to actually get the content. So that's two network calls that I chose not to do, and instead I kind of 'quote-unquote' hacked the system or used the system to my advantage to store the definitions onto the metadata as well. Regularly, this would not be a recommended approach just because metadata is metadata and shouldn't really be used to store your main content, but this was kind of the workaround until the GraphQL API can support returning data.
So that's that. And then of course there's a new fancy-shmancy glossary page, oh yeah, that has all the terms listed on it. This was a popular feature, some people asked me to get on here, so I listened to the people, got that on, and that's basically the gist of what Glosseta is at the moment. But in terms of the future, I kind of see this playing out more of an educational platform, just going beyond a glossary and even potentially going fully decentralized with regards to hosting, though that's more so far along down the line. But the intent is to basically offer open, hopefully forever free, and decentralized education for basically anybody of any skill level looking to onboard into Web3 or even like Web2 for example, through different types of educational resources. So one idea that was thrown out there was potentially having like Wikipedia-style articles here or even an idea I came up with maybe was having like a quiz or something like that around a protocol or whatever, but the potential here is vast in my opinion and there's still a long way to go to realize that, but I think there's a decent foundation here to be able to move forward.
So yeah, so this is the repository. Though maybe this is a good time to pause for questions before I carry on. Are there any? Going once, going twice... yes. Yes, that's a fantastic question. Yes, so at the moment the only way to officially get a... well not technically the only way, but the main way to get definitions into the queue are through issues created here in the project. For people that are not comfortable using GitHub, the other means of notifying the community of adding a new term is through Twitter, through various links I have across the boards.
For example, if we want Developer DAO, for example, that's currently not in the list but is in the queue to be added. So you'd be presented with a Twitter link and a issues link to be able to open up a request. However, I recently today thought of something to kind of make it easier for people and not have to go through that route, of possibly having a form submission on the page that doesn't necessarily allow for people to create definitions on their own to like officially upload. However, there could be a opportunity for example to allow a person to fill in the necessary fields and then have that somehow automatically create a definition intake on GitHub. I don't know how that'd work, but that's just an idea that came in my head today.
Yeah. I haven't seen that. I want to do a bit of gatekeeping in regards to what gets uploaded just because it's permanent, right? So what we upload, and it costs an AR token to do. So yes, on one hand it'd be great for the community to be able to just upload it themselves, but I think at least in the immediate term, it's probably better to allow them to request something and have it funneled here just so there can be a review process around oh what's the term, is it an appropriate term, is the definition aligned with what the actual term is. For example, if somebody requests say a protocol definition but doesn't really get the details of it right, we don't want to have that uploaded and then the people around the protocol getting angry or feeling they're misrepresented. So I think there's like a fine line between it, in my opinion.
Yeah. Thanks for the question, that's awesome. Seeing as we're short on time, I just want to touch on one more thing here before I open it up for the rest of the questions. So in the GitHub wiki, there is a project roadmap that... it's rough, but I think aligns with how I kind of see things working out for at least now till the end of next year. So what I call Phase 0 is today to the end of the year, and it's basically setting up foundation around just getting the glossary out there, looking to get more steady following on social media. If you're not following glosseta.com, highly suggest it, you'll get a cool term every day. Up your learning game! And then just building up the knowledge base basically with more terms. And then Phase 1 is basically the first three quarters of next year, is pretty much continue with the same and look for more growth opportunities with regards to like open source funding and whatnot.
So I recently uploaded Glosseta onto the Gitcoin Grants program, both the 'quote-unquote' centralized and decentralized versions. So to be honest with you, I really didn't know what I was doing, I did something in hopes of kind of failing and learning at the same time. So we'll see where that goes to, but the funds through those grants will basically ensure that the project kind of continues to grow, there's funding to upload new terms, there's potential funds for advertising, getting more word of mouth spread on it, and basically just looking to keep the lights on more or less at least at this moment of time. Coming back, in Phase 1 as well to look to different ideas to expand the functionality. So like I mentioned, some ideas were potentially adding like a Wikipedia-style page for more complex Web3 topics like protocols, maybe profile pages for DAOs, I know that exists on some other platforms, but why not have it here too? Maybe a ENS lookup page, oh you see now we'll get like multi-chain decentralized dapps going in here, right? And maybe even like a quiz page for Web3 for some daily trivia. And we can also look to some potential incentive points and maybe a tokenized system, I don't know, just a way to incentivize people and to increase stickiness on the site.
And as well as looking for translators to be able to translate this content. So right now all the content is in English, but my north star vision for it is to be fully localized in all different kinds of languages out there. Unfortunately my language skills, at least in written form, only go as far as English, but all you awesome people out there have more lingual skills than I do. So if you're looking for a way to contribute, that's one way to go about it. And Phase 2 is maybe looking into turning Glosseta into a DAO, I don't know, it's just throwing an idea out there, everything is becoming a DAO, why not this, right? But that's kind of way out and all of this is subject to change.
Now just really quickly how to contribute. So I do have a contributing doc, oh yeah. But I want to kind of throw it out there... you can have a read of this yourselves, but just quickly I want to throw out there that yes, one way to contribute is coding, another way to contribute is requesting definitions if you want, but there's actually value here if you don't want to code on Glosseta per se, where if there's a given protocol for example or an application or something you're very curious about, there's actually opportunities here for you to request that term and kind of do your own research around that and provide a summarized description of what that thing is.
So you'll notice in the issues tab, there are labels here saying 'research needed'. So when you see that, it means that basically this term, all the meat of the content is basically empty, all we have is the broad term, but there's no actual definition for it. So there needs to be some deep diving that goes into it. So I know learning and learning groups and all that were a big topic in the developer guild, so if you're really into learning or you don't have to do it on your own, you can form groups and whatnot and do group learning sessions and learn about basically whatever you want to learn about, and you can prove you know what you're talking about if you can provide a two to three sentence summary of the thing you've learned in a semi-technical fashion where basically you're aiming to be able to describe basically what you've learned to almost anybody for them to at least understand and pique their interest to go and learn themselves. And I realize I've been talking for like 20 minutes and I will give the floor open... I will have the floor open for questions. I'm sure there are many, maybe.
Yeah. Great question. So the Arweave... Arweave has a JavaScript based library that I'm using to upload the data to. So I have a side project, excuse me, called the Arweave JSON uploader, it's on the Glosseta wiki, or sorry Glosseta readme, so you can link off to that. But basically how it works, if you can see my Visual Studio, is basically you do it through a API call where you basically you specify the data that you want along with the metadata in the tag form. You give your key, and you basically let... you sign the transaction and it goes and uploads it in bulk more or less. So you can upload it in one shot or with regards to like if you want to upload just one term or you can upload it in bulk.
So how I'm doing it for Glosseta is basically filling up a CSV, going through that CSV, collecting it, making individual requests and sending them off. So there's no hardhat configuration, no contracts or whatever, it's all driven through JS code, which is really nice. And what's cool, they also support a 'testweave' so to speak, so a local running instance of Arweave so you can test upload your content before actually committing to writing that data onto the actual chain. And the Arweave JSON uploader is configured to run both against the testweave and the actual Arweave protocols. So give it a check out, you can look through the code to get an idea of how things are actually getting uploaded and feel free to fork the code or copy the code or whatever, use it as you see fit. Hopefully that answers your question. Yeah for sure.
I realize we're at time, though we started five minutes later. Does anybody have any questions? Or any further questions I should say? Yes, so there's no definitive way of monetizing Glosseta at the moment, but my vision is eventually to be able to host basically lessons in various different locales around various topics like protocols and how to get started with like Solidity or whatnot, and create some sort of incentive and reward system around that. So that's how I see future monetization prospects coming in. There's also... I also had an idea out there of creating a GraphQL API that you could potentially have as... require API key for... and I was kind of thinking about maybe having NFTs as API keys that could be another avenue of revenue. But at the moment I'm not really looking to... it's not at a point where I can look to really make money out of it and the only kind of 'quote-unquote' bank that will go to support the project is open source funding. At least that's kind of where I'm at in my mind, but if the community has any other ideas I'll be more than happy to consider those.
Correct, yes. No, no, basically any any any small amount kind of goes a long way, right? So the transactions themselves, as I mentioned to upload to Arweave cost AR token, but the amount that it actually costs is like in the micro pennies. So like for all the terms that I've uploaded so far, I don't think it's even cost like one full penny, maybe one penny at most let's say. So any donations collected through the grant funds will go towards ensuring that there's enough AR token to be able to support all the terms that I know will be flooding in as time goes on. But there's already been some very awesome folks that have supplied me and the project rather with DAI token and some USDC as well. So like $30 of DAI, that's thousands of potential new terms that can be uploaded and help keep the lights on as well. Hopefully that answers your question or sheds more light rather.
All right, we have maybe one more minute left here. Is there any other questions anybody had? Hopefully this made sense and you kind of understand where what the project is and where I kind of see it going. And it would be really awesome if you're interested in this kind of thing, if you're looking to be a contributor in any type of form, coding or definitions-wise, more than welcome to join. I've got a whole discussion board set up, yay. So feel free to chime in here, but yes. Any final take, any other questions? Yeah... yes, awesome question. Yes, so how I'm querying is I'm actually calling the GraphQL API from Arweave and I'm fetching it from there. Remember I mentioned before that the terms themselves are all the metadata is stored on the term as well as the actual description. So I made that trade-off to do it that way so I don't have to make two API calls, one to GraphQL to grab the transaction and another to go and actually get the JSON content. So I bypass one API call and get everything with one. Hopefully that makes it... sweet. Yeah, so this is the actual query here. So basically I take in a tag and a locale, so the tag in this instance becomes the term, the locale is the locale, right? And then I have this extra metadata tag called 'source', which is basically just a tag that I stick on every term to know that this term actually came from me, or the Glosseta uploads rather. And then basically I am doing the query by the tag. And that's kind of how they recommend you do it as well. You either do it by the tag or you do it by the public key of the wallet you use to upload the term. All right, if there's no further questions, I will stop here just to respect everybody's time. And yeah, if you have any other questions, please do feel free to hit me up either on Discord or Twitter or whatnot. I'll be happy to answer any questions and really looking forward to any and all collaborators coming to work on Glosseta or just like if you want to learn, learn together. Hell yeah, why not, right? So yes, thank you for sharing your afternoons, mornings, evenings with me and I hope this inspires one of you to take on the presenter role for DevNTell next week. There is no formal process to kind of sign up for that, so you kind of just if you want, raise your hand, call dibs. And with that, I will stop.
Listen On
Resources & Links
Share This Episode
Share on XWatch Episodes Live!
Subscribe to our event calendar and never miss a live episode.
View Event Calendar