diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8e606a4cb72916dc9ba683aa089cd131eec7b2d9..72bf22f7bde5b4117b61817571e20a266aa76617 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,33 @@
+# v0.2.2 - 2020-07-27
+* Improves message and transaction validation: 
+    * Adjust max transaction inputs count;
+    * Adds signature validation before issuance; 
+    * Enforce max message size in message factory.
+* Improves API:
+    * Changes granularity of spammer API to accept messages per minute;
+    * Adds API middleware and set CORS to allow from every origin;
+    * Adds sendTransactionByJSON to allow a client to issue transactions by providing them in a JSON format;
+    * Adds tool API endpoint to facilitate debugging of the solidification status;
+    * Removes old API documentation;
+* Improves synchronization process:
+    * Refactors message requester to be more reliable;
+    * Improves solidification process;
+    * Refactors worker pool management;
+    * Replaces bootstrap plugin with the more secure and reliable beacon plugin.
+* Improves analysis-server dashboard:
+    * Adds the ability to distinguish between different GoShimmer node versions;
+    * Refactors the interaction between server side and dashboard;
+    * Improves consensus visualization;
+    * Improves dashboard tooling.
+* Adds a new electron-based wallet.
+* Increases max gossip packet size.
+* Adds command to the CLI to override database dirty flag.
+* Grafana local dashboard
+    * Adds messages in database chart (solid, not solid, total)
+    * Adds average solidification time chart
+    * Adds Message Request Queue Size chart
+* **Breaking**: bumps network and database versions
+
 # v0.2.1 - 2020-07-01
 * Adds PoW requirement to faucet payloads
 * Adds tips broadcaster to ensure that all chains are getting solidified
@@ -167,4 +197,4 @@ A detailed list about the changes in v0.1.0 can be seen under the given [milesto
 * Removes sent count from spammed transactions
 * Removes usage of `errors.Identifiable` and `github.com/pkg/errors` in favor of standard lib `errors` package
 * Use `network`, `parameter`, `events`, `database`, `logger`, `daemon`, `workerpool` and `node` packages from hive.go
-* Removes unused plugins (`zmq`, `dashboard`, `ui`)
\ No newline at end of file
+* Removes unused plugins (`zmq`, `dashboard`, `ui`)
diff --git a/plugins/autopeering/autopeering.go b/plugins/autopeering/autopeering.go
index 454de0597502587b8c865f3d88708dd5086275c0..4a1db801b0dc52eb3b39c702646afcc2d6813057 100644
--- a/plugins/autopeering/autopeering.go
+++ b/plugins/autopeering/autopeering.go
@@ -25,7 +25,7 @@ import (
 // autopeering constants
 const (
 	ProtocolVersion = 0 // update on protocol changes
-	NetworkVersion  = 4 // update on network changes
+	NetworkVersion  = 5 // update on network changes
 )
 
 var (
diff --git a/plugins/banner/plugin.go b/plugins/banner/plugin.go
index 6229660976de1468d0ca3a0086b5654f208f8801..b231e1e4ab7e7e4c3e51ec4543f40ea323e01863 100644
--- a/plugins/banner/plugin.go
+++ b/plugins/banner/plugin.go
@@ -18,7 +18,7 @@ var (
 
 const (
 	// AppVersion version number
-	AppVersion = "v0.2.1"
+	AppVersion = "v0.2.2"
 
 	// AppName app code name
 	AppName = "GoShimmer"
diff --git a/plugins/database/versioning.go b/plugins/database/versioning.go
index ae813821e61ccb569ee546b0382ad6cd9898d8c1..4ccac3156906d27bce8b2d6ecd3c91b94a0c82c6 100644
--- a/plugins/database/versioning.go
+++ b/plugins/database/versioning.go
@@ -10,7 +10,7 @@ import (
 const (
 	// DBVersion defines the version of the database schema this version of GoShimmer supports.
 	// Every time there's a breaking change regarding the stored data, this version flag should be adjusted.
-	DBVersion = 5
+	DBVersion = 6
 )
 
 var (
diff --git a/plugins/syncbeacon/plugin.go b/plugins/syncbeacon/plugin.go
index 77b7c3e0d68f4e82efdeb751567e2a71c92b8162..3461ff403d68a6842f48b70a8e411e394963efd8 100644
--- a/plugins/syncbeacon/plugin.go
+++ b/plugins/syncbeacon/plugin.go
@@ -78,10 +78,6 @@ func broadcastSyncBeaconPayload() {
 
 func run(_ *node.Plugin) {
 	if err := daemon.BackgroundWorker("Sync-Beacon", func(shutdownSignal <-chan struct{}) {
-		// wait CfgSyncBeaconBroadcastIntervalSec to possibly retrieve new beacons
-		if config.Node().GetBool(CfgSyncBeaconStartSynced) {
-			time.Sleep(config.Node().GetDuration(CfgSyncBeaconBroadcastIntervalSec) * time.Second)
-		}
 		ticker := time.NewTicker(config.Node().GetDuration(CfgSyncBeaconBroadcastIntervalSec) * time.Second)
 		defer ticker.Stop()
 		for {