Installs the named PKCS #11 module, making it available to Firefox.

This is an asynchronous function that returns a Promise.


let installing = browser.pkcs11.installModule(
  name,              // string
  flags              // integer



string. Name of the module to install. This must match the name property in the PKCS #11 manifest for the module.

flags Optional

integer. Flags to pass to the module.

Return value

A Promise that will be fulfilled with no arguments once the module is installed.

If the module could not be found or some other error occurs, the promise will be rejected with an error message.

Browser compatibility

BCD tables only load in the browser


Installs a module, then lists its slots and list the tokens they contain:

function onInstalled() {
  return browser.pkcs11.getModuleSlots("my_module");

function onGotSlots(slots) {
  for (const slot of slots) {
    console.log(`Slot: ${}`);
    if (slot.token) {
      console.log(`Contains token: ${}`);
    } else {
      console.log("Is empty");