diff --git a/indexedDb/init.go b/indexedDb/init.go
index 3b8357ec8f0807c22285abe95aa31a839d573ecf..bed5ea752ab887ad0bfdcbfb648e9803f3ffe136 100644
--- a/indexedDb/init.go
+++ b/indexedDb/init.go
@@ -10,6 +10,7 @@
 package indexedDb
 
 import (
+	"gitlab.com/elixxir/xxdk-wasm/utils"
 	"syscall/js"
 
 	"github.com/hack-pad/go-indexeddb/idb"
@@ -143,5 +144,12 @@ func v1Upgrade(db *idb.Database) error {
 		return err
 	}
 
+	// Get the database name and save it to storage
+	if databaseName, err := db.Name(); err != nil {
+		return err
+	} else if err = utils.StoreIndexedDb(databaseName); err != nil {
+		return err
+	}
+
 	return nil
 }
diff --git a/utils/indexedDbList.go b/utils/indexedDbList.go
new file mode 100644
index 0000000000000000000000000000000000000000..a83321eff905469e80f4761b90a96542636277cc
--- /dev/null
+++ b/utils/indexedDbList.go
@@ -0,0 +1,53 @@
+////////////////////////////////////////////////////////////////////////////////
+// Copyright © 2022 xx foundation                                             //
+//                                                                            //
+// Use of this source code is governed by a license that can be found in the  //
+// LICENSE file.                                                              //
+////////////////////////////////////////////////////////////////////////////////
+
+//go:build js && wasm
+
+package utils
+
+import (
+	"encoding/json"
+	"github.com/pkg/errors"
+	"os"
+)
+
+const indexedDbListKey = "xxDkWasmIndexedDbList"
+
+// GetIndexedDbList returns the list of stored indexedDb databases.
+func GetIndexedDbList() ([]string, error) {
+	var list []string
+	listBytes, err := GetLocalStorage().GetItem(indexedDbListKey)
+	if err != nil && !errors.Is(err, os.ErrNotExist) {
+		return nil, err
+	} else if err == nil {
+		err = json.Unmarshal(listBytes, &list)
+		if err != nil {
+			return nil, err
+		}
+	}
+
+	return list, nil
+}
+
+// StoreIndexedDb saved the indexedDb database name to storage.
+func StoreIndexedDb(databaseName string) error {
+	list, err := GetIndexedDbList()
+	if err != nil {
+		return err
+	}
+
+	list = append(list, databaseName)
+
+	listBytes, err := json.Marshal(list)
+	if err != nil {
+		return err
+	}
+
+	GetLocalStorage().SetItem(indexedDbListKey, listBytes)
+
+	return nil
+}
diff --git a/utils/indexedDbList_test.go b/utils/indexedDbList_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..b9d4ce9d105cadae54213c28f6a5993a7fdbf7a8
--- /dev/null
+++ b/utils/indexedDbList_test.go
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////////////
+// Copyright © 2022 xx foundation                                             //
+//                                                                            //
+// Use of this source code is governed by a license that can be found in the  //
+// LICENSE file.                                                              //
+////////////////////////////////////////////////////////////////////////////////
+
+//go:build js && wasm
+
+package utils
+
+import (
+	"reflect"
+	"testing"
+)
+
+// Tests that three indexedDb database names stored with StoreIndexedDb are
+// retrieved with GetIndexedDbList.
+func TestStoreIndexedDb_GetIndexedDbList(t *testing.T) {
+	expected := []string{"db1", "db2", "db3"}
+
+	for _, name := range expected {
+		err := StoreIndexedDb(name)
+		if err != nil {
+			t.Errorf("Failed to store database name %q: %+v", name, err)
+		}
+	}
+
+	list, err := GetIndexedDbList()
+	if err != nil {
+		t.Errorf("Failed to get database list: %+v", err)
+	}
+
+	if !reflect.DeepEqual(expected, list) {
+		t.Errorf("Did not get expected list.\nexpected: %s\nreceived: %s",
+			expected, list)
+	}
+}