Writing the dweb: Using wallet and storage APIs in Freedom Browser
DappCon 2026 · June 2026 · 1:36:31
Speakers
Topics
From DappCon 2026, hosted by Dappcon Berlin.
Transcript
blinding. Hi everyone. Uh, thanks for showing up. >> Okay. to my cypher punk roots. Before that I
did like various uh hacking for NOS's uh cryptography and so on so forth and I had my company time and then after I exited the company I was looking for you know things to to do that that help help the the ecosystem and then a good friend of mine Jar a hacker that I know for like 20 years and uh that was working with various Linux distributions and which I also was part of and was also always connect connected to the hacking scene. in uh in Italy called me and he didn't call me in years and I saw the phone ringing so if he calls it must be important so I picked up the phone and he said hey you got to come to this thing in a few days in Berlin or near Berlin and like okay I trust you and
there I was listening into all the talks and also connecting to Bruce Kale of archive.org or personal hero of mine. I was like, "Oh, cool." So, Brewster was there and he expressed specifically the need for a a program or a package that has the software to access the decentralized web, but also to write to it and bring it all in a very easy packaging. And I was like, okay, that must exist, right? Or like some components you can just stick together and and that's it. And uh so after the camp uh I researched a little bit and and I realized it's it's not really there. So there's like fragments of it but there's no easy to use interface.
And uh then I thought um to myself maybe a browser is a good idea to kind of connect at all because you know it's the window to the world. And then and I always repeat like repeating that that uh Victor over there told me don't build a browser. I know he meant it differently. you meant it's very complex you know and it is complex but these days with um agents and AI and AI assisted coding like a two people team can build a browser like conveniently right and that that's what we did and we connect connected all these things and now 6 months later we have a fully functional browser that even though it only exists for four years or sorry for four months three months um in the public eye already has a name for itself
so there's clearly an interest and a demand in in a decentralized web interface and that that uh uses the same usability as the the existing browsers and you don't have to start a separate node or connect through a gateway and things like that. So that was the original story and uh I will just continue with the presentation then if that's okay video team. >> Cool. Oh, perfect. Now we can start. So here we go. Yay. And u I hope you you're not pressed for time everyone. So yeah, the the D web um is is very easy to read from a coming from a traditional point.
You can just go through a gateway and read D web content. But uh that kind of defeats the point, right? You go to limo.eth.limmo orlink or whatever the name of the gateway is and uh then you can access the the decentralized content or that's decentralized host that has a decentralized hosting. But that's not really uh what this was supposed to be. And um so to go further to uh read it directly from different nodes around the world is one um one thing that we did. But then in the second iteration of freedom we also allowed to write to the dweb and with it came the owning part.
So read write own uh that's all built into the browser. So by downloading and running the browser you are part of the network. You're not just a consumer you are like also a publisher a producer at the same time. And uh that's actually what the original internet vision was like many many publishers like you know a peer-to-peer publishing build your website on on your own computer at home hosted through a modem line or put it on geio cities geio cities if you want that was the original uh you know uh vision and that's how I grew up with the internet I I did this as well I built small homepages in the 90s and uh then it became more and more centralized and with centralizations obviously there come a lot of issues uh that are not in the interest of the end user uh yeah you
have like monopolies that try to charge you for things or try to exploit your data all these sort of things uh yeah you don't want really but often you don't know that they're happening and uh yeah that's why I think it needs to come back to a more decentralized approach of the web to in a way save it because uh you know these big silos data silos are um kind of governing the web not always in the interest of the user or um mostly in the interest of of profits obviously So um yeah that's where this uh came from and um just for this workshop if you want to set up now I don't know if you can read it uh should be okay um so as I said earlier you need a git
account or sorry a git uh setup and uh you can just um clone the repository I don't know if you can read it so it's solar dev solar development uh-xyzfreedom- browser if anyone can't read it or needs some help with that. Okay. Yeah. Stay in the middle. Stay in my lane, Minehard. Stay in your lane. Uh don't diverge. Um so yeah, so once you have cloned that uh I hope like it should be open on the network. If not, then we have a real issue. um you type npm install. So you
change to the folder obviously type npm install and uh that runs through installs a few libraries and uh yeah it's nothing out of the ordinary pretty standard stuff. Um so then you can run uh npm run and download and also IPFS download. What uh this does it downloads the peer-to-peer clients. We don't ship them with the browser because they change often and also they're quite big binaries and uh yeah so we separated that from uh the the source code itself.
We don't keep them in the repository obviously because they are they're just binaries and so the first one and is uh is an interesting part and this is the the world premier of ANT. Uh it is our own implementation of the swarm uh swarm swarm client swarm pewer clients. uh we used B before and B is amazing. Um but for being uh portable uh on on different platforms including mobile and also for us to quickly implement a feature that we want from the network that is there there in the protocol but that's not exposed by B or not in the way we kind of wanted for our mobile apps. We decided to vip code uh is warm client.
uh also then when that was going well and and progressed quite fast uh we also decided uh let's do the same for IPFS and and implement re-implement the whole same whole thing as well and almost in every aspect the IPFS client is faster than than Kubo which is the official more or less official client it's faster it's smaller it's leaner it doesn't keep constant connections to the network peer connections it only opens connections to the network when it downloads a file so it's very lean on on the memory And um yeah, so because it's it's very fast in connecting to the peers as well. It keeps a warm pier set and kind of can just connect within a second to 50 nodes or something. So it doesn't need to run all the time in in the background. It
can be started on demand. And a similar thing we'll also do with ant where we uh launch it and and kind of let it cool down, let the let the nodes disconnect uh if we want especially on mobile where you know resources are limited. uh there's going to be a more permanent mode on the desktop computers but on mobile you know everything every resource is very scarce and also the apps are being closed anyway by the operating system uh so we need to be able to quickly reconnect to the network and that's what these things do and yeah once you have that done you can do npm start and uh I know I'm not supposed to but they're not there they don't see me to leave the camera but um because this is a workshop I'd like to see also what
installing Git. Hey, is it yours, Anna? Cool. Nice. Um, oh, 10 hours. Uh, um, so who has the uh the repo cloned and and npm install run? Are you is anyone on that or any any issues with that? I mean, I can just also um continue and show it on my computer. These slides are available and that's the last step actually here in the workshop repository which is github.com/minehar with two r uh/depcon 20226. Uh the slides are there so you can always come back to that and and do
it later at home or whenever you have time or in the office or in the train. Um so all the slides are there and also the examples that I will give later they're also in in this repository. Uh so yeah you can just clone that later um and also I will publish it somewhere I don't know maybe uh on on LinkedIn or something um or also on the freedom browser e so u once you have started uh freedom it should automatically launch the nodes and uh connect to nodes so with and also with IPFS so IPFS actually doesn't connect to nodes it's waiting for a job to do on the IPF IPFS network But with uh Swarm, it connects to 100 nodes
within one or two seconds. Um yeah, so um yeah, once that's done, you can open uh freedom browser. And that's already showing the magic. So you have uh like a native um resolution of ENS names. So this is not using the more or less centralized DNS or centralized authority DNS. It's using ENS which is a smart contract uh on Ethereum uh to resolve the names. So freedom browser will translate to a content hash or to a swarm hash and then uh freedom uses this hash to get the content from the swarm network uh directly from the peers. So there's no gateways involved in this.
The name resolution is a bit of a half centralized part and that's really still one of the biggest issues we see in terms of centralization or decentralization that uh ENS or Ethereum clients uh don't really have a light mode that's that's practical to use and to ship. So that's something definitely we are working on. We we're trying out different solutions. We use as a backup also a quorum of different RPC endpoints. So we don't trust just one uh computer to give us the right answer uh for an ENS name but we we query several and then we compare and if they agree then then uh we uh we forward to the website. So it's you know a kind of uh limiting the risk of being hacked but first we do actually um another uh
another method that's sort of a light client u so yeah we have different layers of security in the ENS resolution. So once you have that set up and uh it's all connected to the browsers um an interesting thing uh you can do or I will show it also on the screen you can create an identity. So immediately it's almost like a profile but it's uh creating a private and public key pair which you can then use for authentication for websites or for uh like authorizing money transactions or even to um uh publish content on the decentralized web. So it's kind of one key for everything.
>> Yeah. Yeah. Yeah. So it's totally optional. So it kind of gives you more powers, but uh it's an optional step. Exactly. So yeah. Um those are the repos and uh if everything works well, you should see something like this with uh nodes connected. Um and uh yeah, kind of speaking to the network. And as you can see here, the uh IPFS uh doesn't have any connected nodes. It really just says the the jobs that it worked on. Um so and um by by the end of this workshop, if you have the the setup live, uh you will have published something to the decentralized web, it's it's quite easy and uh yeah, I'll guide you through the steps. Um so it's very
easy to connect your identity via the known window. Ethereum API or interface then you can create content you can publish it and uh you will get a BZ reference because we're publishing to swarm and uh you can also sign messages cryptographically all in within the browser without any extension. So and then later you can um resolve or like tell ENS which content hash to use for your content. So you get that link as well.
Um so yeah the the browser really is the bridge between the applications and the networks and uh yeah so it's it's all happening on your local machine. That's that's sort of the magic in that and uh yeah so you can uh as I mentioned already have an identity for signing and uh permission management. Uh then window.swarm that's where we expose uh direct access to the swarm network. So it's just a JavaScript object that you can speak to and you can um publish content, you can retrieve content, uh you can uh yeah update feeds uh which is a feature of the swarm network. You can retrieve individual chunks. Every swarm content is uh chopped into small chunks of 4 kilobyte. So you can get just one
chunk if you want and analyze it and do stuff with it or reassemble the file as you wish. Uh and also has native protocol support for BZ, IPFS and ENS. um URLs and um yeah so they uh they kind of they are very native to the browser so they have their own local storage. They function like uh like normal website objects or like like host names almost and uh yeah by that you can then uh use a bzz reference uh for addressing uh and access the content via this swarm node and this is all familiar on purpose.
It's a bit small here. I don't think I can make it much small much bigger. No. Um, so it it mimics to some extent what extensions do in the browser. So the window um functions the same way. Fin implemented this to be kind of a drop in replacement for MetaMask and other injected wallets and it functions the same way. Every uh web page that's compatible with MetaMask and other injections uh is also compatible on on Freedom already. uh when it comes to uh the Ethereum uh link or the Ethereum identity uh and the uh window.swarm swarm that's a new uh well a sort of standard we proposed also a standard
regarding this to to make it uh available for other applications to implement and uh yeah so that's the the u familiar um element of of this so it's the same request pattern as in known uh APIs so um we'll in a second upload something uh something small and um just before we do that a quick notes on uh how this happens uh it runs through the local node as I mentioned already um and uh we have a small sort of tool website in it which is freedom uh slpublish and that's yeah a small interface to the publishing um very low level and uh there's a concept of
postage postage batches and stamps and you don't need to understand all these right now if you're not familiar with swarm it essentially is a way to pay for your space on the swarm network and also for the volume that you consume when you transfer files in and out. And um yeah, there's also a stamp manager that we use. And uh to make this all happen, you need uh the BZ token and also the uh die token. This is the currency of the network. Uh that's not transferred directly on Swarm, but it's transferred on Nosis or maybe on another blockchain. uh and the messages are passed back to uh the swarm clients.
Okay, I have paid for this so you can give me this content on a different channel. So it just uh outsources all the the payments to to real blockchains. Swarm is not a blockchain as you know it. It's it's a it's a storage. It's a distributed hash table uh with content chunks addressing. Um so yeah today uh if someone wants uh I can send some um some of these tokens to you and then you can try it on on your on your local systems and um the uh signing doesn't need any any gas if you sign messages. It's just cryptographically signing in the website and the JavaScript in the website can just request that and uh in production obviously you would have um your user fund the apps by themselves and uh there's different ways of doing
that. uh there's bridging, there's swapping and and yeah, the idea is to have a very easy to use interface for that. But that's really on the application developers side. So um for the first hands-on part um so publishing to swarm is uh in freedom is rather easy. It comes with batteries included and uh once you have set up your identity and you have set up a wallet um that's or let's say funded your your local node you can then publish uh so that part the funding on the local node that's a little bit uh of a process right now we're also working on making that a very seamless uh one-click solution and and we have that also in some test branch but it's not
live on this system yet so yeah let's just um do this maybe uh directly on hands-on and also in the repository in the examples uh this code is available as you can see here it's it's no rocket science it uh it asks for access from the swarm client in the browser sorry and then uh it uses that object that it gets returned to publish data so there's there's a a method called publish data which accepts uh data and the content type and and the name some metadata and the rest it uh in the background asks the user for permission if they haven't given permission to do this autonomously and then it just gives the reference and
also builds a URL that you can directly type into the browser later and uh yeah let's just do that and the things I just talked about um it's a bit small everything here I hope you can see it um so we are on a page and sort of an easy way of uh entering commands here would be to uh just have the developer tools open. So you open the console and here you can then uh go and say window doswarm and it will give you an object or uh yeah which has all the methods exposed that we that we talked about and um to get permission from the website. Let's
make this maybe smaller. Um, yeah, we can just, uh, do this here, paste it into the console. And because it's already pre-approved, it doesn't show any confirmation. But if I do that again without the approval, is this visible? Okay, I'm just going to make this a little bit bigger. I can't even read it myself. Um so what what happens now we have a sidebar here which then asks the user hey do you want this website to access uh your swarm API and you say allow here and then the uh yeah the object returns or the the the request returns an object
that you can then work with. So and next thing will be uh this uh call to uh publish simple HTML. So we just paste that here and uh we say hello Berlin. So it's a very simple it's not even a HTML page. We don't want this. And we just enter that. And then um the browser asks so we're we're kind of mimicking to be this website in the background right so that's what's happening so the website could call all these JavaScript functions as well but we do this uh just to the console to be more flexible to edit it directly so and
then uh it says do you want to uh use this do you want to spend some money on this um and I can just say always allow and uh then what happens here it returns uh nothing uh right now but it has filled these variables here reference and the BZz URL and uh yeah we can just console log this. Oh actually reference uh so this is uh the swarm reference or the uh swarm hash that we got back and what we can do uh we can just put this directly into swarm sorry directly into freedom and it shows us the content. So yay and the page source as you can see
is exactly what we did here. And uh if we want to verify that this is really live we can go to a remote gateway uh let's say so and I also deployed something here on as a as a gateway uh we can first get the info so it says uh it's hello HTML and has website content and we can also open it and it says hello berlin. So this is a a gateway that's running in a data center in Germany uh somewhere in France uh sorry in Frankfurt. Uh so this has also picked it up from the peer-to-peer network. It has already broadcast this information on the peerto-peer network and is already available over there. So yeah that's uh the publishing through JavaScript
and um what what you need for that is a uh first of all the identity here. Uh you can see here it's the the main wallet. It has some XDI for gas and then you also have the node. Uh the node has a separate wallet and a separate balance currently almost 20 BZ and you need that to buy storage. So first you have to buy storage on the network or kind of reserve storage and uh then you can use that you get almost like a receipt or like a permission slip uh to to use that storage and you give that uh when you connect to the node when you send out the content. So um yeah that's uh the setup here. So I earlier I mentioned earlier also the uh
the freedom freedom publish feature. So here you can just publish uh a small folder and uh we can go to the repository where there's also some examples. We can publish the mini app here. And what the mini app does, it gives a bit of an interface to um yeah to to the functions I just talked about. And um yeah, you can see uh this was almost instant because it's very small data. It published this uh little website a few kilobytes instantly and I also have had preapproved the publishing. So it just did it without asking me. So I can open this now in a new tab and you can see there's a new
hash here uh which again I can also check in in a normal browser and it will show the same website but it will say window.swarm not here because I'm here now in Chrome and uh Chrome doesn't have obviously the uh the functions that we need for this. Um so here this is the same thing we can give a title uh hello dappers and uh yeah this stuff we can add a smiley to it and here because it's a new page uh it asks for permission again we can uh connect it and we can then say publish and sign and it gives a bit of details here we allow that uh we then
publish and it. Oh, I have to unlock the wallet. Uh because uh it's signing the message. Exactly. So, and I can do that because I set it up with a Yeah. fingerprint or with the Touch ID. I don't only have to put in the Touch ID. It's signed. And uh here we go. It's now also open. Yeah. So, hello Dappers. It's another piece of content we've published. again just text content but we can do the same thing with uh images and uh videos everything so yeah that's uh very simple publishing done war um and let's go back to the presentation um so yeah there was no server involved
uh we didn't have to sign up to any publishing or any hosting provider And still it's available on the web and uh in yeah the coolest way possible the peer-to-peer way and uh we got the reference back and we could open it in the freedom browser and uh the the reference uh yeah is the identity of the data. So it's uh it's definitely unique data. So um we uh oh this still says kubo uh it's it's a bit outdated from this morning because as of today we don't use kubo anymore. We use our own freedom IPFS implementation.
Um so uh the the the writing part for IPFS is not implemented yet but we plan to do the same thing as well to kind of give the people the choice and also experience the advantages or disadvantages of of the networks that are there. Um so we already did the authorship that you can sign content before you uh publish it. Uh just u this is interesting in in the context of person or man-in-the-middle attack where you could on the fly uh like change the content of a website uh for example to sniff some secrets, sniff some some private keys or yeah like change public keys to to steal some crypto. So that's
where signing comes in and uh yeah we just did this also where the browser gives an interface for signing and uh again the code for this is also in the in the repository for this. Um so from hash to name. So we uh have gotten these hashes these uh codes from the the published content. Uh for example here this one and uh what we can do now is we can link it to an ENS name. So um you um you go to an ANS provider. You can also just talk to the smart contract directly but there's yeah an ENS website where you can just conveniently do that that uh connects to your uh local address sorry to your local wallet to au
authenticate you and also to pay a little bit of gas and a little bit of fee for the update and uh of course you have to first register this uh domain name. So minehut is one that I reg registered and uh we can then go to the uh you see ens domains it's very small but yeah this is the the centralized website but they also have a website live on uh I think it's IPFS as well so what we can do now is for dapconfreedombrowser so it's a subdomain of the freedom browser domain and we can go and edit the records and uh on uh in other uh we have the u the record uh that that's called content hash and that's really
the part that links your content hash your the thing you just uploaded to a name. So we can just paste the content hash here but uh because it's also protocol aware we need to add bzz before and then we can save it and uh then it's opening a wallet the the wallet to confirm. So in this case metam mask and uh here I just confirm and what it does now it updates this record on the ethereum chain and uh yeah then it's available for lookup by ens resolvers and this takes a few seconds but that the result later will be that we can type uh this human readable domain
dapcon.freedombrowser freedom browser into freedom or any other browser that uh runs on a gateway or that uses a gateway and uh it will bring us to the um resolved content and so we don't have to remember these uh the long hash but also the hashes can change all the time right uh if I update the website I don't want to uh have a a new website name all the time it's the same way as DNS also works so transaction is successful and uh let's do this and let's go back to freedom here and uh type it here. And now the big effect. Yay. So we've resolved the ENS name uh in real time.
So if we want to know a little bit more about how this ENS name was resolved, we can check here. And uh yeah, it gives us the content hash that it was resolved to. And if we compare it, it's the C 033 uh to what we had earlier in the console uh C 03. Oh, it didn't show up here. No, it was another content uh another thing that we did here somewhere. Uh here C033 that's the one that we got and uh the website is resolved to that. So that's how you link it uh how you publish your websites.
Um so that's um the basic uh to publishing. Um so we also and I showed already have this uh mini app and uh you can publish whole folders. I also showed that um did I show that uh through the publish interface? I think I did right? I forgot now if I already showed this one. Was that the folder? Oh yeah, this is the uh the web publisher. So this is a whole folder on the uh local machine which uh we can see here in the mini app. Uh so that's the code and um essentially that's uh uploaded but just
by dragging and dropping it into the browser. So very very convenient. Um okay so the yeah check out the repository and um what you can do with this uh is quite interesting. So if your app uh wants to have permanent data available for everyone um you can do that with this uh with these API interfaces. So uh if you want to generate user content so we do that or Floren does that with uh swarm it which is a decentralized Reddit. It uses exactly this uh JavaScript API to if you write a post, you don't write it to a database. You write it to a piece of content or to a chunk or to let's say a content hash on swarm and then swarm
it is smart enough to connect all these different uh pieces of content small JSON files and put that into a feed and make this feed available uh through a a smart contract on on Genosis and uh yeah there that kind of brings it all together. it's it's emulating a database in the absence of um let's say production ready decentralized databases. Um so yeah these uh the idea is um that everything is uh sort of stat static data. So there thereby it can be easily replicated across the system and um then you have also this feature called feeds in in swarm where you have a reference that always stays the same
almost like an ENS name but it can have changing content underneath. So it kind of resolves within the network to different uh content chunks. Um another thing I didn't show but uh which also uh freedom supports is uh 40 or two payments. So um you can there um pay for little content pieces on a website and it's natively supported by the browser. So let me just uh show that as well. Uh we have the uh I think it was somewhere Let me find it here.
It was my website where we announced it. Uh the blog and uh so this is a small demo page which has u parts of content that are um insufficient funds of course. um where if you have enough funds you can just with one click uh unlock the content and um maybe I'll just top up this this funds so you also can see that and it would be on the wallet part we go to base so we have supports for support for Ethereum balances fornosis balances and for base balances so if I just top up
some funds here right now what I'm doing now is I'm using my local wallet here to upload funds to uh the browser here or to transfer it and let me just do some XDI. Oh USDC right? USDC on Brave U base. Okay, next. Let's say 0.1 and confirm. So what I'm doing now is I sent uh 10 cents uh USDC cents uh on base to this browser here and we should be able to
see the balance very soon. We need a reload button here which we can press. It doesn't make it faster but we can press all the time. Florium, we need a reload button on the balances. This way we can just hammer the button all the time. Yeah, it's currently just checking every few seconds or something. >> Okay, so here we go. So we have the uh 10 cents and what this does now if we uh reload now and uh you see this part is not readable. It's a content that's behind a payw wall. Normally what you need to do is you have to sign up for a subscription and u yeah forget about it and then you kind of pay for it for for a few years. And here you can just uh
say pay once and it unlocks this content for uh I think it was how many cents was it recent payments? This was two cents just uh for this one piece of content. It's a demo. Uh also the content might not be worth it. It's some AI generated slop but what isn't these days? Uh so yeah um that's um funnily enough the original vision of Satoshi Pay the company I founded where we had a microp payment payw wall integrated uh the same way uh without or actually partly with 402 about 10 years ago uh where we did the same thing on Bitcoin payment channels um and it was more or less an experiment but now we have uh proper
support within the browser and also in a wider ecosystem with the X42 standard that also Circle is pushing ing quite heavily more for agent agents or agentic use but uh yeah it's it's for the website it doesn't matter if an agent crawls the content or if a human looks at it. So that's the 402 and if you want to see how the 402 uh is done uh you have the websites here. So the the interesting thing is the actual content is um um just behind a HTTP uh error code not error code like a status code.
There's no extra magic. It's really like the web server talking to the browser through the standard HTTP codes. Uh there's no uh other secret exchange. it's really just uh using that layer. So that's why we have also a server here, a small server uh that's uh has these um the headers, the X payment and the payment signature. Uh that's essentially what we also imagined back in the days 10 years ago, but now we have it as a standard and uh yeah uh it already works in freedom and it's kind of just waiting for users.
Um okay so that's the 402 and um we also uh we're premiering uh like a a new API that we will integrate soon uh which is already kind of uh being coded these days. Uh it's the navigator.freedom. So why do we go for this very old school navigatorfreedom uh namespace? Uh it really signals okay this is um user agent owned. It's like safe on the user agent side. is not injected by a website or by an extension. It really comes from the user agent and uh it will expose different storage mechanisms uh different feeds uh identity details um payment details uh
and also ENS name resolution and uh yeah so that's uh essentially what's coming next and uh it will make the browser into a developer platform. The idea is of course that we don't have these uh like isolated solution but that we will develop this into a standard uh that other browsers can also implement or other apps um to give yeah give direct user access or website access to all the decentralized elements or any anything web 3 any payments uh to standardize uh this further and yeah make it first class citizens in a browser.
Um yeah so just to kind of wrap up what you've seen uh you've seen how we linked storage and uh how we wrote to the network and uh yeah you already have the access to the source code uh poke around in it test it spread it and uh yeah also publish your own website you know how it works now and uh if you have any questions there's also a telegram channel uh linked on our website uh freedom browser and uh yeah so the the slides are live and uh feedback to these APIs and also the uh freedom or navigator.f freedom is warmly welcome.
Uh and thereby I think I can go to the question and answers part. Thank you. One thing I want to show uh some of you have seen this already. It's the mythos game. ETH. So what this is doing um it's a 3D uh game that I vibe coded and uh it's uh it's hosted on Swarm and also in the multiplayer mode it's um it's connecting to other nodes uh with peer-to-peer protocols. So there's like a um web RTC
connection and sort of a coordinator of these web RTC hosts, but they can all once there's many nodes, they can all speak to each other and it's it runs own without a uh a centralized uh back end. So yeah, you can uh yeah, just walk around and uh there's a few other enemies, but if you go to uh the multiplayer and if someone else joins the multiplayer right now, um you will see that it's a multiplayer and it uses gungs gunbal decentralized data and and messaging layer that we use. And uh is anyone joining for deathmatch?
So it's a mythos gameeth. It's very small here. >> How how does the the second player connect to this particular >> um and you can see now up here you see the other players. Oh, there's already some people firing. So um and uh if you look at the uh what's going on on the um okay I need to
minimize this first what's going on in the uh network uh you can see how uh guns is uh heavily relaying messages I think I'm because I'm dead now. I don't relay any any more messages. >> So, um yeah, and uh it's sending it directly to other peers. Uh there's no centralized uh element to this. I mean, there's one gateway or one peer that's always on that's on the server, but uh as soon as there's two and they know each other, then uh they can they can see each other.
So, it's uh the the world the world premiere of the first fully decentralized 3D shooter. >> Could Could this virtual world live on Swarm? >> It lives on it lives on Swarm. It's it's hosted on Swarm. >> It lives on when you load the game JavaScript. >> Yeah, it's fully JavaScript. So, the cool thing is >> the the world is not in the JavaScript. >> It is in the JavaScript. The world. Yes, everything is in JavaScript. What I mean is like one shared shared world could be on >> no it is already there. So and uh but but let's say the word or what makes the world is the people in it and that is
not on swarm at the moment. It's a messaging layer that's independent of it. Uh >> what I mean is if someone moves an object in this world then >> it's uh it's not implemented but it's totally possible. I mean like an object is also another player. So the same way another player moves, objects can be moved and the world can be changed like Minecraft. Uh this could be done. Yeah, I mean actually a cool idea to have like a Minecraft like >> No, no, as you can see it's this is like uh real time, right? Uh where is it now? >> Um No, I mean to to store the state of the world.
>> Oh, to Yeah, it would be some sort of um settlement every um I mean limited >> would be like >> that changes the world. >> Yeah, I mean of course this is just again a tech demo. It's not a serious project that I uh like pursue, but it's just Yeah, this was white coded with uh Fable within two hours. So >> So can you can you do feeds? >> What's that? Can you do feeds like uh >> so u freedom can do that but that's where uh the performance part comes in um but yeah we didn't try it on feeds but I think it's possible >> so if you want a blog and you you add a new post then it would update to feed
>> that's actually what format does >> oh yeah of course sorry yeah shameless plug by floren not shameless I plugged it Why is it? Oh, it's a new profile. That's why it's not there. >> So, Swarmit is loading. So, that was one of one of the things we fixed overnight last night and we're kind of uh a moment. >> We give it a moment. So and this uses feeds heavily and swarm feeds and swarm feeds are quite complicated in in the way they are being implemented or like how a client
let's say our ant. So this runs on ant doesn't have the full support yet with for all the features and there's a few edge cases that we didn't cover but we're about to iron them out. Maybe that's good. >> Second. >> I'm just want to do a bit of publicity for the new popsub protocol that's going to come. Yeah. What?
>> Say again. Do what? >> So popsub protocol >> on phone. >> Oh, okay. It's coming. Cool. Perfect. Yeah, that could be the back end for this and also for the game and everything like that if it's performed like that. Perfect. I didn't know it's coming. Cool. >> Um, yeah, more questions or comments. >> Anything else that I should show maybe >> or request? >> Yeah, >> feature request. Uh, access control act. Uh, cool feature in Swarm. Uh if you could uh have that as an option when you upload >> second >> access control act >> uh is is it a feature of swarm already
the access control is what we're using by with swarmit probably not >> no okay >> can you put it on put it on your list please >> it was a piece of work to convince them to implement No no no no. I I'm not happy with the performance of them. So there I mean just static references are so much faster. They're instant because they're cached locally and they're there and feeds are being traversed and looked up and I need to look more into it. Maybe Ant can do something to to do a few shortcuts. I know why I can understand why they need to be slow but they are slow. So that's fine. So here um I'm just publishing
something on swarmit and uh I allow it and maybe I do this to allow everything. So what it does now um it takes the content it publishes a few pieces of um JavaScript or sorry of JSON essentially and um yeah so it chops up the post into different elements and then postes on the website and uh once it's done not on the on the swarm swarm network and once it's done with that it goes to a smart contract um and announces it there and the flow and the how do you call them The co coordinators. Oh yeah, sorry. The
coordinators. Do you want to >> curator? >> Curators. That's what they're called. >> Send all my money to Florian. Okay. >> Oh, yeah. Thank you. Oh, wow. Jesus. >> Um, and another confirmation. Sorry, that's a one time setup. So uh the the secret behind uh Swarmit it relies entirely on feeds and uses Gnosis chain as a discovery layer for new posts and then there is sort of an intermediary introduced to make this really efficient which is called the curator. Anybody can be a curator and curators are just building feeds that combine all the posts that have been announced on Gnos's
chain and put them into a feed and a user can just say yeah I want to view uh swarm it from the perspective of curator ABC and then they will pull the feeds from swarm that this particular curator has prepared and if they don't trust any of the curators they can just run their own curator and curators can censor content. They can decide to not include certain posts. Um so there is the ability to censor and everything but anyone can run a curator. So in the end it's effectively trustless and this this concept of the curator just makes it uh much more efficient than if any user
would have to traverse chain events to sort of rebuild the the feed stream for themselves. So that's sort of the kind of hack how I build it. >> Yeah. I I looked into swarm graffiti as well uh which is a sort of hack but um Yeah. Yeah. One one more request >> is uh to to have an interface for the erasing erasure coding feature up for
the upload. >> Okay. uh that would make it more resilient and >> okay I yeah can uh we can look into that if well if you mention in the group again or maybe you have some spec that that you can point to it would be perfect so we have a telegram group where we discuss all this with about a 100 members um yeah so you can always drop feedback there I mean if there's uh no further questions comments or feature requests other than Peter's feature requests And I'm happy to leave it here. And also, yeah, Floren is here. Uh, I'm here for the next two days. There's going to be a talk tomorrow about the
>> Oh, wow. >> I think it's time to go. We We're breaking chairs already. >> The rest of the building might come come down. Knock on wood. Um so there's going to be about the grand vision uh and uh under the big headline reinventing the browser tomorrow uh by Floren about uh yeah the uh the back backstory and also what's coming and the reasoning for for freedom. >> Can you maybe say something about the security implications? >> I mean can you say maybe something about the security implications? I was just uh trying to set up uh a container that could run it. It's uh a bit tricky.
Okay. See >> yeah because like this npm based there have been a lot of supply chain attacks. So right and yeah I have a lot of stuff on my computer. I don't want to be compromised. >> Yeah good instinct. So we are vulnerable also to to supply chain attacks on on uh npm of course. Uh not of course but uh we we uh try to mitigate that. uh regarding um ant the rust based implementation of uh of the swarm network we have sort of a pinning to certain uh certain releases that that are vetted that are that we know they they contain our code and they're sort of clean uh but they're also just binaries to load down uh to download. So
that's one aspect. Supply chain chain attacks we don't protect ourselves uh specifically. Uh so that's definitely uh yeah something maybe we can look into or um the uh other thing is that we are using uh electron as a rendering engine or like chromium as a rendering engine within electron and they are always not always there sometimes a little bit behind one or two weeks the latest releases also it doesn't match with our release cycles sometimes so you can be out of date for like four weeks three weeks um in this case currently I think we're four four weeks behind um so that's the thing to to watch out for that if there's zero day exploits in Chromium.
>> Electron is behind Chromium. >> Yeah, >> exactly. >> Well, yeah, Chromium, sorry, Electron is is the the framework that gives us the the uh the app layer for for like having the browser and then the end engine inside is the engine inside is uh Chromium. So that's why you have the the fancy and you will know this uh inspect. So that's the same as in Chromium. It is actually chromium. So yeah. Yeah, somewhere here it shows uh Chromium content. Um so that's one aspect. Uh in terms of security of course um so regarding the identity that's stored in on Mac OS in the uh keychain is it called keychain?
>> Yeah. So we generate a nemonic with the same library that MetaMask uses for example but then on Mac OS when you choose to do a quick setup with your fingerprint we're going to store the password to decrypt the pneummonic which is start encrypted on chain the the password to decrypt it we store it in your Mac OS keychain which is tied to your Mac OS login it's like semicure I would say it's not amazing and I would not keep big amount amounts of crypto on on the freedom browser wallet at the moment.
But in principle, it uses the same level of security as a metam mask would. I would think it's roughly comparable. >> Yeah, it's like a hot wallet. So, >> so talking about hot wallets, so it's wise to to uh as for mentioned to view this as a as a pocket change wallet and not as your main bank, right? I mean generally hot wallets uh have different purposes but here the idea is also to lift a few security restrictions in how you spend it by having more convenience and this is like how pocket change in in your pocket works you know it can fall out it's you know it's not a big deal if it's like 5 but you shouldn't have the same security for your you know your life savings obviously so that's a
general security advice we have um >> when you approve when you when you approve uh spending would it be possible to set a limit on >> Yeah, it's already in it's there. >> Yeah. Yeah. So, uh there was a checkbox uh where you can set monthly or like a certain time scale for the uh the content payment part for the 402 and for other things. I think it's not implemented this spending limit but yeah it can easily be rolled out to other ones as well. One more security implement implementation or implication the um the nodes uh IPFS on and also the swarm node they expose local ports that
are visible by all users or everyone on that machine uh to um upload download or even like spend the money on that uh on that node. So you need to be aware of that. However uh we have with IPFS we have done it already. Um yeah so it's not exposing a local port anymore on this version right so it's uh it's essentially uh has direct function calls to the embedded um embedded note so it kind of talks to it directly uh with I think it's Unix sockets I believe it is or some some sort of socket uh so it doesn't expose a port and uh with uh swarm so and our implementation has also is also doing that on mobile already and we can also bring it to the desktop as
well so it doesn't expose it local port. Um the downside of that you cannot reuse your local node but since we're just a download focused node at this point on the swarm network and also on IPFS um it's it's kind of uh yeah one-shotting requests anyway and it doesn't need to be running all the time. So that's that's uh the security model that will change slightly uh in the future of freedom. So now we have yep half past 5. Thank you very much everyone.