diff --git a/plugins/drng/drng.go b/plugins/drng/drng.go
index 1af625823414239ed0d43a0e0bfe240f29833660..7f44946f9de4f6ed79321e6f7840e097627aba7c 100644
--- a/plugins/drng/drng.go
+++ b/plugins/drng/drng.go
@@ -1,12 +1,12 @@
 package drng
 
 import (
-	"encoding/hex"
 	"errors"
 	"fmt"
 
 	"github.com/iotaledger/goshimmer/plugins/config"
 	"github.com/iotaledger/hive.go/crypto/ed25519"
+	"github.com/mr-tron/base58/base58"
 )
 
 var (
@@ -20,7 +20,7 @@ func parseCommitteeMembers() (result []ed25519.PublicKey, err error) {
 			continue
 		}
 
-		pubKey, err := hex.DecodeString(committeeMember)
+		pubKey, err := base58.Decode(committeeMember)
 		if err != nil {
 			return nil, fmt.Errorf("%w: invalid public key: %s", ErrParsingCommitteeMember, err)
 		}
diff --git a/plugins/webapi/info/plugin.go b/plugins/webapi/info/plugin.go
index 13eaf5e11059bdd540000722b7ca18620d589db7..1d8c3d04313d4f62bf5b5657959be2b7181d0cd1 100644
--- a/plugins/webapi/info/plugin.go
+++ b/plugins/webapi/info/plugin.go
@@ -1,13 +1,14 @@
 package info
 
 import (
-	"encoding/hex"
 	"net/http"
 
 	"github.com/iotaledger/goshimmer/plugins/autopeering/local"
+	"github.com/iotaledger/goshimmer/plugins/banner"
 	"github.com/iotaledger/goshimmer/plugins/webapi"
 	"github.com/iotaledger/hive.go/node"
 	"github.com/labstack/echo"
+	"github.com/mr-tron/base58"
 )
 
 var PLUGIN = node.NewPlugin("WebAPI info Endpoint", node.Enabled, configure)
@@ -17,11 +18,75 @@ func configure(plugin *node.Plugin) {
 }
 
 // getInfo returns the info of the node
+// e.g.,
+// {
+// 	"version":"v0.2.0",
+// 	"identity":"7BxV1v3nFHefn4J88jeZebqnJRvSHt1jC7ME6tmKLhy7",
+// 	"publickey":"CjUsn86jpFHWnSCx3NhWfU4Lk16mDdy1Hr7ERSTv3xn9",
+// 	"enabledplugins":[
+// 		"Config",
+// 		"Autopeering",
+// 		"Analysis",
+// 		"WebAPI data Endpoint",
+// 		"WebAPI dRNG Endpoint",
+// 		"MessageLayer",
+// 		"CLI",
+// 		"Database",
+// 		"DRNG",
+// 		"WebAPI autopeering Endpoint",
+// 		"Metrics",
+// 		"PortCheck",
+// 		"SPA",
+// 		"WebAPI",
+// 		"WebAPI info Endpoint",
+// 		"WebAPI message Endpoint",
+// 		"Banner",
+// 		"Gossip",
+// 		"Graceful Shutdown",
+// 		"Logger"
+// 	],
+// 	"disabledlugins":[
+// 		"Graph",
+// 		"RemoteLog",
+// 		"Spammer",
+// 		"WebAPI Auth"
+// 	]
+// }
 func getInfo(c echo.Context) error {
-	return c.JSON(http.StatusOK, Response{PublicKey: hex.EncodeToString(local.GetInstance().PublicKey().Bytes())})
+	enabledPlugins := []string{}
+	disabledPlugins := []string{}
+	for plugin, status := range node.GetPlugins() {
+		switch status {
+		case node.Disabled:
+			disabledPlugins = append(disabledPlugins, plugin)
+		case node.Enabled:
+			enabledPlugins = append(enabledPlugins, plugin)
+		default:
+			continue
+		}
+	}
+
+	return c.JSON(http.StatusOK, Response{
+		Version:         banner.AppVersion,
+		Identity:        base58.Encode(local.GetInstance().Identity.ID().Bytes()),
+		PublicKey:       base58.Encode(local.GetInstance().PublicKey().Bytes()),
+		EnabledPlugins:  enabledPlugins,
+		DisabledPlugins: disabledPlugins,
+	})
 }
 
+// Response holds the response of the GET request.
 type Response struct {
+	// version of GoShimmer
+	Version string `json:"version,omitempty"`
+	// identity of the node encoded in base58
+	Identity string `json:"identity,omitempty"`
+	// public key of the node encoded in base58
 	PublicKey string `json:"publickey,omitempty"`
-	Error     string `json:"error,omitempty"`
+	// list of enabled plugins
+	EnabledPlugins []string `json:"enabledplugins,omitempty"`
+	// list if disabled plugins
+	DisabledPlugins []string `json:"disabledlugins,omitempty"`
+	// error of the response
+	Error string `json:"error,omitempty"`
 }