diff --git a/ro_core/config/config.go b/ro_core/config/config.go
index b7906f2..030134b 100644
--- a/ro_core/config/config.go
+++ b/ro_core/config/config.go
@@ -36,6 +36,7 @@
 	default_KVTxnKeyDelTime       = 60
 	default_LogLevel              = 0
 	default_Banner                = false
+	default_DisplayVersionOnly    = false
 	default_CoreTopic             = "rocore"
 	default_ROCoreEndpoint        = "rocore"
 	default_ROCoreKey             = "pki/voltha.key"
@@ -59,6 +60,7 @@
 	CoreTopic           string
 	LogLevel            int
 	Banner              bool
+	DisplayVersionOnly  bool
 	ROCoreKey           string
 	ROCoreCert          string
 	ROCoreCA            string
@@ -84,6 +86,7 @@
 		CoreTopic:           default_CoreTopic,
 		LogLevel:            default_LogLevel,
 		Banner:              default_Banner,
+		DisplayVersionOnly:  default_DisplayVersionOnly,
 		ROCoreKey:           default_ROCoreKey,
 		ROCoreCert:          default_ROCoreCert,
 		ROCoreCA:            default_ROCoreCA,
@@ -133,6 +136,9 @@
 	help = fmt.Sprintf("Show startup banner log lines")
 	flag.BoolVar(&cf.Banner, "banner", default_Banner, help)
 
+	help = fmt.Sprintf("Show version information and exit")
+	flag.BoolVar(&cf.DisplayVersionOnly, "version", default_DisplayVersionOnly, help)
+
 	flag.Parse()
 
 	containerName := getContainerInfo()
diff --git a/ro_core/core/model_proxy_manager.go b/ro_core/core/model_proxy_manager.go
index 60295c0..5613475 100644
--- a/ro_core/core/model_proxy_manager.go
+++ b/ro_core/core/model_proxy_manager.go
@@ -17,7 +17,9 @@
 
 import (
 	"context"
+	"encoding/json"
 	"github.com/opencord/voltha-go/common/log"
+	"github.com/opencord/voltha-go/common/version"
 	"github.com/opencord/voltha-go/db/model"
 	"github.com/opencord/voltha-protos/go/voltha"
 	"google.golang.org/grpc/codes"
@@ -73,11 +75,22 @@
 func (mpMgr *ModelProxyManager) GetVoltha(ctx context.Context) (*voltha.Voltha, error) {
 	log.Debug("GetVoltha")
 
-	// TODO: Need to retrieve VOLTHA core information, for now return empty
-	// value
+	/*
+	 * For now, encode all the version information into a JSON object and
+	 * pass that back as "version" so the client can get all the
+	 * information associated with the version. Long term the API should
+	 * better accomidate this, but for now this will work.
+	 */
+	data, err := json.Marshal(&version.VersionInfo)
+	info := version.VersionInfo.Version
+	if err != nil {
+		log.Warnf("Unable to encode version information as JSON: %s", err.Error())
+	} else {
+		info = string(data)
+	}
+
 	return &voltha.Voltha{
-		// TODO: hardcoded for now until ldflags are supported
-		Version: "2.1.0-dev",
+		Version: info,
 	}, nil
 }
 
diff --git a/ro_core/main.go b/ro_core/main.go
index 97015d4..2313fd3 100644
--- a/ro_core/main.go
+++ b/ro_core/main.go
@@ -21,6 +21,7 @@
 	"fmt"
 	grpcserver "github.com/opencord/voltha-go/common/grpc"
 	"github.com/opencord/voltha-go/common/log"
+	"github.com/opencord/voltha-go/common/version"
 	"github.com/opencord/voltha-go/db/kvstore"
 	"github.com/opencord/voltha-go/ro_core/config"
 	c "github.com/opencord/voltha-go/ro_core/core"
@@ -159,13 +160,19 @@
 }
 
 func printBanner() {
-	fmt.Println("                                            ")
-	fmt.Println(" ______        ______                       ")
-	fmt.Println("|  _ \\ \\      / / ___|___  _ __ ___       ")
-	fmt.Println("| |_) \\ \\ /\\ / / |   / _ \\| '__/ _ \\   ")
-	fmt.Println("|  _ < \\ V  V /| |__| (_) | | |  __/       ")
-	fmt.Println("|_| \\_\\ \\_/\\_/  \\____\\___/|_|  \\___| ")
-	fmt.Println("                                            ")
+	fmt.Println()
+	fmt.Println(" ____   ___   ____               ")
+	fmt.Println("|  _ \\ / _ \\ / ___|___  _ __ ___ ")
+	fmt.Println("| |_) | | | | |   / _ \\| '__/ _ \\")
+	fmt.Println("|  _ <| |_| | |__| (_) | | |  __/")
+	fmt.Println("|_| \\_\\\\___/ \\____\\___/|_|  \\___|")
+	fmt.Println()
+
+}
+
+func printVersion() {
+	fmt.Println("VOLTHA Read-Only Core")
+	fmt.Println(version.VersionInfo.String("  "))
 }
 
 func main() {
@@ -190,6 +197,12 @@
 
 	defer log.CleanUp()
 
+	// Print verison / build information and exit
+	if cf.DisplayVersionOnly {
+		printVersion()
+		return
+	}
+
 	// Print banner if specified
 	if cf.Banner {
 		printBanner()
