diff --git a/eth/stagedsync/default_stages.go b/eth/stagedsync/default_stages.go
index a3d73f84ea9387b64c2b63f8afeb87a7c4ac0ae7..4088b7f95a1241c3d11d2fab5792b2210f831285 100644
--- a/eth/stagedsync/default_stages.go
+++ b/eth/stagedsync/default_stages.go
@@ -269,7 +269,7 @@ func DefaultStages(ctx context.Context,
 			ID:          stages.Finish,
 			Description: "Final: update current block for the RPC API",
 			Forward: func(firstCycle bool, badBlockUnwind bool, s *StageState, _ Unwinder, tx kv.RwTx) error {
-				return FinishForward(s, tx, finish)
+				return FinishForward(s, tx, finish, firstCycle)
 			},
 			Unwind: func(firstCycle bool, u *UnwindState, s *StageState, tx kv.RwTx) error {
 				return UnwindFinish(u, tx, finish, ctx)
diff --git a/eth/stagedsync/stage_finish.go b/eth/stagedsync/stage_finish.go
index c7c37ab0aa691df243114a2c0ee3227bdf439a31..08b62b6d8ebfc94b7b9b6fcd3bc37c6683bee355 100644
--- a/eth/stagedsync/stage_finish.go
+++ b/eth/stagedsync/stage_finish.go
@@ -3,6 +3,7 @@ package stagedsync
 import (
 	"context"
 	"fmt"
+	"github.com/ledgerwatch/erigon/params"
 
 	"github.com/ledgerwatch/erigon-lib/kv"
 	"github.com/ledgerwatch/erigon/core/rawdb"
@@ -29,7 +30,7 @@ func StageFinishCfg(db kv.RwDB, tmpDir string, btClient *snapshotsync.Client, sn
 	}
 }
 
-func FinishForward(s *StageState, tx kv.RwTx, cfg FinishCfg) error {
+func FinishForward(s *StageState, tx kv.RwTx, cfg FinishCfg, initialCycle bool) error {
 	useExternalTx := tx != nil
 	if !useExternalTx {
 		var err error
@@ -67,11 +68,19 @@ func FinishForward(s *StageState, tx kv.RwTx, cfg FinishCfg) error {
 	if err != nil {
 		return err
 	}
+
+	if initialCycle {
+		if err := params.SetErigonVersion(tx, params.VersionKeyFinished); err != nil {
+			return err
+		}
+	}
+
 	if !useExternalTx {
 		if err := tx.Commit(); err != nil {
 			return err
 		}
 	}
+
 	return nil
 }
 
diff --git a/node/node.go b/node/node.go
index d0cf4ac1dfa6c5328096d08a5630a0f9e16803a6..df2071b387954dcb70d591bb4b38d8016c2e8559 100644
--- a/node/node.go
+++ b/node/node.go
@@ -17,8 +17,10 @@
 package node
 
 import (
+	"context"
 	"errors"
 	"fmt"
+	"github.com/ledgerwatch/erigon/params"
 	"net"
 	"net/http"
 	"os"
@@ -551,6 +553,12 @@ func OpenDatabase(config *Config, logger log.Logger, label kv.Label) (kv.RwDB, e
 		}
 	}
 
+	if err := db.Update(context.Background(), func(tx kv.RwTx) (err error) {
+		return params.SetErigonVersion(tx, params.VersionKeyCreated)
+	}); err != nil {
+		return nil, err
+	}
+
 	return db, nil
 }
 
diff --git a/params/version.go b/params/version.go
index 039b9c837628bcbb1913ce80077ce02cbb20639e..ce1d62868063018995a59a58d0a827c26663c9bf 100644
--- a/params/version.go
+++ b/params/version.go
@@ -18,6 +18,7 @@ package params
 
 import (
 	"fmt"
+	"github.com/ledgerwatch/erigon-lib/kv"
 )
 
 var (
@@ -29,10 +30,12 @@ var (
 
 // see https://calver.org
 const (
-	VersionMajor    = 2021    // Major version component of the current release
-	VersionMinor    = 9       // Minor version component of the current release
-	VersionMicro    = 3       // Patch version component of the current release
-	VersionModifier = "alpha" // Patch version component of the current release
+	VersionMajor       = 2021    // Major version component of the current release
+	VersionMinor       = 9       // Minor version component of the current release
+	VersionMicro       = 3       // Patch version component of the current release
+	VersionModifier    = "alpha" // Patch version component of the current release
+	VersionKeyCreated  = "ErigonVersionCreated"
+	VersionKeyFinished = "ErigonVersionFinished"
 )
 
 func withModifier(vsn string) string {
@@ -85,3 +88,19 @@ func VersionWithCommit(gitCommit, gitDate string) string {
 	}
 	return vsn
 }
+
+func SetErigonVersion(tx kv.RwTx, versionKey string) error {
+	versionKeyByte := []byte(versionKey)
+	hasVersion, err := tx.Has(kv.DatabaseInfo, versionKeyByte)
+	if err != nil {
+		return err
+	}
+	if hasVersion {
+		return nil
+	}
+	// Save version if it does not exist
+	if err := tx.Put(kv.DatabaseInfo, versionKeyByte, []byte(Version)); err != nil {
+		return err
+	}
+	return nil
+}