 Hello, everyone. Thank you for coming. Sorry, I'm late. I was actually connecting with someone who was actually using Bifold to produce their own wallet. And I got distracted. It was highlighting all the good things that we're going to talk about a little bit here. So my name is Klasio Verjão. I'm here with Akif Menjie. Menjie, and we're working on a project called PCWallet, which uses errors by fold as our core framework. We're going to talk a little bit how we started first. So we're looking for a wallet that is user-friendly. And that's user-friendly to the generic, to the end users. We found that a lot of the wallets that are current exist is a little bit by developer for developers and shows a little bit of too much of the errors protocol. And we wanted to make that experience very user-friendly and easy for the average user. When we look into what is out there, we had a few options. We start from scratch. We're going to be developing our own wallet. We're going to start our code over again. Or we can leverage something that exists. And we looked around on the open source community. And we came across errors mobile agent that was written in React Native. That provided for us a starting point to our product. Aries mobile agent React Native was initially a product, more like a reference implementation of a mobile agent. And we made some contributions to make, to turn into make some changes to a framework where we wanted to enable other business organizations, agencies, or governments to be able to create their own wallets. One of the questions that we had at the beginning as well was in relation to do we fork this project and start developing our own? Or how should we get started? We did not start with a fork of the project. We started with our own repository. And we started with by applying patches to the changes that we made to that upstream repository. That get us up running quite quickly and easily. But we noticed that quite also quite quick, those managing those patches was quite cumbersome and problematic, time consuming. So we quickly looking into how can we create, how can we make some changes to by-fold that it works as a framework and enable us our customizations. But it's still being connected with the upstream project. We have a very strong direction and a strong, we're very motivated to be connected and work in the open-starts community and everything that projects that we are doing in British Columbia. And we wanted to stay connected with the community. And that's some of the change that we've made to by-fold to enable it to be a framework. My key is going to show a little bit of by-fold right now. And then I'm going to do a quick demo of BC Wallet. Perfect. Thank you. So as Klessio mentioned, by-fold is the collective work of the open-source community to build a reference Aries mobile wallet. So we'd like to thank our friends at Indicio and Animo for their contributions on this, because they're kind of the people that spearheaded the initial project. And we kind of just took it on. It's written in React Native. And it uses AFJ under the hood, which is another Aries agent implementation built in JavaScript. So AFJ primarily focuses on mobile VC solutions. And it's consumed as a library in React Native. So the wallet that we've been working on supports VC or verifiable credential storage from issuers. It can respond to proof requests. And it can engage in peer-to-peer messaging right out of the box. So let's get right into our demo here. So for that, we have our wonderful BC wallet showcase. So in this case, I'm going to be using the by-fold wallet, which I'll open up in a second. So just let's get past this screen. So we're going to be functioning as Alice again. So Alice is a student at Best BC College. And to make her student life easier, Best BC College is going to offer Alice a digital student card to put in her wallet. So in this case, I'm using by-fold. And you'll see that we have some onboarding screens here to just tell us about what the wallet's about. Classy will show you how we've overridden these and customized these for the BC wallet in the next part of the demo. But we're going to skip this. We're going to skip the terms of service, which again is also customizable. We're going to go ahead and just enter a pin. And we just have to make sure that our biometrics is enabled. OK, so now that we've initialized our wallet, so the first thing that we're going to do is we're going to connect with Best BC College. So I'm going to enable my camera. I'm going to scan this QR code. And then in just a second, I'll be issued a credential or I'll be offered a credential. And as you can see, I have a first name, a last name. And it has an expiry date on this. And with this connection, it creates a long-standing connection to Best BC College. So down the road, you can have future interactions. So we're going to go ahead and accept this credential. And sometimes the first one takes a second, but it's on the way. Should be coming. OK. Is it the initial credential? It worked. Yeah. So the reason is, as a reference implementation, we support a number of different ledgers now. I know some work has been done to try and improve how we access the ledgers and loading them up. But sometimes that first credential can take a little bit. But we'll definitely work on improving it. So here in our credentials list, we have our credential now. And we can go ahead and now use this in proof requests so that we can have some nice interactions online. So let's say, for example, if you're a Best BC College student, you can actually get a student discount at a store. So we have cool clothes online. And basically, all they want to see is that you're a valid student. And you'll need to present your student card here. So the proof that they're asking for is that you're a student. So in order to do that, again, we scan this connection request. And here they're going to ask, they're asking for a predicate proof. So all they're asking is that we're a valid student at this point. So we're not actually, we're only sharing that the credential has not expired. We don't have to give any other information because that's part of the beauty of verifiable credentials. So we're going to go ahead and share this. And we're going to send that information securely. And once we've done that, we can now receive a discount from cool clothes online. So in this case, it only asked for the information that we needed from the verifiable credentials. If you remember that there was a name, a first name and a last name, we were not provided. We didn't have to provide that information. Now in the second use case, we want to book a study room. And in this case, they might ask for a name just so that they know who's booking it. So here they've asked that I present who I am and so that they know that they can book it under the name Alice. So I can choose to share that. I can choose to decline that. If I choose to decline, the interaction ends here. And we move on. If not, I can share it. And that way I can book my study room online. So that's the issuing and verifying. Now let me see if I can get to peer messaging working. So I'm going to connect to a CLI version of Faber. And in my contacts, you can see Faber is an agent there. And I'm just going to send a message from Faber to Alice. And as you can see, we have peer to peer messaging that is enabled right out of the box in bifold here. So I can also send a corresponding message back to Faber if I wanted to in this one. So that's bifold. This is completely open source. You can go and use the wallet as is if you want. But you can also customize it, which is what we've done with the BC wallet. So Klessie is going to showcase that now. If green is not her favorite color, we have one in blue. Showcase it online. So I think because he's not trusted on my computer, so I can't connect it. So here's BC wallet. OK, so if green is in our favorite color, you can do it in blue as well. So just as of last week, we now have BC wallet available in the App Store as well. I think it's one of the first available from a government. But that's available in the App Store. So try it out and provide some feedback. So for instance, I keep show bifold, which provided some of the onboarding screen just as a placeholder's material. And we're able to customize and provide our own real information on what we, as from BC, want our user onboarding experience to be. So those are our code, our change, our customization. It's based on bifold as a framework, but we're able to just customize or provide the materials that it's in that onboarding screen. The other thing is the terms and conditions. Unfortunately, our lawyers are very precise on how they want us to show those terms and conditions, and they want the users to extremely to be able to scroll all the way at the bottom and read them all and click on that accept buttons. There are some conversations about how we're going to make this a little bit easier, but that's how what we got so far. We're going to creating a pin for this wallet. That pin, the wallet is going to be locked, so only you are able to unlock it. My pin is not very secure. Oh, this one, we have biometrics. And I guess, Akif, you're going to need your biometrics. Are your clothes face ID already unlocked? You're close enough? Yeah. Great. So yeah, so now we have the same, is the same primitives and the same bifold experience. We have the bottom that looks the same. We have the scan credential. We have the list of credentials right here. And I'm going to be, I think, probably need to click leave. We're going to be restarting the demo. I'm going to be doing the same demo, but now I'm going to be using BC Wallet, which, surprisingly enough, is going to be the same user experience. There you go. So the first step is connecting. And I got my credential. I accept. You notice that too? Yeah, this is you're going to notice that's one of the things that, because of the extensions points that we enabled in bifold, we're able to do some early customization of the wallet. And this is kind of a preview of a feature that is coming to areas by fold as well. We're going to be enabling issues to provide some metadata information about how their item or that credential is going to look like into the wallet. So that is coming soon to bifold. We have a preview now into BC Wallet. So we're able to provide that nice look and feel of a credential. Then I'm going to continue. Clicking Next. I got over the same scenarios. So now I'm going to be getting a student discount in a clothing store. And I can't hold two devices at the same time. Quite easy, the same process, the same predicate. The clothing store is only requiring or requesting that do you have a valid student credential. That means that hasn't been expired. Same process, everything ends just as it should. And the last one is the one that you provide with. You want to reserve a study room. And it will request you to provide with your name so you can book a room. The same ideas, ask for a name, I will accept that. And that is BC Wallet. So I'd like to highlight that through bifold now as a framework, you're able to create your organizations or any government body is able to produce their own branded wallet. They can change the look and feel. They can add new features if they want to. But they can still remain connected with bifold as an upstream project. One of the key things that we want to do and we are doing right now, we are committed to support and keep bifold up to date and maintain as close as possible. We're working with other provinces in Canada and we want that onboarding in other provinces to be able to create their own wallet as quickly and as easy as possible. So that's an investment that we're doing so that we can guarantee that other organizations are able to do so. Just quickly go back. So some of the things that we added at the extension of point right now is regarding to the branding, color scheme. You can overwrite and define your color scheme of your wallet, how you want to look and feel, the terms and conditions. You're able to define your own rules, your own terms and conditions. The onboarding carousel, you're able to define how many pages you want and how the contents of that carousel want to look like. The authentication is something that we are also working on. It's not yet there. Right now, we are connected with the bifold mechanism. But we are working with other provinces to add more customization. So we're going to be able to maybe say that in your wallet, the user must only have a pin. That's a restriction. Or you can allow your users to enable biometrics. Or you want to have biometrics enabled by default. So some of those authentications will be coming soon. And if you want to learn more about bifold contact us, we also provide some help on the Discord and Hyperledger channel with other members of the community. Get to know more about the code behind bifold is actually AFJ, so Aries Framework JavaScript. So I would suggest that you also connect with that community. They provide really the core functionality to Aries bifold. This is some of the names of my team right now that we're working with BC Wallet. So I just wanted to make sure that I acknowledge and thank every single one of them, Akif, being one of them and representing my team here. So they've done really a lot of work and work in the community. But I also want to highlight that we have the BC Wallet team. But you would not be impossible if it wasn't for the open source for the Hyperledger community. Some of the work that was done prior, some of the initial work that was done into donating the code base to Aries bifold. So really thank you for all the community that has been done that. I just got one more thing to say too. On that note, if you guys are interested in learning how to build out a mobile wallet, I believe the AFJ community is hosting a workshop on Wednesday here at the Global Forum. So please check that out. They're a fantastic community, really active. And if you want to learn more, they're a great group of people to learn from, so. Yeah, and now I guess we're just open for questions. Go ahead. Okay, I'm just gonna repeat your questions in case it's being recorded. So the question was, does bifold provides any queuing system for receiving multiple credential at the same time? So the answer to that is yes, sort of. It's not exactly a queuing system, but it does receive all the message and then it's create a record of it in the database and it's able to accept, to receive all of them. The user will be shown with a notification to accept those credentials. So everything's gonna be received. It's not a very nice queues system right now. It's one of the things that we are working on, but it does enable, you can receive multiple credential, multiple requests at the same time and you just action that in different time. It's asynchronous. Yeah, through notifications. We'll see a list of notifications. So right now it's one workflow at a time for each credential, but there are, so the records have thread IDs and all of that's enabled in AFJ, but in terms of bifold it's still a little bit simplistic in terms of we showcase one credential at a time, you accept one credential at a time. Down the road it would be awesome to be able to do multiple credentials. So for example, I can give you a batch of credentials or you can prove using a batch of credentials or even to be able to do things like I want to be able to prove from specific types of credentials. So the code base will continue to evolve. I think this is just the start, but the great thing is we have a production wallet that is capable of using this, it's ready and we're just gonna continue building on it. And if you wanna help out, by all means, please get involved. Contributions are always welcome. Yes, our wallet is available on both AppStars and Google and Android and Apple AppStars, you're able to download them. We're in production in a sense that it's gonna be available right now for our use case, our early adopters is gonna be that we're working with lawyers from the province of BC to be issuing credential. It's not in the full rollout in the sense that the average residents won't have their digital credential yet, but we are working towards that. So there was some underlying security tests based on SDK and some of the primitives that we use behind the scenes. But there was also security threat assessment that was done by our internal team. And one of that recommendations actually should be done third-party security assessment that it's gonna be in the works and gonna be done soon. So yeah, there's gonna have, we've done some, there's a more in-depth dynamic security test coming down. Yes, yes, we are definitely planning on publishing that into again, the areas by-fold community and again, creating issues and adding that to your backlog and issues that arise from that. Yeah, there's some new changes that we just saw some changes to the AFJ project that enables us to now not, there's a few points out there that is causing delay. There's a connection to the mediator servers and there's also, when you got a first credential, you need to process some metadata from the ledger. There's the fact of you need to find the ledger that is responsible for responding to this credential and getting some metadata about is the credential revoked or not revoked, right? So there's a few steps there that I think we're gonna be putting some work on improving the performance on that side. Right, so right now areas by-fold does support multi-ledgers. There's a number of ledgers that are supported in there and we're gonna be supporting more. And I think maybe one more question before we go, go ahead. It's a mobile, it's an edge wallet. So there's no centralized service provided with the God, we as the government, British Columbia, we provide a mediator service but we do not store credentials. We don't need to run a million mediator service but we need to make sure that that mediator service behind the scene is scalable. That mediator service that we're using right now, it's powered by Akapai. There are areas, cloud agents in a written Python. We are gonna do some work in regard to scalability and test how much workload it can take but we're confident that it can support. That workload that goes to the mediator, there's not a lot of processing power there. Yes. Everything that we use here is completely open source. Everything is open source, including BC wallet. If you go to the BC Gov, GitHub Reposit, yes. You can find BC wallet under there. So our BC wallet is also open source. If you wanna have an idea on what the work that we are doing, you're welcome to poke around and let us know what you think. Thank you everyone.