README.md

May 23, 2025 ยท View on GitHub

Chrome extension Microsoft Edge add-on Firefox add-on Opera add-on

License: AGPL-3.0

GitHub release GitHub release date

GitHub pre-release GitHub pre-release date

Kibisis & browser logos

Kibisis Web Extension

"ki-bi-sis"

The wallet for your lifestyle.

This is the Kibisis web extension built in React, TypeScript and Webpack.


Table of contents

๐Ÿ”ญ 1. Overview

1.1. Terminology

  • Client: These are all external resources to the provider, except the middleware. These include webpages and other extensions.
  • Middleware: Also known as content scripts. These resources automatically injected into the webpage and have limited access to both the web extension APIs and the webpage's DOM.
  • Provider: This is the web extension and includes both the extension's service workers and pages/pop-ups. These have full access to the web extension APIs and communicate to clients via the middleware.

๐Ÿช„ 2. Usage

Refer to the documentation for information on how to use Kibisis.

Back to top ^

๐Ÿ›  3. Development

3.1. Requirements

Back to top ^

3.2. Setup

  1. Install the dependencies:
$ pnpm install

โš ๏ธ NOTE: a post install script will run that creates a .env file.

  1. In the newly created .env file, replace the environment values with the desired values.

Back to top ^

3.3. Install local browsers (optional)

If you are want to run a standalone browser for development, you can install developer versions of Chrome and Firefox. If these are installed, these will be used as the installation of the temporary extensions that are built in step 3.4.

โš ๏ธ NOTE: the following commands can be run again to re-download and install the latest version. Your saved profile and extension settings will not be affected as they are stored in a separate directory in .<chrome|firefox>_profile/.

Back to top ^

3.3.1. Chrome

  1. Simply run:
pnpm install:chrome

๏ธ NOTE: the binary will be installed to .chrome/.

Back to top ^

3.3.2. Firefox

  1. Simply run:
pnpm install:firefox

โš ๏ธ NOTE: the binary will be installed to .firefox/.

Back to top ^

3.4. Run

  • To run simply use:
$ pnpm start:<chrome|firefox>

โš ๏ธ NOTE: this command will bundle the TypeScript source code and extension assets into the .<chrome|firefox>_build/ directory and depending on your intended target (you can choose 'chrome' or 'firefox') the corresponding browser will start up with the unpacked extension as a temporary extension.

Back to top ^

๐Ÿ“‘ 4. Appendix

4.1. Useful commands

CommandDescription
pnpm build:chromeBundles the source code and Chrome specific assets into the .chrome_build/ directory.
pnpm build:edgeBundles the source code and Microsoft Edge specific assets into the .edge_build/ directory.
pnpm build:firefoxBundles the source code and Firefox specific assets into the .firefox_build/ directory.
pnpm build:operaBundles the source code and Firefox specific assets into the .opera_build/ directory.
pnpm install:chromeInstalls/updates the latest version of Chrome For Testing browser to the project root. This removes the existing version if it exists.
pnpm install:firefoxInstalls/updates the latest version of Firefox Developer Edition browser to the project root. This removes the existing version if it exists.
pnpm package:chromePackages the contents of the .chrome_build/ directory into a kibisis-chrome-{version}.zip file, ready for submission.
pnpm package:edgePackages the contents of the .edge_build/ directory into a kibisis-edge-{version}.zip file, ready for submission.
pnpm package:firefoxPackages the contents of the .firefox_build/ directory into a kibisis-firefox-{version}.zip file, ready for submission.
pnpm package:operaPackages the contents of the .opera_build/ directory into a kibisis-opera-{version}.zip file, ready for submission.
pnpm prettierRuns prettier with the same configuration that is run on the pre-commit hooks.
pnpm start:chromeBundles the source code & the add-on assets, starts the local Chrome For Testing Developer edition with the add-on installed. This will watch for changes in the source code and reload the extension.
pnpm start:edgeBundles the source code & the add-on assets. This will watch for changes in the source code and reload the extension.
pnpm start:firefoxBundles the source code & the add-on assets, starts the local Firefox Developer edition with the add-on installed. This will watch for changes in the source code and reload the extension.
pnpm start:operaBundles the source code & the add-on assets. This will watch for changes in the source code and reload the extension.
pnpm start:dapp-exampleStarts the example dApp at http://localhost:8080
pnpm testRuns unit tests.
pnpm test:coverageRuns unit tests with coverage.

Back to top ^

4.2. Demo application

You can test Kibisis' features by going to https://kibis-is.github.io/web-extension.

Back to top ^

4.3. Manifest permissions

ValueVersionJustification
<all_urls>2When the extension attempts to scan the QR code of a WalletConnect dapp, the tabs.captureVisibleTab() function is used.
activeTab3As above, the extension requires access to the tabs.captureVisibleTab().
alarms3A user can switch on a password lock. This feature utilizes the Alarms API as a timeout to lock the extension behind a password.
storage2 and 3The storage API is used to maintain the state of the extension. It saves encrypted private keys, settings and the lists of AVM assets.
unlimitedStorage2 and 3As an n number of accounts/private keys are saved to storage, users that have a lot of accounts will most likely exceed the storage limit.

Back to top ^

๐Ÿ‘ 5. How to contribute

Please read the contributing guide to learn about the development process.

Back to top ^

๐Ÿ“„ 6. License

Please refer to the COPYING file.

Back to top ^