 So welcome everybody. I'm gonna be really fast through this because I don't have very long But basically me well, I know a few others within open mind and other than that I've been you know messing around for a while with a capai and really trying to find out You know how we can get to a place where we're experimenting with it without having to go through all this messy configuration and You know, we want to build things we don't want to have to worry about like setting up the system and you know Debugging loads of weird errors So we created a Jupyter notebook playground essentially What it allows you to do is you know spin up any amount of actors within a system and Design business logic to develop how they to how they interact right so like here We have Alice and Bob typical or you could you know create any number of actors specific to a domain and then write business logic that You know designs a set of you issue of those verifiers all that kind of stuff, right? and I'm just gonna whiz through this basically But you know, there's this code base here, which is really a Abstraction there's just a simple, you know, you can clone it and then you have this playground is what we call it So I'm gonna stop sharing this screen now. I'm trying to share the actual code Okay, so this is you know the repo cloned downloaded And essentially what we have here right is the basic structure of this is you have a Docker compose file and a manage script And the manage script is how you start the Docker compose So it defines the containers that you want to start and obviously these containers need to be defined in your Docker compose file and Then in your Docker compose file you can specify a bunch of Services which for each actor so each actor will typically have three or four services So they have a wallet we use postgres They have Ngrock Which will expose your agent to the public network They have the actual agent which you just use the docker file from the hyper edge of Aries acopi folks and then business logic And the business logic is the bit that spins up a playground for you like a notebook service section And that's essentially it and then you have this playground folder, right? And the playground folder is where you actually write your business logic or well where your business logic is persisted Right, so each actor will have a folder and within that folder. There'll be an environment file and this is really cool Right, this is where you can specify all the config for your agent So, you know like any ports that you need to define any sort of like variables you want to find like your label So like this just identifies your agent, you know like any seed that you want to set basically everything that you can pass into acopi you can specify it in here It's really cool really easy to configure and then you have this notebooks folder, which is actually where you write your business logic So now we're quickly gonna go into that. So basically to spin up these things, you know you clone it You have to do some config We're not gonna go over that now, but there is a video that you can just watch so if you're interested in getting this Spent up you should be able to do it in less than 20 minutes So I've already got this running locally You know this there's two services of just type Docker PS will show all these services that are running on my machine And then what you want to do is to get the actual URLs Just type dot slash scripts get URLs. This is going to spit out a couple of URLs to some Basically Jupiter notebooks, right with a token to actually access that notebook So now I'm gonna go into that Stop sharing yeah Stop sharing so Just to say like what we want to get you to today Hopefully or at least to get you close and you know motivated to continue doing this is we would hope that you'll you get to this stage Right where you have an agent running on some public IP That is accessible on the internet so that we can connect together right and we can maybe start sending messages We can write some custom code and you know, we can see what happens when people have agents and start to interact But for now, I'm going to show you these two agents which I've running on my local machine, right? So there's one agent here, which is for the hypo agi global forum And we're going to initialize this agent on the sovereign staging network So I should say we've written this code ourselves the areas agent controller All it's basically doing is providing an interface for us to send swagger requests to the acpi Interface and receive web books from them. So, you know, we're basically saying, okay We're gonna post our API request to this endpoint here You know, it has an API key And then we're just gonna hit run some functions You can actually have a look like if you want to see what the code is you can go help It just put puts out like what the methods you can access basically And so what we're gonna do in this notebook is we're creating a public did and we're gonna actually write it to the sovereign staging network I mean, I feel a bit bad because we've been spamming the sovereign staging network a little bit But I think it's okay. And it's quite nice to have it on the staging net as opposed to a public network I should say it's very easy to configure this playground to use a local network It's just setting some conflict in the environment variables, and we're gonna use this scheme Which I've already written to the ledger I'm gonna write a credential definition, right? So this is our public key that we can use to sign statements as this agent that we've just spun up issuing these schemers And then what we do here is we like just print out these Def these identifiers and then we copy them across to like a new notebook Where we're actually gonna issue them and the reason for that is because this is Docker, right? So if we do dot-slash-manage-stop, we're gonna stop these services, but we actually persist the state It took me quite a while Yeah, maybe I should have done this before Okay, I don't know why this is taking so long Oh, no, there we go Just generating the key, you know it takes long. That's why we've got to move to bbs plus I suppose. Okay Um, oh and then so the other thing that you need to do is so every one of these notebook instances You'll have to terminate the controllers just so it's not like taking up the port and like creating a client session I think So here we're actually gonna, uh, you know use the agent control we spin up a webhook server We paste in our new identifiers uh, and I'm gonna create a multi-use invitation if anybody has a Wallet a mobile wallet that points to the sub extension network feel free to you know scan this qr code I'm gonna print out in a second And this is basically the logic right so these connection handlers the the agent receives a message Uh, uh sends it through the webhook to our agent controller And we just register some listeners and handlers for those events that we're interested in, you know, performing functionality on So basically what's gonna happen is when this connection goes to active we're gonna offer you, uh credential Very simple So yeah, we register these listeners Okay, so like what typically would happen right if I wanted to do this with myself, you know, and I'm trying to design a flow I could just copy this invitation across to like my uh demo participant agent right And I could paste it in into this this thing, you know it down here We go somewhere down here and we just paste in the invitation But we can also display as qr code Now I have tried this and I hope it's gonna work because anyone got a mobile phone It's a shame. I can't hear you because it would be nice, but if people scan this we'll be able to see the interaction Right, you should print out some stuff. I'll also do it in case nobody has one Okay, cool. Yeah, and so basically this is just some output that we print right like, you know, as many people as you want we're just You know receiving webhooks and then we're doing some functionality and what we're doing is we're offering you a credential uh, and your participant name is going to be the name of uh Yeah, your phone site. This is lohan's iphone. Cool I guess just lohan did it Uh, this should be like scanable by anybody. So, you know, we'll leave that for a few more minutes Um, if anybody's interested and then so we've got five minutes Okay, that's not too bad. Uh and then the next thing that I really want to get onto is Looking at how you would use this yourself, right? So like I've been using this for a while now and every time I use it Kind of get a bit bit better at using it and and what typically was happening is I was just copying and pasting code all over the place So what I've created here is like some recipes, right? And and you can just you know, say you want to design a flow you want an issuer and a verifier So you typically go to the issue credential protocol, you know, and like as the issuer I've copied these two templates, right? We have the initialization and then the issuance We can just copy them and I wouldn't put them in the recipes folder But if you come back to your root folder, this is like your agents code, right? Like you're testing out you can paste them in here and then you've got two easy templates You can just easily, you know go down customize whatever you want, right? Like you want to define some Schema you want to set some attributes, you know, it's designed in a way that are you know anything in these brackets You need to change But it's really simple to get up and running and I'm like, you know design a complicated system, right? Don't want to do that And then so yeah, there's loads of recipes definitely worth checking out because it's just like here's easy How do I get started? How do I do stuff like so we have issuance it's creating connection We have mediation and present proof at some point we will move multi-tancy in here But it's just been like a process refactoring at the moment And then the thing that's cool that we want to do today, which would be great if you guys can You know get set up with one of these and have them accessible on the public network because I've created a couple of like libraries I call them I mean the very rough and ready pieces of code, right? But essentially these are like things that you can import into your notebook And you know do a bit more complicated functionality without needing to implement it all in notebook cells So, you know, we have this thing called a messaging service I'm just going to allow you to you know, you pass in your agent controller And then we can make connections using the messaging service and we can you know Just send messages to each other we can print out our inbox all that kind of stuff So I think me and Logan already created a message. I'll just show you that first So, yeah, I mean there's just some code right like so we create an invitation So this is like well hands connection identifier and then I'm just saying, okay, like let's see what messages were on somebody You know and it's It's like that. I mean, it's very much a gimmick But the idea is because we're all working in notebooks, right? Like if anybody here is motivated to like write their own service or you know, like extend the service in any way Write their own code Definitely it's a hundred percent possible, right? Um, so there's that right would be good to like I can send love and another message Oh, well, that's just send me a message So, you know, it's cool because We're not on the same machine anymore, right? I'm on some machine on some ip somewhere Right, and I've actually not used n grock anymore. We're exposing the agent's http port to the public network And you know, we're interacting together. So another cool thing that we've done is This thing called the authentication service. So like again, like I just implemented this I'm just going to terminate the controller Oh, so there's this as well like because because because this is just in local, you know, just in local storage Uh, it's not going to save. So I'm going to try this, you know, so we've now saved this to a file So in future like if I wanted to get back my contacts and like come back into this notebook I'd have to load from file and just get all these messages back Um, my thing Yeah, in the authentication service the idea is, you know, it's a similar process. We're just importing some class that I've written And what we're going to do is we define a presentation request and we're creating an invitation, right? And we say, okay for this invite, I'm going to challenge them once they accept my invitation to present this proof, right? And again, you know, we can space as a qr code and lohan, I guess you got your credential so maybe you could scan this qr code too and you can present, you know, like Pass the authentication service and you can imagine putting this on a website or basically The idea of this playground is is it's it's really simple to start experimenting with what's possible So eventually, you know, when you get a bit more comfortable Firstly, you know, you can try out some cool ideas, which wouldn't you know, like would take you a lot longer to do um If if you were did not work well Okay, yeah Cool. Yeah, so it would take you a lot longer to do this, you know If you were having to start from scratch and you were trying to find find a front end for all this stuff, you know, it gets complicated and you know, we better To like first do all the flows kind of get like, okay What's going on here and then you can just pick like one actor and say, okay, right? I want to divide to develop a front end for that actor, right? Uh, you know, I want to take this messaging service that I've created, right? And I want to spin up the front end so we can actually see messages in a nice interface, right? It's just you just kind of like slicing the pie a little bit nicer so that I don't think you've responded to me. You didn't pass the authentication service at all No No, I don't need we have one minute by the way Okay, one minute. That's fine. Did you did you respond because yeah, so there's one minute, right? Like and I don't want to go into this anymore Like definitely I'll be around all confidence. So if you were interested in this it's totally worth Uh having a look the main thing that I would say is, you know, if people don't want to spin this up We could send you some URLs and you know, you could actually just play around with this yourself Um And then the other thing that is definitely I recommend is watching this youtube video which just takes you through the process by which you can You can set up one of these agents, right and like go it takes like I think it's like 15 minutes long So it's a bit little time Not massive, right and and you can hopefully you know If you send it up and we have a channel on the hypergeo global forum It's like hashtag on the rocket channel hashtag airy's dash playground So if you put in a connection invitation in there, we'll definitely at least, you know Make this a connection with you and send you a message and I think it's quite cool just to see it, you know So I think that's it, right? It was a bit fast and it was hard to get through it. Hopefully Uh, that's interesting Yeah, you can do a group notification Cool. Thanks a lot