DYOR Deploy Your Own Rollup in 15 minutes - ETHGlobal Bangkok 2024
ETHGlobal·Thu, Oct 9, 2025, 12:00 AM
Join us for a workshop with Robin Roy from Avail titled, "DYOR Deploy Your Own Rollup in 15 minutes." In this workshop, I show you how to DYOR (Deploy Your Own Rollup) using Arbitrum Orbit or Cartesi in just under 15 minutes. This workshops took place at ETHGlobal Bangkok, a 3-day hackathon held November 15 to 17 2024, that brought 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! ----------------- Follow us: https://x.com/ethglobal Check us out: https://ethglobal.com/ Email us at: hello@ethglobal.com
Transcript
[Music] okay hello everyone um thank you for joining this Workshop um so today we are going to be covering how to deploy your own rollup in under 15 minutes um bold claim we have 30 minutes so let's see if we can uh actually deploy something in under 15 minutes uh essentially I am Robin uh deel from ail Veil is this uh modular Tex stack for roller Builders to overcome challenges such as scalability interoperability and security um what that means is like da is what we have as our main primary layer on top of that we are building something called as Nexus which is going to be this interoperability Hub uh and then we have Fusion which is going to enable multi-asset staking right now as hackers for you the main um the main thing that you want to focus upon is the da layer um which is which is short for data availability right so what we want you to build or what we want to enable you to build is highly performant rollups so we are a rollup infra uh text so what is aail Da right um Avail da is this uh wellity proof based deer for you know building trust minimized applications essentially um what do you mean by da what is da um essentially rollups for them to function uh they need data rollups actually handle execution of user transactions but in order for them to actually be secure and verifiable uh even if it is an optimistic rollup or a ZK rollup you need the transaction data or the block data behind those uh you know behind that execution uh to be available so traditionally RBS did was they posted this data to ethereum um but uh they did it via this method called as call data which was expensive and uh they realized that you know it is too expensive we need either alt da um mechanisms or we need to make the daer like ethereum cheaper that's why they introduced blobs but blobs still can be expensive when once there are people actually using it so that is where a comes in wherein we are enabling trust minimized da um with the help of light clients uh light clients uh do this magical thing called as data availability sampling meaning that they can trustless verify that the data on Avail or whatever data that has been submitted to Avail is actually uh there and it is available via uh via uh yeah via a technique called as data vild sampling right so we use uh things like kg commitments uh and block eraser and cod to enable this but I'm not going to dive deep into all of that right now so you might ask uh all of that is fancy words what can I actually build on a veil um building on a veil is actually pretty easy because we've already got Integrations with all of the top uh you know Stacks out there so it all works under the hood and you don't really have to worry about what da is or what uh you know what aail does you just need to you know deploy a rollup and focus on your application without worrying about the infr side of things because that is already integrated for you so what can you build you can build uh anything from rwa or like real world assets gaming applications anything that is related to ZK D like high frequency def applications and the power like the the the powerful thing here is that we support complex environments we're not like just uh someone who like we we don't just support like evm or svm we support any arbitrary execution environment this can be a move VM a wassom based runtime any VM for that matter right so that's pretty cool um so what can I how can I actually do this right so we've got a couple of stacks and Frameworks that are already allow you to do it such as op stack arbitrum orbit polygon cdk ZK stack Madara stacker roll kit Cosmos Sovereign SDK all sorts of uh Stacks there but we for for our bounties uh at this hackathon I think you'll all know that we have an arbitrum orbit Bounty and we have a bounty with a team called as cartesi um and I'll dive deep into that uh moving forward but essentially um all you have to do is deploy your application using either arbitrum orbit or cessi and you can actually uh win prizes so how can you use a veil in this upcoming aaton one build a rollup building a rollup can be it can be a general purpose chain it can be an application purpose chain it can be a Purp built chain does not matter as long as you're using any of the stacks that I mentioned before you can just deploy a rollup like instantly and it behind the scenes already submits data you don't have to worry about anything there now you don't may you maybe don't want to deploy a rollup so what do you do um you can build any application so it can be any application out there but you want some way to submit data or publish data to some Network to make sure that that data is available in some shape or manner in that sense then you might want to um you know submit some submit that data to Veil so you just want that application to have to publish data and to be able to verifiably retrieve that data you can use a veil and the last way you can probably think about using a veil is if you are building some kind of ZK application where you want to maybe store the proof or maybe the inputs or the data behind that uh computation somewhere to be verifiable so that anyone can pick up that data and you know prove it themselves something like that uh you can again submit that to Avail um so in this flow you can see like you have your you are the user uh they interact with the application the application generates some proof and they submit the proof to aail and then you can retrieve it later on right so um those are some of the ways in which you can build on a veil uh the primary way in which you would build on a veil is by building a rollup or an app chain so why why why why do you want to do that right so couple of reasons are dedicated throughput and block space so if you know like you might be already familiar with this if you are actually deploying your smart contracts on like sepolia or Hol sky or any test net out there the problem is that you are sharing Resources with maybe millions of other users that means there's going to be congestion the block time will be variable at times you don't get uh consistent throughput right by actually deploying your own app chain you are able to get independent uh block space dedicated throughput you able to uh be flexible with your product uh as in you can deploy your own chain with your own product request uh you know features that you want for example you might want native account abstraction but there might be um an OP stack that you want to want to build upon or arbitrum orbit you want to build upon which does not have native uh you know account abstraction so you can deploy your own chain you can configure or you can basically uh modify the arbitrum orbit stack to uh use scri pre- compiles that can help with account abstraction so you can uh do all sorts of stuff such as that uh we have all B support low prot prototyping cost like so low cost of exper experimentation uh which might be also helpful for you and also yeah cool thing if you want want to uh go like live into production mainnet you can also configure your chain to have a custom gas token so you don't have to pay an eth uh you can you know use any your own token for that so that might be also interesting for you I mean uh you can use any rc20 token you for that matter so yeah so if you want to look at how you know your projectors of V Works uh you can reach out to me uh so as far our bounties go we have two main bounties but a couple of others as well the first one is we have a join Bounty with cartesi uh so cessi is also I know right beside us in the booth so you can actually check them out so what cartesi doeses is they allow you to deploy Linux powered rollups meaning that you have chains that run on a Linux environment so no matter what you do so anything that you build uh it can Leverage The already existing Linux uh developer developer tooling environment Etc that means you just have to deploy use just have to code your application in um any language that you know like it can be go python whatever it is and uh you can just deploy um how it kind of works is you have a transaction uh which is being sent to an endpoint and that transaction is being picked up by wheale and uh it is being sent into CES layer and CES processes it uh and all of that good stuff um and then uh we also have some other prizes as well uh such as uh we have a pool price so if you're not building a rollup or if you're not building anything with cessi or arbit room orbit uh if you're using a veil in any other way like submitting data to aail uh and retrieving data or doing something with that uh you can be eligible for some pool prizes uh if you don't want to build or you you couldn't build as much but you want to test out our docks we have developer feedback um and also if you want to uh you know explore the V ecosystem and if you think there is some code infra or tooling that you can actually provide such as developer dashboards or validator uh tooling or something like that um and if you want to kind of you know actually try try and uh enrich the veil ecosystem we have a best core tooling project for a veil price Bounty as well uh yeah and also arbit from orbit as well so we have a total of $15,000 in prizes so you can you know check it out also with cessi is uh the good thing about the cartesi and the harbit bounties is that it's kind of like a joint Bounty so it you build where with ail and cartesi uh we are sponsoring $5,000 cessi is also sponsoring $5,000 so it's like overall $10,000 you are uh buying for and also same for arbitrum orbit they have around 5,000 if I'm not wrong uh as their Bounty prices for arbitrum orbit but if you use Avil Za as your uh you know in your project um basically you can spin it up I'll show it to you now but if you uh do the arbit from orbit and Avail integration uh not only do you get like the $5,000 arbitrum orbit team or or from the arbitrum team you can also uh win prizes from the Avil team which is another $ 5,000 so another $10,000 for you so um yeah you you might want to check that out um so before I actually you know open up for any questions I can show you how to actually do this so um arbitrum orbit I think this is what we have natively in our do in our docs so arbitrum orbit is this evm compatible optim IC roller based stack um you can easily deploy this all you need is Docker you need some Avail tokens to actually do the da submissions um you need to create an application ID and you can actually do that by actually going to uh app .av project.org so if you go to App App .av project.org you see this amazing page where you can actually go to I mean you want to build on test net so make sure you switch that uh connect your wallet um so I have my wallet here cool I'll just yeah so it's connected great now I can actually um create an application ID so what what is an application ID why do I need to care about it so in Avail the blocks the uh basically every block in Avail is categorized or segmented into different app IDs why we do this is because if you are a rollup or if you are building an application you don't want to download the entire block to you know do something with the data you are just submitting data and you want to only retrieve the data that you've submitted so in order to filter through that you can actually use the app ID metric so um anytime you are submitting data submit that data via an app ID so whenever you filter it out you can get it back right you just have to download data particular to that app ID you don't have to download the entire block data because that would be really big like yeah our current block size is around 2 MB so you don't want to be downloading the entire 2 MB block right you can you just have to download uh data specific to you that's what app ID is kind of enable you to do so um how would you do that you can go to create here you can put in any name um for in this case e uh Global Bangkok yeah so so I'm just going to create application key here um so you again so you'll probably need a wallet such as sub wallet or we have a metamask snap support as well so that's uh that's there as well so if you want to do that uh if you want to use the metamask Mas is a metamask snap you can use that as well but uh I'm here using sub wallet so I'm clicking approve on that transaction and yeah and the application ID has been created my application ID is 191 so I'll have to keep that safe if I ever want to maybe query if I forget my application ID but I know what my app key is I just have to you know search for it with e Global Bangkok and I'll you know get it later on so if I search for E Global Bankok it should work if the internet works um but anyway uh how do I deploy an arbitrum orbit chain that's the main thing so I have a Docker with me I have my app ID I have some Avail tokens um and I also need uh some arbitrum seoa tokens because we'll be deploying a rollup on arbitrum sapoia where arbitrum sapoia is going to be the kind of like the settlement layer and we're going to deploy an L3 instead of an L2 uh so if you're building an L2 you just need the suppo tokens in this case we're doing L3 for actually quicker finality um but yeah essentially what you have to do here is now you just have to pull our a whale Nitro node image and once you do that you also need to get clone the Avil Nitro contracts so this means uh we are we already have our own modified versions of the Nitro contracts and the arbitrum Nitro node we just pull pull all of those items we just change the environment variables um so if you actually go here I can go to my code here so yeah wait SEC all right so yeah so when you actually um yeah okay so when you're actually get cloning your Avail Nitro node uh Nitro contracts um what you are going to do is you're going to check out at a particular Branch uh in this case it's v2.
10 Upstream V 2.10 uh you will see a sample environment. EnV file here uh you basically have to fill these three things what is a roller Creator address it's a it's a default Factory contract address that kind that will deploy all of the relevant smart contracts for you that will deploy the rollup right so that's the first important thing what is your rollup cre address if you're going to be using arbitrum seoa uh you'll just copy this one in case uh you want to probably use base aoia so we have support for arbitrum seoa and Bas apoia to deploy your rollups onto so for base apoia uh if you want to like try using Bas aola as your uh settlement layer uh you can actually find the contracts down here in smart contact reference so the rup Creator address for basoa is also mentioned here so you just have to replace with that and once that is done you have to put in an OB scan API key you can get that from OB scan directly and a demate private key this is your evm compatible wallet so your metamask address or you can use Foundry or something anything else to actually create a wallet right um and then put the private key into that right so that's there uh finally everything else is optional here if you want to do anything else with it now again if you want to have a custom gas token you can put in the address of that token and by default you can now configure it you configure your rollup to have that token or that erc20 token to be your native gas token so you have um configured some of the stuff that you need to actually deploy your smart contracts now what you're going to do is you need to go to UHS script /c [Music] config.js text um what essentially it means is that if we can actually go here so yeah so in my config.sys what I'm doing here is I'm trying to uh essentially Define what my uh you know confirming period is going to be what what will be the challenge period be um also my chain ID right so this is where you define what your chain ID is going to be um you can obviously uh you know mess around with any of these parameters for the hackathon I suggest just keeping it as default and if you want just change the chain ID because that's the simplest thing just keep it as default and just deploy your contracts you can deploy your uh contracts by just uh running Yar build for jeel yeah sorry sorry you have to Yar build for jeel to compile the contracts and then uh run deploy e rollup uh and depending on whichever um settlement layer using so in this case in the docs we're using arbit apoia you can use Bas apoia as well like I said uh and then just deploy your contracts you'll see an output like this which has a lot of the you know the all of the important contracts that have been created that will actually function as your rollup so rollups essentially are smart contracts um and you'll get all of those contracts deployed for you uh we already have a script setup for that so that's great so okay you've actually deployed your rollup now do you have to actually run your rollup now to do that you need to have a node and for that we use something called as orbit setup script just clone it um and create a node config.
js file uh meaning that if you go here just create a no config.js file within the orbit setup script um copy paste whatever is in here uh you'll see that you'll need to kind of uh Define some parameters right so essentially if I can actually wrap my view here oh yeah so you'll see that I need to Define my chain ID uh everything else here is probably already there I'll need to Define uh my chain ID here as well uh my bridge contract address my inbox contract address my sequencer inbox um the validator utils so all of this D all of this address what am I talking about when you actually did uh you know deploy e rollup using whatever Network that you did you got an output that is going to look similar to this so you'll have all of the in all of the addresses that you need you just need to input it into the node config Json file and and also you will need to Define uh the batch poster so this is going to be an evm wallet address even the Staker it's going to be evm wallet address um these two should be separate uh just change those as well and just have an ARB sepolia RPC just get the one from Alchemy or any node provider out there uh get an ARB spolia RPC or if you're using base use base the RPC um enter your Avail wallet seat phrase and the app ID that you actually generated before and once that's done uh you should be really close to deploying uh like actually running your node um again now after you've done the node config file um you should also set up an orbit setup script config Json in the same folder again you just have to do this I know it's a bit tedious but you just have to do it it's just just a bunch of copy pasting here and there because you already have all of that information again you have to define the parent chain ID the name of the chain uh all of the addresses of your uh you know rollup and once that's done you change the Nitro image uh on Docker compose so on your Docker compose file you scroll down um yeah over here in the Nitro initially it would be something from off train Labs you just have to replace it with uh the Avail Nitro node and once you do that you can just run Docker compose up and your chain will start running um so yeah I mean once you start running your chain you'll have uh an RPC at Port 8449 and if you just go directly to Local Host you'll have a block Scout Exploder running as well so actually if I try and do oh sorry wait one second yeah I think my chain is already running so let me try and go to Local Host and see if it works hopefully that works yeah so if you go to local house you see a local arbitrum Explorer running so this is uh the Explorer of your rollup that you just deployed um yeah I mean so any transaction that you do you can see it happening over here at the 8449 Port uh I mean you can actually import it into metamask and maybe go to remix and deploy a smart contract and test it out for yourself what you'll see is that you know the transactions happen really quickly uh you'll see the transactions you know happening in real time on the Explorer as well so I mean that's that's pretty much it right so your RPC endpoint is going to be the 8449 port that you uh will be exposing from actually deploying your rollup or running the Nord essentially so yeah that's pretty much it actually and then if you want to actually use your chain you'll need to bridge some eth from arolia or basoa to your rollup um for that we have already have a script you can just copy and paste this or else you can directly go to the arbiton bridge and they have an option to add a custom chain and you can Bridge it via the UI as well but I just suggest by just using the script here um which will just do it for you you just have to Define your private key the amount uh and that's it um yeah and once you're done testing and you want to get your arolia e or baso e back you just have to run this command and uh yeah you'll get it back so yeah I mean that's pretty much it it's it's actually pretty easy there's nothing much to do there's no development effort you have to do it's just a bunch of setup that you have to do like you have to deploy the contracts uh the rollup contracts and you have to just make sure that you put the you configure the node to have those contracts set up and that's pretty much it and you can run your you know um roll up pretty easily pretty quickly um same thing with uh cartesi I can show you really quickly yeah so um for cesi also it is pretty easy in this case you don't have to do a lot of the setup um what you have to do is you just have to install something called as brunoo which is a node from the Cy team and um yeah so based on your um operating system you can install the cessy machine install it unzip it um and just make sure you add it to the path of your machine and once you're done with that um yeah you can just run Cy machine and it will work uh now how do you deploy it with aail is uh you have to first install the C CLI and you can first test all of this locally but if you want to use the Avil uh Network which is going to be more important for you in the hackathon is that uh you can just run uh this command which will uh do it all for you so it will deploy your node or it'll start running your node it is all integrated you don't have to worry about anything here you just have to install brunoo you have to install cut testing machine and once you do that you can just run brunoo with avail enabled uh and all of this information but before you do that you need to probably uh register your address so you go to it's already there in the repo uh and if you want to find that repo it is already in the price pool references section so you just go here and you register your wallet wallet because uh you'll need that and you'll get your application address you'll have to input that input that into oh oh yeah okay cool yeah so you see a Dap address here you just have to input uh whatever address you got from that once you register your address you'll get a Dap address in return and you just have to input that here once you do you can uh use cessi create my dap and whatever template you want it supports python rust goang JavaScript so and in this case if you do that you don't have to worry about actually running the rollup like your you are running the rollup uh it's just that you have to now you just have to focus on actually building your application in any of these languages like python R goang JavaScript and uh yeah it works and anything on how to interact with your D app is you know already mentioned here I know we might be a bit short on time so I'm not going to dive into all of it but yeah if you have any questions uh please do ask yep um I mean whatever data you're posting to a will be public so before posting you'll have to encrypt it so yeah it's a public blockchain so anyone who runs a node can actually see the data behind it uh anyone can actually look at that data so if you want to keep your data private you'll have to encrypt it before submitting of [Music]
Automatic transcript — names and jargon may be misspelled.