New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Walrus Workshop I Alex Tsiliris

ETHGlobalThu, Oct 9, 2025, 12:00 AM

Alex Tsiliris from the War Foundation presents Walrus, a decentralized storage platform built on Sui, emphasizing its high replication factor (4-5x), scalability, resilience, and programmability. Walrus uses a native token for leasing storage and offers integration via HTTP API, SDKs, and CLI. Data stored is immutable, with simple store, read, and delete operations. The platform supports static website hosting and domain integration via Sui Name Service (SUNS), with future ENS compatibility. Alex demonstrates code examples for using the API and CLI, and highlights Tasky, an SDK-based app for easy storage management, mimicking AWS/GCP. The hackathon focuses on tooling and app tracks, with $10,000 in prizes. Documentation and support are available at warras.xyz, and the team offers assistance with testnet tokens and setup. Walrus aims for chain-agnostic interoperability and developer-friendly tooling. 00:00 Introduction 00:36 Walrus Storage Overview 01:22 Native Token & Integration Methods 02:44 Documentation & Getting Started 03:16 CLI Setup & Testnet Tokens 03:35 CLI Commands & SDK Example 04:43 Tasky App Overview 05:06 Decentralized Website Hosting 05:59 Domain Integration & ENS Compatibility 06:35 API Usage & Code Demo 10:02 Walrus Sites & AI Assistant 11:20 Hackathon Tracks & Prizes 12:29 Tasky API Key Setup 13:39 Tasky Vault Creation Demo 16:28 CLI Setup Details 17:41 CLI Path & Wallet Configuration 18:28 Blob ID Retrieval & Data Reading 19:26 Image Handling in Web Apps 20:14 Conclusion _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 🇫🇷 *ETHGlobal Cannes* This workshop is specifically for ETHGlobal Cannes, a 3-day hackathon held July 4-6, bringing together the most skilled web3 developers, designers and product builders from all around the globe for a weekend-long adventure to advance the Ethereum ecosystem! Watch the full ETHGlobal Cannes 2025 playlist here: https://youtube.com/playlist?list=PLXzKMXK2aHh5N2DCwhcEshNW9C8knZ1T-&si=Lc-WOyfkAVP2--R4 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ✅ *Follow Walrus Protocol* X: https://x.com/WalrusProtocol ✅ *Follow ETHGlobal* X: https://x.com/ETHGlobal​ Warpcast: https://warpcast.com/ethglobal Website: https://ethglobal.com YouTube: https://www.youtube.com/c/ETHGlobal _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Are you interested in Ethereum development and entrepreneurship?_ 👉 Sign up for the next ETHGlobal event: https://ethglobal.com/events 🎁 Get exclusive access and perks with ETHGlobal Plus! https://ethglobal.com/plus 📣 Want us to throw an event in your city? Tell us where! https://ethglobal.com/city _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Transcript

[Music] Hello. Hello. Hello everyone. I'm Alex from the War Foundation and I have a a pretty big presentation so I might go over the slides faster so I can show you the code. WordPress is the centralized storage which makes things like quite simple.

It's you know delegated proof for stake. The data is reli reliably yours. As you can see the good things about warras and the things that we have over the competition is that the replication factor is four or 5x which means that if you store one megabyte you will need five megaby five megabytes of best on the chain. You don't need that megabyte over 100 nodes to be replicated which means 100 megabytes. Um so this makes it scalable scalable.

There is um an algorithm behind the way the data is uh shared among the nodes which makes it really resilient. So if you want to write you need only one third of the nodes and twoird of the nodes if you want to read it. It's programmable and we'll talk about it later. And of course there's a native token. with the native token you can uh lease storage space on war and then you can upload whatever data you want.

So there are a few ways to integrate. The easiest one would be the HTTP API which are like just three calls uh store then read and then delete. There are some SDKs if you want and the war CLI. I will show you where you can find code for that and if possible I will show you some example on how to use it. So yeah these are the main three functions as you can do on war.

Waras is just decentralized storage. So which means you can store data the data is immutable over there. Uh you can read the data and if you want you can delete it. The storage will be there that you have list so you can fill it with something else during that duration. So I will change my my screen a bit here.

I have a

let me make it a bit bigger.

So there is a GitHub over here that I'm going to show you in VS Code soon. I have three readmies. The actual documentation can be found at warras.xyz and then you go to the read the docs. The talks are really cool but if you don't got if you don't have time to go through all of these like getting started I have compressed the things that you would need in a in a single repo there is how you get started with the API and I will give an example of this and what you should should you expect uh with the CLI it's a bit more difficult whereas as a coordination layer uses which is not an EVM chain and the token is on sui.

So if you're using the CLI, there will be a a SUI address created. We can help you if you can come to our booth, we can or send us a message with your address. We can help you getting testn net token so we can work with it. You don't need anything else otherwise you know with the CLI is just very simple. This this would be the CLI command to store something and most probably I will have time to actually show it.

And yeah, there is another this is an application that came out of a hackathon if I'm not wrong that allows you to actually it gives an SDK and I have in the in the docs

over here I have an example of how to use it. You will need an API key. This is all that you would need. Uh this is how you create a vault. This is how you would upload the file and this is how you would read a file.

It's all in a typford SDK and it's really really handy. Taski task by itself should look like uh you just log in with Google. Yeah, you have all it's it's similar to GCP or AWS or something like that. They try to mimic that. You create a vault inside your vault.

You upload images and then you can just have them get them and link them. They have their own documentation. And of course, you can follow the example over here. And last but not least, this is a more advanced topic that I will only uh mention it. This document, this documentation site over here, as you might see, it's actually stored on Moras.

So, you can actually store sites on Walrus. Uh, this will not really help you with the with the hackathon itself because we only need a proof of concept and doesn't have to be live. Uh but if in the future you do want to build a website and you do want for it to be decentralized for whatever reason, you should uh check it out because it's really simple. As long as you build it and you do a static build uh the command wait the command should be something like this. With this command you have a website on Wras and you can also add a domain name for it.

Here I would like to point out that the domain name uh is based on the SUNS which is on SUI a very interested hackathon proposal. So in the hackathon as I will say later we focus a lot on tooling. One tool is make this compatible with ENS and it should be really simple if you read the doc. So if you go in the in the docs, there is a the sites section over here which introducts the war sites and it says exactly how it works and how you could uh you know get a domain and stuff like that and create a portal that could work with should be like really really simple. So let me let me show you the actual code like the API is really easy.

You will need an aggregator and a publisher. In order to read you need the aggregator in order to read the uh to write you need a publisher. So you just need these two environment variables and then you know as long as you do a curl or you do a fetch in your JavaScript or something like that uh in order to upload it's a post request of course uh it's a put sorry it's a put and you need to to give like what's the file

if my internet is should it should work. So yeah, here you see a blob object the ID this is what you will need eventually if you want to read uh if you want to read let me find it here is you will need a blob ID. So if I run this and I go with the ID that I got for the blob, this will start downloading your data back. Of course, in a website, you can just link it. Oh, wait.

So yeah, I most probably did something wrong here. Then make it a bit bigger. What?

Okay. Yes. Uh let me let me publish it again. So if you try to republish, so in my case, I didn't save the blob ID. If you try to republish, you will get the fact that it's already published.

Oh, this is a blob ID. So yeah, I did I didn't get the correct thing. Uh so yeah, if you try to republish and you already saved they were with using the CLI using the HTTP API, they will figure out that this is an image that it's already on walls and you will just get the blob ID if you manage to to do it like I did and not copy everything. So So here you would have to say to save a file. This is a warning that says I don't want to download the file again.

But this is how you would uh download. I would have to say output to a file. Maybe I can add it over here if you want to download it. Otherwise, you just add a if it's an image, you add a min image tag in a in a web in a you know in HTML or in React. Uh how much time do I have?

Let's go back to the presentation. So yeah, waras sites as I said before you can use waras to decentralize to to have a decentralized site. As long as you build after you build it, uh you just need to host it on war and it would work just like this site does. And also we have an AI over here. You can ask it anything.

How can I upload an image to Walrus? So if you cannot really find us up until now, this has never failed me and it will give you like everything that I said. You can use HTML, you can use the CLI and it will give you all the possible usage and you can continue asking him So as I said for the tracks

we have uh we have two sections. One is tooling. Our main interest in the world is that it's built on suite but it's made to be chain agnostic. You should be able to use from EVM or any other ecosystem. Anything that helps us in that direction.

It's something that we're really keen on seeing. And of course there will be apps. the the total price is 10,000 and is divided between three three submissions in the tooling and two submissions in the app. So two apps will get 2K each and three tools will get 2K each and yeah the dogs that I showed you is over here worldw.xyz XY Z and the track over here the developer if you're interested in connecting with us you can get in this developer form

and I think I have a few more minutes I would like to go through Tasky Okay. So, because I feel that this is the easiest way you could do it. So, you would need an M. You go on Tasky uh you go to your account and you get an API key over here. I already have an API key.

You save your API key to your M. This M, if you go to the GitHub, I I had this M like on purpose. I pushed it on GitHub. You should use your own API key. And you should always hide your M.

You should add it to the git ignore. And then as long as you have an an API key, you can let me make this more visible. So I'm not even going to use main over here. Like if you want to create a vault, the API is really simple. Of course, I follow the documentation over here.

So you just go to the TypeScript SDK and vaults. It has how you create vaults and all of this. So if I do a sorry if I do a create vault over here and I just need a client. Oh yeah, this will not work. I think I created the client.

So first yeah first you need to create the client with your API key and then you would away the vault creation. The vault creation should be only once and I got it for 101. Oh, most probably because I already have the vault or my API key. Oh yeah, my API key. I didn't configure M correctly.

[Music] I will generate a new key. Yeah, we'll need to figure this out. Like, I'm really sorry for this. Last time, last time I tried it, it was pretty simple and I'm pretty sure this code works. If you have any questions, I'll be around at the boost for the I can go for the for the CLI.

The only caveat for the CLA is that if you follow the the setup and you do the install Sage, you will see that it will in your code in your computer, you will have a SU and a SU config and you will get a client YAML. So if you do follow the CLI, you will have a client YAML and it will give you an active address over here. This is an address that you will need to have wall in order for you to be able to store amoras. We can help you with that. As long as you give us this address, we can send you like test net or test net and wall.

Uh afterwards the the CLI, one thing you need to to in order to make it easy, make sure you put it on your path. Uh so it should be in your path. Usually it goes over here. You should put it over here and put it in your path. And then this would help you generate the the sweet wallet that you need.

And then the code should be as simple as that as this. So in this case because I guess I already stored the image, it tells me that the image is stored already and you can retrieve it with this blob ID is the same LO ID that I have from the HTTP. And if you have the blob ID, you can always read it. And in this case, of course, it's just binary data. I didn't tell it that this is an image.

So, it doesn't know how to read it as an image. Uh but in your in your web app you just put it in an image tag. It says like here is the the header. It will read the header and we'll just show it as an image. So yeah, we'll stop it here.

I think I'm on time and for Tasky. So yeah, just keep the code if you want for the GitHub and you can find us at the war booth for any questions that you have. Thank you. [Music]

Automatic transcript — names and jargon may be misspelled.