What’s World?

World is the “framework” part of MUD. It is a specific pattern for writing on-chain applications that bundle together:

  1. Store, MUD’s on-chain database
  2. Systems, stateless logic contracts that read and write to Store tables.
  3. Permissionless creation of tables and systems from anyone on-chain.
  4. Access-control for tables and systems based on namespaces.
  5. Modules: on-chain scripts installing tables, systems, and hooks on the World. They pave the way for the first EVM package manager, and let developers re-use common patterns like ERC-20 tokens without having to deploy code on-chain.

When using the World framework, all the state and logic of the application is centralized in a single contract — the World contract. The World takes care of mediating writes to the Store depending on who requests them, and routes function-calls to their respective systems which then read and write to the Store on the World.

In its role as a router and as a centralized storage for state, the World is similar to a Diamond or a Proxy. The main difference between these patterns and the World framework is that the World allows for permissionlessly registering new logic and tables (=state) on the World. This is in contrast with Diamond and Proxy that require an admin in order to permission adding and upgrading logic.

Given Worlds have storage access management for Store, they can relax that requirement and let anyone add new logic and new tables to the application without introducing security risks.

This makes it possible for multiple actors — that do not necessarily trust each other — to build on the same Store and allow for interoperability across their tables and systems.

Of course this could have been done across multiple contracts, just like DeFi contract A can transfer an ERC-20 balance of DeFi contract B if it has been approved. However, by centralizing the state under a single contract and enforcing a standardized access control mechanism, the World framework makes it possible to build much better tools and frontend libraries to know about the entire state of the World.

Worlds as “community computers”

Worlds are decentralized, truly permissionless, and extensible on-chain environments built on top of an Ethereum blockchain. They allow multiple participants, including developers and users, to collaborate and build applications with shared logic and state while maintaining a high level of interoperability and modularity. Worlds remove the distinction between first party and third party developer.

The concept of a community computer is inspired by the idea of a shared computing environment where users can contribute and access resources. In the case of the World framework, these resources are the shared Store, Systems, and Modules that form the basis of a on-chain application. In a way, Worlds are on-chain community computers.

Key aspects of the World as a community computer include:

  1. Shared State: A World hosts a shared Store, which serves as the on-chain database for al applications deployed within the World. This enables multiple developers to build on the same data and ensure seamless interaction between different applications.
  2. Permissionless Extensibility:** Unlike traditional on-chain architectures like Diamonds or Proxies, the World framework allows for permissionless registration of new logic and tables on the Store. This means that any developer can extend an application by adding new features without requiring approval from an administrator or other centralized authority.
  3. Interoperability: By centralizing the state under a single contract and having the World as the global entry point for any application, Worlds facilitate better interoperability between different applications built within them. The context — like which address a transaction is originally coming from — can travel across different pieces of logic using the World contract as a mediator.