Building your Digital Identity with BitBadges
Listen Now
About This Episode
In this episode of DevNTell, Narb welcomes back Trevor Miller to discuss his latest project, BitBadges. BitBadges is a multi-chain digital identity platform designed to unify token standards and sign-in processes across various blockchains like Ethereum, Solana, and Cosmos. Trevor highlights the limitations of current single-chain infrastructure and introduces two solutions: Blockin, which provides universal sign-in and native asset verification; and BitBadges, a comprehensive suite of tools for multi-chain dApps. Key features include off-chain balances for gasless interactions, time-dependent badges, and QR code authentication for in-person events. Trevor also emphasizes BitBadges' community-driven and open-source nature, inviting developers to explore its SDK and documentation.
Key Takeaways
BitBadges aims to solve the single-chain limitation of tokens and dApps by offering a multi-chain platform.
Blockin extends Ethereum sign-in standards to include Solana, Cosmos, and other chains while enabling native asset ownership verification.
The BitBadges blockchain, built with Cosmos SDK, acts as a centralized repository for badges, making them compatible across different ecosystems without needing new wallets.
The platform features innovative capabilities such as off-chain balance storage, time-limited tokens, and QR code-based authentication.
BitBadges is currently in public beta, offering developer-friendly tools and comprehensive documentation to encourage contribution and app building.
Featured Guest
Trevor Miller
Founder of BitBadges
Timestamps(click to jump)
Episode Transcript
Read full transcriptHide transcript
GM, GM everybody. Welcome to what's going to be another great DevNTell. So if you didn't know, DevNTell is a 30-minute window for builders to showcase something they've been working on in Web3. This can be an awesome project they've been working on, demonstrating user testing best practices, automation goodies, smart contracts, etc. Basically, if you've got a passion for something, this is your opportunity to share it with the community here at Developer DAO.
Today, I am ecstatic to have back Trevor Miller, who has come on the show previously for a different project and now is here again to give us an overview of his latest creation called BitBadges. Welcome to the show Trevor.
Thank you, thank you for having me and I'm excited for presenting this.
Yeah, yeah, totally. I guess for folks who didn't catch you the last time when you were on DevNTell, would you want to give yourself a quick introduction?
Yeah, so I just recently graduated from Virginia Tech in Computer Science and just have a passion for crypto. And during school, I was building a project that I'll highlight in this presentation that I showed off last time in DevNTell called Blockin. And I kind of just took that to the next level and expanded on it and developed a lot of new features and now we're here with BitBadges.
Awesome and congratulations on graduating. Love to see that. And apologies that I misspoke, we are going to see an evolution of Blockin here.
They're technically different projects, but a lot of the core principles are the same. I'll highlight both of them in the presentation.
Good stuff. My pleasure. I guess in the interest of time, do we want to get straight into the content here?
Yeah, let's do it.
Alright.
Okay, just, can you see this?
Yes, yeah, you're good to go.
Cool. So, welcome to my presentation on BitBadges. So, the core problem that I have noticed with existing infrastructure in crypto is that tokens and dApps are natively single-chain. For example, you can make an Ethereum dApp for Ethereum users or you can make a Solana dApp for Solana users. However, if you want to build a multi-chain dApp, a lot of this stuff there's like N different interfaces for the N different ecosystems. So for example, if you're like a neutral or ecosystem-neutral company like Netflix, you have to integrate with all the Ethereum interfaces, all the Solana interfaces, and every user base that you want to support. And obviously, if you're ecosystem-neutral, you don't want to just section your user base off to a single ecosystem. And this mainly comes down to two things: First, the sign-in standards are limited to a single chain, and then secondly, the tokens or NFTs are limited to a single chain. So for example, you have sign-in with Ethereum and sign-in with Solana and so on, and then you also have just Ethereum NFTs that can't be owned by Solana users and Solana NFTs that can't be owned by Ethereum users.
So, Blockin was kind of targeted at fixing the first problem. So, making sign-in standards multi-chain and supportive of any ecosystem. So, Blockin I previously came on the show to show it off and it's basically a library that extends sign-in with Ethereum to support any chain and also include some cool native asset ownership verification, so it natively checks if you own a certain NFT or anything. So as you see here, it looks pretty similar to sign-in with Ethereum but you see your Solana account you can sign in with and also you can also check if you own a specific asset. And that will be done natively in the library rather than by yourself pretty much. And so basically this just makes the sign-in process multi-chain. And it's all driver-based, so it's all customizable, you can use any of the pre-written drivers, or you can write your own, they're only about like 100 lines of code. So you might have different requirements for your app, you can write your own or just it's pretty customizable and you can plug in any which way that you want.
So, the second project is BitBadges, which kind of encompasses everything. So BitBadges aims to be the one token standard for all blockchains. So we're currently in a public beta on the site and think of this as like a public subsidized testnet. So everything is kind of for real but it's not intended for production use yet, and everything is subsidized so you'll throw the faucet, you'll just get funds and can test out certain stuff. And what BitBadges aims to be is the full stack suite of tools for designing decentralized multi-chain applications. So at the core, it has its own blockchain, which is a Layer 1 blockchain built with Cosmos SDK. And this is where all like the badges or tokens are stored. And then on top of that, you have a whole ecosystem of tools and different layers: so there's an indexer layer, API layer, SDK layer, bunch of dev tools for authentication, distribution, verification, and so on. And BitBadges is open-source, decentralized, and community-driven.
So you might ask like, what are badges? Behind the scenes, badges are just tokens. They're NFTs. However, I kind of wanted to keep badges as a separate because NFTs currently have a connotation of, you know, buy, sell, speculate on like art. However, I want badges to be something that you know you earn or you get for achieving something or they're not natively having monetary value. So you can think of badges as some might offer you utility such as like a membership, getting you into like a gym or a subscription getting you into a certain website. Or you can show off your achievements with like course certification badges, if you complete a course you get a badge for completing the course. And badges are generic so you know you can make them for any use case and so over time you collect more badges and your Web3 identity grows. So over time you get a portfolio and you know because it's on a blockchain anyone can go and view your portfolio and it's open, decentralized, and on the blockchain.
So you might ask, how are we natively multi-chain? So BitBadges is its own blockchain like I said, and we don't pull data from any other blockchain but we are what we call signature-compatible. So basically you can sign transactions with your native wallet. So Solana users can use Phantom Wallet as you see on the right and you can sign a BitBadges transaction with Phantom Wallet which will be treated as a BitBadges transaction on the BitBadges blockchain. So it's compatible and no need to download new wallets and this allows everyone to interact with the same token. So I can transfer a token, me as a Solana user to an Ethereum user and the Ethereum user can own the same token as me or vice versa.
So, badges can be collected and distributed in a variety of ways. Every badge will have its unique distribution requirements. So on the native site, we natively support kind of the building blocks you can think of it, so a whitelist, Discord, X-gated claims and the goal is not to be the end-all solution but just to be the building blocks like I said and combine it with your own solutions. So for example, you might create a password claim on the site but then you know you distribute that password using any communication channel you want with your users or customers. So it's very again, customizable and pluggable. And like I said, every collection is different. So really you just have to go to the specific badges page and see how they are distributed.
So now to get into like the token standard. It is its own token standard built from scratch. And so it doesn't follow any of the ERC-721 stuff like that and I like to think of it as it has 10x the features of any existing token standard. There's a lot of stuff behind the scenes that developers will find useful and I'll get into that in the next couple slides. But just as an overview, there's no smart contracts involved, you can think of it just like an API. So you just customize the parameters and then you can create a badge based on those parameters. And that interface stays consistent so over time it'll get battle-tested and there's no generic code that you have to audit for every single badge or token. The goal is that it is ever-evolving, so currently it's just in a version one but over time we'll have different versions and the goal over time is to support pretty much all use cases so that you'll never have to make a smart contract. However, there's always going to be some custom logic so you are able to extend it with the native Cosmos smart contracts.
So yeah, now let's get into a couple of the features of the token standard. And I think the main feature that is very cool is that you can store your balances off-chain. So all collections are still stored on-chain but the balances can be stored by like a centralized server, IPFS, or any host server. So this has a couple cool benefits such as since the URL stays the same on-chain you don't have to interact with the blockchain to update balances. And this also goes for users, they don't have to interact with the blockchain to you know get a badge if the balances are stored off-chain. You can also access non-blockchain data, so like for example if you have private data that you want to sign a badge for, like maybe check who's subscribed, you can like check your subscriptions privately and then give the badge publicly based on some you know some query or some data. And it opens up a lot of cool use cases that I'll get into, I'll show you an example in a bit.
But I I do want to just preface it by saying there's obviously tradeoffs, you know. On-chain you're decentralized, a lot more or some different functionality you can do, you know the distribution is kind of censorship-resistant whereas off-chain you're the one who is assigning all the balances and it's centralized. So let me go into this and let's see.
So for example, if I go to this badge right here, the Follow badge, so basically if you own the badge you're followed by me. You can see that the badges are stored on a centralized URL, in this case it is a DigitalOcean Spaces. So at this URL if we go to it, you can see that all the balances are actually stored on this Web2 URL and you just query it to assign it to get the balances. So there's kind of two methods of storing them off-chain, one is the storing them like all in like a single JSON like a list here so for that you'll have to store you know every single balance there is, so if there's a thousand owners you'll have a JSON with a thousand keys. The other is to do it dynamically. So for example, if we go to this badge, this uses like what we call non-indexed. So this badge is given out to users based on their first Ethereum transaction. So if you you know submitted your first transaction in 2015, you'll get the 2015 badge and so on.
So for example, if we search for Vitalik's address, it'll show that he owns the 2015 badge. And what this does behind the scenes is it has a again, it's an off-chain URL but it has a little placeholder here for the address. So we pretty much call this URL with Vitalik's address in this placeholder and it can do some query and return how much he owns. So if we actually go to the code, you can see here, it's just a simple Express endpoint and you get the Ethereum address, so in this case it would be Vitalik's, query the first Ethereum transaction, and in this case we used Moralis' API and then you know assign a balance based on some query in this case you know 2015 if the first transaction was in 2015 you get badge ID 1 and so on for 2016 and so on.
So this actually opens up a lot of use cases behind the scenes so you're not limited by just you know blockchain only data, so smart contracts or anything. You can actually tap into you know any data that's available on the internet.
So like I said, lots of neat features, the balance types is the main one that I think is can be shown off, it's like the highlight of the token standard but there's also many other smaller features such as you know time-dependent balances, so for example you can own a badge for a day, month, or year. There's a lot of scalability things behind the scenes, batch transfers are in O(1) time because of the range logic we use for the accounting, lots of transferability requirements, customizable permissions instead of just outgoing approvals you can do, have incoming approvals and block who's sent to you. So for example if we go here, so you can see here this is just a placeholder badge but the supply is limited to certain times and you can only own it during certain times. If you want to even fine-grain this further, you can even like send a badge during these time periods for a day, so like I can give Bob a badge for you know for Wednesday, like a day pass almost.
You can see a lot of manager permissions that are customizable. The manager is an admin and basically just outlines who can create more badges, who can update the approvals, update the metadata and so on. In this case there is no manager but usually you can add one if you want. The other thing is the transferability requirements. So like I said there's a lot of fine-grain transferability, you know you can clearly define who can transfer to who, approved by who, what times can be transferred, which badges, how much, how many and then you can also combine this with all the distribution methods I talked about before with like claims and stuff like that. So a lot of neat features I can't go into all of them right now but you guys can explore the site, I can drop the link at the end and it just, yeah there's a lot but but yeah just wanted to highlight a couple of them.
Okay, and then finally, when you put this all together, it brings out a bunch of cool use cases for authentication in Web3. So let me show you on the site. So for example, so this is the BitBadges site but it uses the first project I talked about, Blockin, so you can select any chain to sign in with for your dApp. And you can connect and so then you sign in and as you see you're signing in with your Solana account with Blockin and the cool thing is you can also natively gate it with badges. So in this instance we are checking if a user owns a scammer badge, so if they own a scammer badge they will not be granted access to the site so you have to own zero of one to be granted access. So you can also make a lot of unique like website gated requirements so maybe you have like tiered services like you own a premium badge to get premium features on the site or you own like a blocklist badge you can't get access to the site pretty much. So let's sign in, and let's see. So then sign in and you are granted access to the site. So very cool way to get multi-chain applications.
And yeah, so the second way you can also gate with authentication is to have a sign-in with BitBadges pop up. So basically how you would if you go to a site and you see like a sign-in with Facebook or sign-in with Google, this would be the same thing you just have the the app configure it and it all outsources everything to a pop up. So all the authentication logic is outsourced to this pop up you see here and then users will be shown a sign-in prompt and they can sign in and it'll be passed back to the website once they sign the sign the thing and meet the requirements. So as you see here, it'll get passed back to the site and on an actual site that uses this for authentication you will be signed in. So it's useful for you know apps that don't actually need all the wallet interactions and just kind of need the are using addresses as usernames so it's just a way to outsource it and everything is done by BitBadges instead of you as the application developer. And so yeah so those two methods are like digital authentication. However you might want to also authenticate in person with badges. So for example, you can also on the site you can get a unique codegen link so in this case it'll be this URL here and your users will navigate to this link and sign a prompt and then it'll generate a QR code for you to present at you know authentication time so this might be like at a ticket booth or at like the event front desk. You show this and this proves you own the badge and you are who you say you are. Behind the scenes this is just like the signature of the message but um it's kind of a way to pre-sign a authentication attempt. So instead of having to you know host your or bring your crypto wallets to like you know an in-person event you can just pre-sign and get a QR code that you present and then you don't have to worry about signing anything at the gate or anything like that. So these QR codes can be you know exported to any way you prefer, you can save it, you can copy it, you can store it in the browser, on a iOS device you can add it to Apple Wallet just like you would with any other you know like airline ticket or anything like that.
So um so yeah when you combine badges and the Blockin it creates a lot of cool authentication use cases. And one thing I want to note is that the providers now have zero storage requirements minus like session management. Pretty much all passwords and signatures or all passwords can be outsourced to you know cryptographic signatures and also there's no tiered service management behind the scenes because that's all outsourced to the blockchain and to different badges.
So I know it was a lot but now for actual development and getting started we have a pretty thorough documentation here on GitBook with just a lot of stuff anything that you'll need to you know create badges, authenticate with badges, distribute and stuff. There is a quickstarter repo as you can see on the right basically walks you through the process of getting authenticating with all the different methods that I showed you and lots of different tutorials and self-hosting examples and lots of libraries, tools, whole SDK and API to get you know balances of badges all that. If you are interested in getting started and like developing with BitBadges, we are looking for developers to build applications with it. Please reach out if you're interested I can get you with an API key setup and help you get started and kind of show you along the way because right now the dev docs are I tried to do everything I could but obviously I'm the one who wrote a lot of this stuff so a lot of this stuff might not be good to explain to like a beginner so it's good to have that communication so please reach out if you're interested in getting started in developing.
So as a in in summary, basically now with these two projects you can build multi-chain applications for multiple ecosystems all with the same interface. So with Blockin you know we um all chains can sign in with the same sign-in standard and with BitBadges all chains can own the same token with um BitBadges and the BitBadges blockchain. And as a bonus a lot of innovative features along the way such as you know the QR code authentication, off-chain balances and I didn't even get into a lot of the the others behind the scenes but it's a but yeah.
So like I said we're in a public beta right now, um you can go to the site test it out for yourself, um and the goal right now is just to you know improve the product, build out the ecosystem you know just overall get feedback and you know build it to be the best it can be. Um once we feel we're ready we plan to do like an airdrop to launch mainnet because it is its own blockchain so it will have its own cryptocurrency and we plan to heavily reward like contributors on betanet so let me know if you're interested in contributing and I think this could be a very useful project for a lot of developers and um could it's very useful for a lot of you know products and services out there. So yeah, I know it was a lot um but does anyone have any questions?
Wow, Trevor, that that was amazing. Uh first question is uh did you do all of this by yourself?
Pretty much the development, yeah. I have a co-founder that's kind of handling a lot of the marketing or like kind of business side um but a lot of the development, yeah. Or pretty much all the development. It's been a lot of time.
That's amazing. Oh yeah, yeah, it you basically have a fully-fledged uh built out uh a suite here uh which is really awesome. Uh I guess could you touch on um how somebody would go about creating a token? Uh is the admin driven all through um the main BitBadges website or can somebody programmatically go and use the API to create those tokens?
Yeah, so both both are available. I envision that most will just go um through the Create tab up here. Um oh let me didn't claim the airdrop yet but um you just go to the Create tab up here and it'll walk you through this whole form of all the different you know customization options and stuff like that. Um and I aimed for it to be developer friendly so you know you can insert your self-hosted URL into the form natively. Um if you are building a dApp that does need to you know maybe create badges on the fly or um transfer badges in your site you can there is also documentation on um how to do that but I envision that most will just actually do it through the site because it's kind of all implemented for you already.
Gotcha, gotcha. And when somebody does get a token, uh because it's um multi-chain from what I understand, uh does the token live on the BitBadges protocol? Or sorry, blockchain? Or does that token get transferred to say the person's Solana wallet or whatever wallet they used to sign in?
Yeah, so it's all on the BitBadges blockchain. But um like I said it is signature compatible so if you go here you can see like this user this Solana user owns the BitBadges Beta airdrop badge but um let's see yeah you can see like different people or different users might own different um like an Ethereum user can own this same badge and the Cosmos user can own the same badge and the Solana user can own the same badge. But yes it is all stored on the BitBadges blockchain. Um we're not actually pulling data from anywhere else it's just all kind of self um like it's its own entity but we're compatible with all like the wallets of any chain.
Sweet. And uh you briefly touched on it but um the scammer badge uh are are you kind of like enforcing that or is there some sort of like automated process that'll like drop those tokens to those uh addresses caught in the big hacks and what not?
Um honestly that was just for an example just for a use case um but but I mean that's a good point to bring up that badges um you know they get their value or they get their legitimacy from who issues it, right? So like if I issue a diploma badge to you it doesn't mean anything but if you know Harvard issues you a diploma badge that would mean a lot more. So um similar with the scam tokens you know you can if I issue a scam badge it might not mean anything but you know a sent or a trusted scam prevention society it would mean a lot more. Um but that was just a way to um show that you can gate with natively with badges. Um it can be anything from just imagine maybe instead of not owning a scam badge maybe you own a you know premium membership badge. So yeah it was just an example but yeah.
Got it. Good example I like it. It also goes to show that you can create badges for negative purposes too. It doesn't just have to be positive and you know if you get negative badges it affects your identity and your reputation in Web3. So gotcha. And uh final question here one that I had but also Potato of Doom has as well uh what's the best way to reach out to you uh if we want to contribute or learn more?
Yeah, so um probably Discord is probably the easiest but I mean you can drop me an email. Do you want me to provide some some links in the in the chat?
Uh yeah, if you'd like, uh yes. Um but we also do have Trevor's Twitter listed on the description as well. But we can also add his um Discord handle uh for folks to reach out. Uh I believe you are also in the Developer DAO server if I'm not mistaken, so um folks can uh ping you there as well if they're interested. Excellent. And uh yeah, unfortunately uh we've run out of time here but um this was wonderful Trevor. I'd I'd love to see this. You've taken Blockin and uh kind of expanded your vision uh for this multi-chain universe you're trying to build out here with BitBadges and this was a lot of work uh I can see you put in and uh yeah folks be sure to uh take BitBadges for a ride here over the weekend play around. Um everybody wants to build their digital identity so uh why not get started with BitBadges here. Awesome, yeah. And uh yeah uh before everybody leaves um I'd like to present everybody with the QR code to scan today to receive your NFT for being an attendee on DevNTell. Uh so what you want to do is take out your regular QR code scanner, scan this code and fill out the form and you'll be air-dropped a uh NFT on the Base network um within a couple of days um after doing so. And you'll have about an hour and a half from now to claim that so definitely get on that if that is something that interests you. And with that I just want to wish everybody a very happy Friday, happy weekend and we'll catch you back here with another episode of DevNTell next week. Alright all have a good one.
Listen On
Share This Episode
Share on XWatch Episodes Live!
Subscribe to our event calendar and never miss a live episode.
View Event Calendar