Utopixia icon

Gravity OS Overview

Gravity OS is an innovative decentralized virtual operating system where all applications and code (JavaScript/HTML/CSS) are stored on-chain. The browser retrieves the code from a node and executes Gravity OS locally, ensuring complete transparency and security.

Encryption of Wallet in LocalStorage

In the latest version of Gravity OS, when logging in, users are now required to not only connect their wallet but also enter a password. This password is used to encrypt the user's wallet and store it securely in the browser's localStorage. This ensures that even if access to the localStorage is obtained, the wallet remains protected.

Here is how the process works:

  • Step 1: Upon login, the user will be asked to enter their wallet information as usual, along with a new password.
  • Step 2: This password will be used to encrypt the wallet before it is stored in the localStorage.
  • Step 3: On every page refresh or subsequent visit, the user will be prompted to enter their password to decrypt the wallet and restore access to it.
Screenshot of the login page with wallet and password prompt.

Important:

With the new encryption process, your wallet is securely encrypted with a password before being stored in localStorage. Make sure to remember your password, as losing it will require you to reset your wallet connection and re-import it. Your password is never stored on Gravity OS, ensuring maximum security.

User Interface

The user desktop within Gravity OS is minimalistic, featuring the following elements:

  • Top left corner: The Utopixia logo with a button to access the applications menu.
  • Bottom left corner: A button to open the favorites bar.
  • Top right corner: A user menu with options for managing the profile.
Screenshot of the Gravity OS user desktop, showcasing the minimalistic interface with the Utopixia logo, favorites bar, and user menu.

User Menu

The User Menu, located in the top-right corner of GravityOS, gives users access to personal settings and identity management. It includes the following tabs:

Screenshot of the User menu with Public Profile, Badges, Contacts, Keys, and Background tabs.
  • Public Profile: Displays the user’s public identity on the network. The profile contains a profile picture stored on IPFS, a pseudonym, and a short description. These elements are visible to other users across the ecosystem.
  • Badges: Shows badges earned by the user, as well as the list of available badges that can be unlocked through applications, DAOs, or missions. Badges act as programmable credentials and can unlock new permissions or features.
  • Contacts: Enables management of a verified contact list. Users can add contacts by their address and view their public profiles. Contacts are leveraged inside DApps and across the WebOS for secure communication or collaboration.
  • Keys: Interface for managing private keys through the Paradox protocol. Keys are distributed across the network and never reside in a single location. Users can add or revoke addresses that are authorized to use a key at any time. These keys are used for encrypting information on-chain or on IPFS.
  • Background: Allows customization of the WebOS environment by changing the desktop wallpaper.

Application Management

Applications available in Gravity OS are also stored on-chain. When an application is launched, Gravity OS retrieves the underlying structure of the web page (the graph), reconstructs the HTML from its graph representation, and injects this content into an iframe. The iframe is then inserted into a "window" within the OS, allowing user interaction with the application.

Screenshot of an application window in Gravity OS, highlighting the star, wallet, download, and window control buttons.

Tip: The structure of each window in Gravity OS includes common buttons for interacting with the application.

  • Star: Mark an app as a favorite. Favorites are displayed in the bottom favorites bar. Blue indicates it's a favorite; white indicates it's not.
  • Wallet: Toggle automatic transaction signing. When active, the icon turns blue, and the app won't prompt for signatures (useful for apps requiring frequent signatures).
  • Download: Indicates whether the decentralized app's code has been updated. If no updates are available, the icon is gray. Clicking it activates auto-updates, turning the icon blue. If updates are available and auto-updates are off, the icon turns white, signaling the user to refresh the app.
  • Window controls: Standard window controls like minimize, maximize, and close.

Application Communication

Applications loaded by Gravity OS communicate with the operating system via a JavaScript event system. For example, an app can emit a signature event, which prompts the OS to notify the user (unless the wallet button is in automatic mode). Once the user approves, the app receives the signature of the submitted data.

Screenshot illustrating the event-driven communication system in Gravity OS, where applications request user signatures via notifications.

Although applications never directly access the user's wallet, they receive the user's address upon launch, allowing them to retrieve the user's on-chain profile, for example.

What’s next? Choose your first step in Gravity OS:

You’ve explored the foundations of Gravity OS. Now it’s time to dive in and try it yourself — pick one of the following paths to continue: