Justice for All! Diving into Jstz, a Native JavaScript Environment for Web3 Development
EthCC[8] · 30 Jun 2025 · 20:16
Jstz is presented as a Tezos L2 that runs JavaScript natively, without compilation or another language, while retaining standard tools, APIs and libraries. Its web-like contract model uses HTTP request-response patterns and asynchronous calls. The wider proposal bundles oracles, protocol-level account abstraction, gasless operations and cross-chain bridging, while sharing a rollup with an EVM environment for instant composability. At the talk, only a private testnet was available; public-testnet and mainnet timing remained tentative, with a gradual, feedback-led path to decentralization.
Speakers
Topics
From EthCC[8], hosted by Ethereum France.
Transcript
We are starting. [Music] All right. Welcome to ETC everyone. Uh this is a presentation on uh uh justice. So it's written JSTZ pronounced justice and it's called justice for all because we are all going to dive into justice which is a native JavaScript uh environment for web three development.
So uh who am I? Uh my name is Arthur Bridgeman. I'm the co-ounder of Tzos and as you'll see uh justice is a part of Tzos. So what is it exactly? So we have Tasos blockchain that launched in 2018 also known as the Tzos layer 1 and on top of Tzos uh a few applications have uh have been built in the form of rollups or smart roll-ups as we like to call them. Um the first one being link. So link is uh live now. It's available. It's essentially a fully VM compatible uh layer 2 built on top of Tzos and we have quite a few EVM dabs launched on it. And much like healing justice is a smart rollup. Uh it's an L2. So it's built on top of Tzos L1. And what's special about
it is that it can run JavaScript natively. And you know that might sound familiar, but we're going to go into what that means specifically. That means in particular no compilation, no extra language needed to interact or deploy with applications. You're doing all in uh JavaScript. Uh you can use all standard tools, all standard APIs, all standard libraries. So first why JavaScript? Uh you know if you look at the origin of of Tesos L1 and the languages on Tzos L1, uh it's a very different approach. Um, initially Tesos focuses on a very very uh domainspecific virtual uh machine called uh Miklson which is great for making for more proofs about your program being
very careful uh and you know checking your types. I think it's great for a very high value financial application but we see a lot more things uh today in in the world of of uh of of crypto and web 3. We are seeing games. We're seeing a lot of experimentation. Um, and there's a whole universe of JavaScript developers out there who haven't yet wet their feet into the technology. So, we would like to give them a very familiar environment. So, yes, it's the most popular programming language by usage. There are millions of developers around the world. Uh, there are advanced idees, debugging capabilities, testing framework, deployment pipelines. So whatever you think of JavaScript as a language, whatever flaws it might have, you have to weigh this against the
massive amount of infrastructure that exists around this very rich library ecosystem. And um the thing that really started me um getting a lot of interest in supporting JavaScript natively back in uh 2021 was looking at uh how large language models were becoming better and better coders. U you know in 20 in 2021 you had just github copilot. Now, of course, um it's much more common for people to be using large language models for code development. And the thing is, well, there isn't, but they're also very much trained on data from the internet.
And most of that data is going to be in JavaScript and Python. Now, they're smart. You know, they they they can do uh they're very good at translation. So, what they learn in one language, they can learn it in into another language. Uh but you still have some degradation. And so if you test the performance it code writing um you will find that the more uh samples you know you have of a uh of a programming language in your training data sets the better your performance and so you should expect the performance in JavaScript and Python where there are huge corpuses uh to at least for a while exceed the performance in other languages. So I I find this um uh AI connection to be quite um interesting in strategically choosing languages.
Okay. But hasn't JavaScript been done before? So many people have told talked about JavaScript. Uh I think one of the first one pitching this was uh I think it was a blushing lisk and then you realized that they basically had a governance procedure for every single smart contract. You had to basically get it approved by voting. They didn't actually support it. Uh so I I I named a few here. of course justice uh which I'm talking about today uh JS Lego which is a programming language available for tzel1 goric which is a great project um using ideas from object capabilities uh in javascript and also near has had a uh experiments with javascript and there's different approaches but I think what's distinguished just is that it really is javascript right it's the offtheshelf
native gs runtime you can run v8 essentially uh jsigo it was a transpolation so we would use a syntax of JavaScript to run this on uh on L1. You still have to understand the VM. You still have to understand really the underlying uh Mickelson. So you could use similar syntax, not the tooling. Um Agoric fantastic product, super interesting ideas, but again this is not exactly vanilla uh uh JavaScript that you are um that you are using. You have to kind of like buy into the whole uh framework. Uh Ne also uh had an approach with compilation to assembly script uh and I think using uh quickgs. So it's a subset right you don't doesn't support everything um it is kind of like JavaScript but if you're a traditional
JavaScript developer and you try it you will find the edges very quickly. So in contrast uh with justice what we're doing is we are using offtheshelf native JS runtime uh we follow the uh latest ECMAScript uh specifications uh and the w uh windowc compliance API uh and it's integrated directly in tzel one with EVM compatibility. I will also touch on that. Uh in terms of developer experience, I would say one of the defining um characteristic of working on justice as a product was trying to make the development as much as possible like web development. And that means for example that when contracts call each other, they follow an HTTP syntax. So why? Because well, it's familiar, but
also u it lets you leverage a lot of libraries which are out there in the JavaScript u ecosystem. So if you had to put a time uh you know a tagline on the DevX aspect of justice, it's think like a web developer. How would you build a DAB? How would you build a smart contract? If you were thinking like a web developer, so we're trying to replicate this web development experience from the ground up. A standard HTTP request response pattern as I've mentioned. So that's how contracts talk to each other. Uh we also have traditional like serverless JavaScript pattern for writing smart contracts. And interestingly and that you know that that goes beyond ax support for asynchronous calls. That's not something you see in uh uh in blockchains typically. So typically what you will see is contract calls another
contract calls another contract calls another contract. You have a whole atomic operation. You can't really wait. You can't say oh I'm going to do an operation. I'm going to wait for some results. Maybe the result is coming from an oracle. Maybe there's some slower process and I don't need my answer right away. You can do it but it's clunky. It's not written typically in in a native um language where you have to do is you'll have to say well I'll explicitly create a callback entry point and I'll have some other contract call me here your contracts can have a lifespan across a transaction that is going to go I don't want to say across multiple blocks because there's actually no blocks in justice per se just transactions but you can have a long lifespan to a transaction
so what do we include so first of All it's available via npm. So you can install it like you would install any normal dev tool. Uh you can use your favorite uh npm libraries uh including but not limited to validating payload, making HTTP requests, generating ideas. You can bundle your dependency directly into the deploy app. U you could deploy just like you would with Node.js through um a CLI that uh that that we've built. Uh all the popular testing framework are work outside of the box and you can integrate with standard dev tools. uh any dev tool that implements the V8 inspector protocol like the Chrome console for example. So really it's not just like oh look here's a proof of concept you can do JavaScript. No, we went all out and said it has to be
exactly the same as developing a normal JavaScript project. And that is what's uh being achieved with justice. Uh I also think of justice not just as the rollup itself but as something a little bigger. Uh and I like to say it comes with batteries included. Batteries included means yes you have the chain, you have the kernel, you have all this logic, but really when you're building in an environment as a developer, you don't really care about what is part of the kernel, what is another service oper offered by some other party. You you want a simple bundled experience where you have all the tools that you need, everything that you could want and that is what I call the batteries included aspect. So one of it is Oracle services.
Um there's many you know services that offer oracles today. Um you could be using Chedling great store all of those and you still need an integration and you know to be honest if you are on the side of uh foundations uh these days or any other project you know that a lot of the business model of these services is essentially a payment like very large payments for integration it is quite uh expensive that's their business model uh no shade but it gets really expensive so what you want instead is you want this builtin I'm the developer I want a good Oracle service I want it to work and so enshrining it into the protocol getting a protocol which by default is going to give you the service. Is it part of the kernel? Does it run with a TE as a developer? You might care about you know
the security uh uh aspect of it like can I actually trust it? But beyond that you just want it to be available. You want it to be part of the standard library. You want it to be part of your standard experience. Uh and that is what we uh we offer. So it's easy to use it uh based on a uh based on a TE. So it can give you uh it can follow the approach for example of the of the town cryer to give you like offshion APIs. So any HTTPI uh uh exchange uh exchange prices all of that good stuff included native to the chain. What else do we have? Native account abstraction uh it's a big topic.
Lack of standardization lack of support in the protocol are limiting a lot what people can do with uh uh account abstraction. So it's supported at a protocol level giving things like social login uh biometric login again you do this with um trusted execution environments recovery without seat phrase progressive security. Now again, none of this is unique. You'll have, you know, yeah, there are services, there are vendors, there are wallets that offer all this stuff, but as a developer, that's a very fragmented experience. You have to kind of like go and get your pieces there. I think there's a standard business idea that, you know, everything is a bundling or unbundling. Uh, and this this is very much about bundling. Let's bundle the best of what uh is available today for
developers. Let's take the best part of it, a selected part of it and give it one experience on justice. So it goes way beyond JavaScript. It's really about replicating not just the language but the experience of building in an environment where just have everything at your fingertips. Sponsored operation of course gasless operation that's a big deal. You know if you are thinking like a web developer you don't want to think about your wallet your users having to create a wallet your user having to have a passphrase your user having to pay gas. You want to be able to deploy something on a web very easily and you know that is part of that part of that experience has to be u that UX cross bridging again you want that to come natively uh there's applications uh across many
chains more importantly there's liquidity across many chains they are exchange integration around many chains so uh by default um you can enable uh crosschain operations without having to select a bridge without having to have all these other uh infrastructure again probability uh and uh you can bridge with minimal trust assumption you can support asset transfer across all major blockchain network and you can unify liquidity again I'm sorry if I keep repeating myself but they say that education is just repeating yourself a lot so I'll repeat it one more time these are all functionality which are available that they're available across different websites different services they're not bundled we want to bundle it
we want to make it the environment that you have default it just comes with it. Uh you don't have to go and get it EVM aware. Um so I've mentioned before that we have created Etherlink. So Etherink is a u EVM uh compatible uh rollup built on top of Tzos. So if you can run your app on Ethereum by and large you can run it on Ethlink. Uh check it out. There's a bunch of applications. There's uh emerging uh DeFi ecosystem uh over there and gaming ecosystem. So uh the nice thing about it is that these are not two rollups. Uh let me get a bit into the specifics. So usually rollups you think of that they would communicate via a layer one and that's how you scale with rollups.
You're on you you launch many roll-ups in parallel and then they can make calls to each other via layer one. That's great but unfortunately for optimistic rollups that incurs a very high latency of communication inter rollups. You can do validity rollup which you have much lower latency but then you lose a lot of throughput. So instead um this runs in the same rollup as ZDM. So you can think as the as the so you can think of and justice as basically running with the same node. You know one the same node will process all transactions. What that gives you is instant composibility between the two chains. So instant asset transfers at uh at a minimum. Why does that matter? Uh it matters for boring business reasons. Uh again if you're talking to if you ever talk to an
exchange and you have a custom infrastructure and you say I have built this great chain it's out of JavaScript you will not believe it the DEX is uh is really impressive and they will say that sounds great pay us a million dollar for the technical integration in our exchange and you're like what that doesn't cost a million dollar and it says well you know that's our pricing. So uh if you are EVM compatible however you know they will uh make it a lot less because they do realize that it's hard to ask uh with a straight face to charge for changing a config file into a a line in in a config file. So if you want uh connectivity with exchanges, having an EVM bridge in some sense or having a projection of your APIs into the EVM world is highly highly desirable and both environments uh benefit from Tesos
L1 security and decentralization. Uh it's all uh ultimately powered by the Tesos network. So when when justice well currently what's available now is a private test net. uh it has an instrument oracle doesn't run in a T but again this is just a for testing uh that lets you make HTTP calls and receives the HTTP calls in your contract to give you some sense you know calling another contract or calling a website is basically almost the same thing uh from the perspective of a smart contract I like to joke you know oftentimes you have developers come in into this ecosystem and they say like oh can I just like how do I make a web request from your from my uh contract and you have to explain to them like oh
that's not possible how would that make sense you It has to be replicated. It has to be verified. Does it make sense? And and here we kind of flipped this on the other side and said like, well, how do we make it make sense, right? Because if they want this, like how do we make it that it makes sense? And you know, that's that's one way to do it. You can use existing ecosystem libraries from npm and gsr. Um, and then we have runtime API support uh through V8 and uh Dino. So Dino is an implementation of uh node which covers most of uh most of what you would want in uh uh in node. And again compatibility with the latest uh ecomascript specification and wintert all of that um I will give you a link at the end so you can go and try the
private test net for justice public test net is coming uh probably around mid Q3 so maybe like months and a half two months maybe three months if we're being optimistic uh but it's coming and uh it will set the experience for the justice mandate so the medium state uh is going to uh you know the state will reset but we're going going to try to make it as frequently as possible. So don't put anything with real money on it, but at the same time it's not going to reset every night. So you can actually have a bit of an experience. Maybe if you're doing a game, this type of things uh it can make uh it can even make sense to uh as a product and it's going to be really about getting as much developer feedback and so that comes with developer support and then uh in exchange for this
developer support you're a developer come here we'll support you in exchange please tell us uh what you want to see in justice how you want to see justice evolve what features would be great for you how do we make the best devx possible uh in the entire uh industry and then uh mainet probably early next here. Uh so we'll try to have a web to like user experience by uh account abstraction and all the good stuff that I've been talking about uh popular testing framework etc. Uh so that's coming and it's a very different approach and a very different rollout from uh what happened with Ethlink. You know what happened with Ethalink?
Ethalink is maybe the only non-custodial L2 and I call it an L2 custodial if there's a group of people with a signature that can control your assets and then if you talk in Ethereum and say oh wait but that's a level 23 rollup it's different yes they have the signature but they can only do it if it's a bug and like who determined that it's a bug well they do okay so you have a bunch of people with signature who can take your assets period you know like you can offiscate it as much as you want etherink launched as a non-custodial rollup uh it made no compromises at all on decentralization very very strong proposal very much in the spirit of Tesos we're experimenting with something a bit different with justice is really starting from developer uh developer first and so I think um it will be a
more gradual rollout with a lot more uh interaction and user feedback uh before going to a fully decentralized product like uh like Ethlink or like uh like Teslas how do you get involved uh experiment explore uh build so you can check out the link to uh Justice on t.com. There's a uh QR code, but it's easy. It's just t.comjustice. You can join us on Discord. There's a community uh who's starting to play with Justice. Again, here's a link to uh uh to the Discord. All right, that's my presentation. We have maybe two minutes for very very quick questions if anyone uh wants to raise Yes, right here.
What are the main challenges that Tzos have today? I think the the challenge today for Tos ecosystem is a challenge that most blockchains face or even the entire industry face is uh lack of lack of like lack of demand, lack of usage. like we have some applications we have a fantastic thriving art community there's some great projects on Tesos you can buy tokenized uranium there's some cooly application we have on is for example an order book decks so there you know there are some things and like you know I would say by by the standard of other blockchains actually quite a bit going on on uh on on on tzos but you know even when you look at some of the most used blockchains today the the ratio between the amount of investment and technology that's going on in the space compared to activity uh still lives to be desired
and I think part of it has been a regulation issue. So for a long time regulation has made it very difficult uh to do anything that was meaningful. So you've seen a lot of people like just jump into uh whatever was uh you know if you basically had no impact on the world as much as possible you were more on the safe side. So if we've seen the rise of memecoins but now um with evolving regulatory framework we're seeing actually uh more things happening in stable coins. We're seeing things happening in prediction markets. So, it's easing up a bit and I think we're going to see more exciting application as regulatory framework finally uh stop waging a war on the industry.
All right, that's all the time I have. Thank you so much for coming. Check out justesters.com/jstz. [Music]