Money is valuable because you trust that it works. You trust that you can redeem it for a good or service for the face value of what you're providing. And when you don't have that level of trust, you've not built a monetary system; You're really just building a casino.
“Money is valuable because you trust that it works.”
You might be wondering why I'm starting a talk about DevEx with this statement.
Let me tell you a story from my time at Facebook, working on the Libra project. It'll help you understand what I mean.
So, Libra was this ambitious project we were working on at Facebook. The idea was to create a global digital currency that could be used by anyone, anywhere. We're talking about a system that could potentially handle transactions for billions of people around the world.
Now, when you're dealing with something at that scale, when you're talking about handling the world's money, you can't mess around. You're not just building for crypto enthusiasts or tech-savvy early adopters.
You're building for everyone.
We quickly realized that the existing Web3 platforms just weren't up to the task.
Take Ethereum, for example. We couldn't even consider using it because of the risks involved. You can't launch a platform that handles the world's money if subtle bugs that lead to high-value hacks are a weekly occurrence.
Imagine trying to explain to someone at a major bank, "Sorry, we tried to send you $50, but because of a bug in the smart contract, you not only lost money, but you probably owe money now."
That just doesn't fly. It doesn't make any sense in the real world of finance.
That's when it really hit home for us: Money is valuable because you trust that it works. You trust that you can redeem it for goods or services at face value. When you don't have that level of trust, you haven't built a monetary system, you've built a casino where outcomes are unpredictable.
Think about it: Would you trust your savings or pension funds with a system that's subject to hacks and bugs?
Of course not.
So we knew we needed to build something new, something robust, something that could handle the scale and security demands of a global financial system. We needed a system where you could trust the code it runs on.
The reason why I told you this story is to tell you how our experience at Libra really shaped our thinking about what's needed in the blockchain space.
It's about building systems that people can trust, systems that can handle real-world demands. A platform that puts developers first, giving them the tools and the confidence they need to build products that can change the world.
And it all starts with enabling developers to write secure code.
Every System Is Based on Trust, Even the Trustless Ones
In the blockchain space, we’re building trustless systems because you don't want to trust people. But, you do have to trust the code it runs on.
If you can't trust the code, it's not a platform you can build on.
When we started building Sui, we carried that lesson with us. We knew that if we wanted to create a platform that could truly become the global coordination layer for digital assets, we needed to start with a foundation that developers could trust. That's why we focused so heavily on DevEx from day one.
And that's also the core philosophy behind the creation of ‘Move’.
Move is a safe and reliable programming language for financial applications. I argue that it's the only platform where you can build safe code at scale in a decentralized world.
Move is tailor-made to manage money. The Move virtual machine provides safety properties that aren't available in the EVM, SVM, or other existing models.
It's focused on helping developers to program around assets. With that focus, we're able to solve a lot of fundamental problems that developers have to battle with on Ethereum, Solana, and other platforms.
How did we achieve that? Well, we made it object-centric.
Object-Centric Programming Model: This Is How We Bring Web3 to Web2 Developers
The object-centric programming model allows developers to be way more expressive with a lot of additional safety guarantees.
If you are a Web2 developer, it allows you to write programs the way you're already used to writing applications. It's not trying to teach you a brand-new paradigm.
This ties back to our core principle at Sui: We're building a product for developers, and we're trying to reach people where they're at. We want to give them tools that feel familiar and intuitive.
In contrast, trying to introduce developers to a new paradigm, like the account-based model in Ethereum, is a failure.
You're reducing everything to an account. This isn't how developers are used to thinking.
Sure, you can build an account model from an object model, but going the other way around is like trying to fit a square peg in a round hole.
Take reentrancy, for example:
It's not an issue developers have to worry about in Move because we do not support dynamic dispatch. No need for developers to write boiler code to enforce transfer checks, this is where a lot of errors happen. The Move VM takes care of all this. This results in less verbose and more readable code. Developers construct assets as objects, something they're very used to when building applications in Web2. If you're writing in Java or C++, the object-oriented model is familiar territory.
But the proof is in the pudding, as they say.
We're seeing developers learn Move on Sui very, very quickly.
I'm talking four days, and they've got a handle on it. If you already know Move or Rust, you can pick it up in days or even hours. Coming from the EVM world, it might take an extra day or so because you're trying to declutter your mind from the nonsense you've learned over the years.
But if you're adept at object-centric programming, Move will feel like a breath of fresh air.
In fact, as one experienced web3 developer, @kklas_ puts it:
Because this programming model liberates developers from multiple layers of abstraction that cause a whole heap of problems.
In Sui, your data model maps identically to the frontend representation. How you rationalize about the front end and how you rationalize about the back end is seamless.
As @b1ackd0g always says: "Objects are common vocabulary used throughout the Sui stack. Programmers create objects, wallets show objects, APIs accept/return objects, the Sui runtime understands objects and leverages this for parallel execution, the fast path, and local fee markets."
It's a coherent model that lets developers focus on what they do best: building amazing applications.
But our effort to provide the best DevEx in this industry doesn't end with giving developers a nice, safe, and expressive programming language.
That's great, but it's useless if devs can't build applications that scale.
Developers Can Now Create Web2-Like Scalable Web3 Apps with Sui
Building a platform with the best DevEx is about providing the whole package, and a big part of that is scalability.
Think about when you build on Google or Amazon. The concept of scale is handled by the underlying infrastructure.
That's how you onboard people, by reducing the amount of friction they have to deal with. And that's exactly what we're doing with Sui: We're liberating developers from the headaches of scale.
In Sui, if you need more scale, the infrastructure is designed so that the validators of the system can add more capacity as the demand increases.
How can we do this?
It's all thanks to Sui’s object model.
In this model, the smallest unit of computation is an object, and every object has its own ID. This means the system knows exactly what you're interacting with and whether it touches the same state or not.
Other systems like EVM don't have this capability. It has to lock the entire global state for every state update.
Imagine you're buying an NFT, or a concert ticket, or swapping some tokens on Uniswap. EVM treats it all as the same transaction because it doesn't know what's going to be touched. it needs to lock the entire global state.
In Sui, every object is its own asset and its own individual record in the database.
This means we can process them in parallel. The validator nodes can add ExecutionWorkers to manage a shard or part of the entire global state, containing specific objects, allowing for a clear specification of which objects a transaction will touch.
Think about it this way: Each object is essentially its own shard.
This makes it easier to determine which ExecutionWorkers need to be involved in processing a transaction and to add more ExecutionWorkers as the network load increases, a.k.a. horizontal scalability.
Now, I want to be clear: This is all part of our Pilotfish prototype. It's not in production yet, but it's showing a lot of promise for achieving horizontal scalability.
I could go on and on about the technical details, but I don't want to put you to sleep. If you're really curious about how it all works under the hood, you should check out our paper: Pilotfish: Distributed Transaction Execution for Lazy Blockchains.
The beauty of this system is that developers don't have to worry about sharding or complex scaling issues.
In contrast, other systems like to get developers to think differently about scaling further up the stack.
They make you define where you're storing your data, and when you want to call a contract in a different domain (shards, subnets, etc.), you have to build complex infrastructure to merge the two.
We haven't seen anyone do this in a way that actually works. It breaks composability and creates all sorts of new problems.
Whereas in Sui, that's not an issue.
The Value of Atomic Composability
When it comes to building a smart contract platform, composability matters.
If you're sharding state over and over again with rollups and AppChains or whatever, and I can't actually use it, they really deprecate the value of the ecosystem.
And that was a non-starter for us.
In Sui, any contract can call any other contract. It's not an accident that Sui is built that way. I think Sam articulated the reason for that design choice better than anyone.
Sui enables true atomic and permissionless composability.
This means developers can combine different assets and actions in a single transaction.
Sui's programmable transaction blocks (PTBs) empower developers to accommodate up to 1,024 heterogeneous operations within a single transaction. If one of those steps fails, the whole thing fails. It's all or none.
And the best part?
Developers can achieve this without having to write a single smart contract.
You can also string together any contracts built over time. You don't have to worry about domain sharding. You don't have to worry about how the online infrastructure works. You just focus on building great, amazing products.
And that's our thesis.
If you can enable the atomic composition of user intent across the internet, it's super valuable.
That's what Sui allows you to do.
Because all user intent can be represented as smart contracts across a global single state machine, you can conjoin them together in pieces to form user intent in a very interesting way.
That's where we think the value ultimately is.
Now you have combined all this to enable devs to build secure and scalable applications, but developers ultimately have customers, and those customers are consumers. You cannot achieve the best DevEx without a tech stack that is optimized to provide a frictionless onboarding experience for consumers.
That’s why we see DevEx as something that covers much more than just security, scalability, and composability.
There’s more to it.
DevEx Is More Than Safe and Scalable Apps: It's Also About Simplifying User Onboarding for Devs
When we built Sui, we didn't just think about making a better dev platform.
We thought about the consumers:
See, developers ultimately have customers, and those are consumers. So we took the angle of sitting in the shoes of the consumer.
What do consumers need to do, and how do we make this as frictionless for them as possible?
We know consumer behavior is hard to change. Companies spend billions trying to figure that out. So we thought, let's keep consumers where they are but give them the power they need without the friction of downloading wallets, managing private keys, and doing multiple approvals for transactions.
That's where our tech stack comes in. We've built a whole suite of technologies to help devs reach their customers where they are, not the other way around.
Let's Start with zkLogin.
We invented this to solve the challenge of user onboarding in Web3.
It allows anyone to use their existing OpenID Connect account, like Google or Facebook, to interact with Web3 apps. We take your session cookie, generate a zero-knowledge proof of it, and boom, you can interact with an address on-chain in a fully private, permissionless way.
Now Let’s Look at Speed
It's great to have all this amazing developer experience, but if a transaction takes multiple seconds to complete, or minutes, or I don't give you guarantees that it's final, then you as a developer need to build a lot more infrastructure on your end to get those guarantees. So you're pushing the burden on developers to get the end-to-end experience that they want.
Users also expect things to happen instantly. If it takes more than half a second, they notice. And if it takes more than a second? Forget about it. You've lost them.
That's why we developed the Mysticeti consensus protocol and it's already running on the Sui mainnet. It's our solution to remove that burden from developers.
We're seeing p95 latencies of under a second.
It means 95% of all transactions are final in under a second.
That is from the lowest complexity transaction all the way to the most complex swaps that you can do in under a second, even when you're doing thousands of transactions per second, up to 100K transactions per second.
That is unheard of on any blockchain in the world.
It's orders of magnitude better than every other blockchain that exists today.
So with that, we made sure devs can rest assured that scalability will always be available, and the network can increase capacity as needed without affecting latency.
But What About Gas Fees?
That's where sponsored transactions come in. We've separated who pays the fees from who sends the transaction.
The app developer or someone else can pay the fees on behalf of the user. This opens up the opportunity to implement tried-and-tested web2 business models in web3. An app could pay for your transactions if you watch ads, for example.
Then There's SuiNS, Sui’s Naming Service
It solves the problem of those long, confusing blockchain addresses. With SuiNS, users can get a username like "adeniyi@stashed". Now, sending assets is as easy as sending an email.
We're also working on a similar system for smart contracts. Soon, developers will be able to call contracts using simple, readable names instead of long address strings. This makes upgrading and maintaining contracts much easier.
Finally, it's all about delivering a whole end-to-end decentralized experience for users.
Because when you're building decentralized applications, you can't afford to have centralized dependencies. If your application relies on a centralized storage layer, then you're not really decentralized, are you?
You're just shifting trust from one centralized entity to another.
With Walrus, That Risk Gets Eliminated
Walrus provides a decentralized storage layer that's just as powerful and scalable as the centralized alternatives (AWS and Google) but without centralization.
You can run websites on it, you can run data availability layers on it, and you can store and retrieve data on a massive scale.
It's a fundamental piece of the puzzle for building truly decentralized applications.
All these features, from zkLogin to Mysticeti to sponsored transactions to SuiNS to Walrus, are all about making it easier for developers to onboard users and build great experiences. With that, we're taking away the friction, the complexity, the things that make Web3 feel alien to most people.
The Ripple Effect: Better DevEx → Better Apps → Better User Experiences → Mainstream Adoption
When it comes to DevEx our goal is simple:
We want to make development on Sui as simple, intuitive, and frictionless as developing any Web2 app.
Every part of Sui’s tech stack is designed to do exactly that. This approach comes from our experience building for billions of users in Web2.
We understand that to create a truly global platform, you need to start with the needs of consumers and work backward to design a developer experience that enables the creation of compelling, trustworthy applications.
That's what DevEx means to us.
It's not just about giving developers cool tools. It's about empowering them to build applications that people actually want to use, that feel familiar and easy.
Because at the end of the day, if users can't or won't use your app, what's the point?
So yeah, that's our philosophy. We're building Sui to be the most accessible blockchain in the world. Anyone can now receive and send assets on Sui without ever knowing Sui even exists.
And that's the kind of DevEx we think will truly push Web3 forward.
I’ve already touched upon my time at Facebook at the start of this article, but in the next one, I'll
tell you the whole story:
- how it all started, founding Mysten Labs with my 5 amazing co-founders, and building Sui.
It’s been an incredible adventure, and I’m having the time of my life.
Don’t miss out on the full story - subscribe to my Substack and stay tuned!