Welcome to Plug! An Internet Computer crypto wallet and authentication provider as a browser extension. Find our latest version in this repository's releases, or on our website. You can go to our documentation to learn more about how to interact with Plug as a developer.
Warning: Plug is still alpha software - treat it as a hot wallet.
This repository is the frontend for Plug's browser extension. It uses the Plug Controller and the Plug Inpage Provider to power the features in Plug and all its interactions with the Internet Computer.
![]()  | 
![]()  | 
![]()  | 
![]()  | 
![]()  | 
|---|---|---|---|---|
| 49 & later ✔ | 52 & later ✔ | 36 & later ✔ | 79 & later ✔ | Latest ✔ | 
Plug can be installed in two ways. You can get it from the official Chrome Extension Store or the Firefox Add-on Store (recommended, receives auto-updates):
- Get from Chrome Extension Store (Chrome, Brave, Chromium)
 - Get from Firefox Add-on Store (Firefox browser)
 
Or download the latest version's build in this repository's releases, and follow the guides below for a manual installation (doesn't auto-update):
Ensure you have
You need a personal access token to install some of our npm packages.
The token must have the repo and read:packages scopes to login to the GitHub Package Registry.
If you don't have one, create the personal access token in the developer settings.
Run the following command to authenticate, using the personal access token as your password:
npm login --registry=https://npm.pkg.github.com --scope=@psychedelic
Then run the following:
yarn installto install dependencies.yarn run dev:chrometo start the development server for chrome extensionyarn run dev:firefoxto start the development server for firefox addonyarn run dev:operato start the development server for opera extensionyarn run build:chrometo build chrome extensionyarn run build:firefoxto build firefox addonyarn run build:operato build opera extensionyarn run buildbuilds and packs extensions all at once to extension/ directory
- 
yarn installto install dependencies. - 
To watch file changes in development
- Chrome
yarn run dev:chrome
 - Firefox
yarn run dev:firefox
 - Opera
yarn run dev:opera
 
 - Chrome
 - 
Load extension in browser
 - 
- Go to the browser address bar and type 
chrome://extensions - Check the 
Developer Modebutton to enable it. - Click on the 
Load Unpacked Extension…button. - Select your extension’s extracted directory.
 
 - Go to the browser address bar and type 
 - 
- Load the Add-on via 
about:debuggingas temporary Add-on. - Choose the 
manifest.jsonfile in the extracted directory 
 - Load the Add-on via 
 - 
- Load the extension via 
opera:extensions - Check the 
Developer Modeand load as unpacked from extension’s extracted directory. 
 - Load the extension via 
 
yarn run buildbuilds the extension for all the browsers toextension/BROWSERdirectory respectively.
Note: By default the manifest.json is set with version 0.0.0. The webpack loader will update the version in the build with that of the package.json version. In order to release a new version, update version in package.json and run script.
If you don't want to use package.json version, you can disable the option here.
Update source/manifest.json file with browser vendor prefixed manifest keys
{
  "__chrome__name": "SuperChrome",
  "__firefox__name": "SuperFox",
  "__edge__name": "SuperEdge",
  "__opera__name": "SuperOpera"
}if the vendor is chrome this compiles to:
{
  "name": "SuperChrome",
}Add keys to multiple vendors by separating them with | in the prefix
{
  __chrome|opera__name: "SuperBlink"
}
if the vendor is chrome or opera, this compiles to:
{
  "name": "SuperBlink"
}
See the original README of wext-manifest-loader package for more details
- Shared Eslint & Prettier Configuration - 
@abhijithvijayan/eslint-config 
Plug extension © Fleek LLC Original template MIT © Abhijith Vijayan





