diff --git a/goKMS/kms/kms.go b/goKMS/kms/kms.go
index 0c9f2be82588d5925f33eb39719fdaa27004a115..393fa0435ec428102bb774b30f0c2e2ac2b93ee6 100644
--- a/goKMS/kms/kms.go
+++ b/goKMS/kms/kms.go
@@ -258,14 +258,19 @@ func (kms *KMS) startGRPC(interComAddr string, quantumAddress string, tlsData km
 		KMS:               kms,
 	})
 
-	quantumLis, err := net.Listen("tcp", quantumAddress)
-	if err != nil {
-		log.Fatalf("failed to listen: %v", err)
+	if quantumAddress != "" {
+		quantumLis, err := net.Listen("tcp", quantumAddress)
+		if err != nil {
+			log.Fatalf("failed to listen: %v", err)
+		}
+		quantumServ := grpc.NewServer()
+		pbQS.RegisterKmsQkdmCommunicationServiceServer(quantumServ, &quipSecServer{
+			KMS: kms,
+		})
+
+		log.Infof("quantum server listening at %v", quantumLis.Addr())
+		go quantumServ.Serve(quantumLis) //nolint:errcheck
 	}
-	quantumServ := grpc.NewServer()
-	pbQS.RegisterKmsQkdmCommunicationServiceServer(quantumServ, &quipSecServer{
-		KMS: kms,
-	})
 
 	go func() {
 		// set status to serving
@@ -275,9 +280,6 @@ func (kms *KMS) startGRPC(interComAddr string, quantumAddress string, tlsData km
 		//    for{}
 	}()
 
-	log.Infof("quantum server listening at %v", quantumLis.Addr())
-	go quantumServ.Serve(quantumLis) //nolint:errcheck
-
 	log.Infof("inter KMS server listening at %v", interKMSLis.Addr())
 	if err := interKMSServer.Serve(interKMSLis); err != nil {
 		log.Fatalf("failed to serve: %v", err)