The Linera Web Client is now Open Source!

:unlock: Announcing the Open-Sourcing of the Linera Web Client

Just as microchains further democratize Web3 performance and security, we believe the core development tools should be in the hands of the developers as well. Today, we’re excited to announce that our Linera Web Client is now open-source and public on our GitHub repository.

What’s in the Linera Web Client?

The Linera Web Client repository hosts essential components for building web applications on the Linera blockchain protocol. This includes:

  • :gear: Client Worker: Written in Rust, this component depends on the core linera-protocol repository and facilitates the core functionalities of the Linera Web Client.
  • :globe_with_meridians: Web Extension: Developed in TypeScript, the web extension integrates seamlessly with the client worker, providing a user-friendly interface for interacting with Linera microchains.

Why does this matter?

By open-sourcing our Web Client, we’re inviting developers worldwide to contribute, propose fixes, and enhance the Linera Web Client directly. We value having the community involved and will actively foster this collaborative environment. With the Linera Web Client, developers will be able to build scalable, low-latency Web3 applications leveraging Linera’s unique microchains architecture.

What is the current stage of development?

The Linera Web Client is in a demo stage and the application functionality is still in progress. It is capable of connecting to Linera validators and communicating with them, and the basic UI framework is in place. Many frontend development tasks in particular would be ideal for new contributors; we invite you to help us build the interface and client-side logic!

How to get started:

For development, use nix develop to set up your environment and pnpm build --watch for automatic rebuilds. Then, visit linera.dev to follow the base setup guide and start composing the Web Client by:

  • :hammer_and_pick: Building the Client Worker: Run wasm-pack build --target web from within the client-worker directory.
  • :jigsaw: Building the Extension: Run pnpm install && pnpm build from within the extension directory to prepare it for loading into Chrome or Chromium.

Installation:

After successfully building, the extension can be loaded into Chrome or Chromium-based browsers:

  1. Open the settings menu of your browser.

  2. Select ‘Extensions’ → ‘Manage Extensions’.

  3. Enable ‘Developer mode’. This will show an option ‘Load unpacked’.

  4. Navigate to the extension/dist directory and select it.

  5. You’ve installed the extension! Pin it to your toolbar for easy access.

Contributing:

We encourage you to experiment with our repository on GitHub. Whether it’s through submitting pull requests or adding issues you’ve found, your input is invaluable as we chart a revolutionary path in onchain architecture—right in users’ browsers.

Stay Connected:

As always, this is just the beginning. We’ll continue to update and expand the Web Client to cover more functionalities, include additional features, and provide even more value to our growing developer community.

Looking forward to seeing your contributions in the repo. :handshake:

4 Likes

Cannot wait to see what we can make with this web client.

1 Like

That’s great to hear that finally, we have something in the form of an extension to play around.

I have installed the extension on my Ubuntu machine, but I want help regarding some of the issues.

Issue #1:
When we download the code from the Github code repo, then the linera-protocol folder is not downloaded in the zip. It is always empty. So, I had to first download the linera protocol from it specific repository (GitHub - linera-io/linera-protocol at 11f9838ca7bd037490a84d905c8909c109f01895) and then paste the content of this file to the initial downloaded repo. I guess, this is happening because the protocol is deployed to another code repository.

Issue #2:
Unable to use the COnfirm something button of the extension, as the console says that the openPopup method is not available. I am running the extension on Google Chrome

Issue #3: Please tell what does the confirm something button does and what we get after clicking on it? Also, do tell what type of file is expected when we click on the Set Wallet button (I guess it requires a JSON keystore file)?

Also, how can I utilize the extension with the Linera rust language, and what are its limitations?

I hope I would get a quick reply

openPopup is for Chromium but not for Chrome. So currently you can try to use Chromium to load the extension.

1 Like

Thanks for the help. I am now looking forward to my other queries

As I am using the Chromium browser now, it is not throwing up the openPopup error, but now after clicking the Confirm Something button, it throws the following error

Even when I am trying to use the wallet.json file to import my wallet into the extension, I am getting this error

What to do now?