diff --git a/node/src/chain_spec/gtest.rs b/node/src/chain_spec/gtest.rs
index b61648a6347f7c093c73c7951649ab735d8d7664..ac1b0b1a99a776c6d77dbaea290f4e1c902247e5 100644
--- a/node/src/chain_spec/gtest.rs
+++ b/node/src/chain_spec/gtest.rs
@@ -16,17 +16,18 @@
 
 use super::*;
 use common_runtime::constants::*;
-use common_runtime::entities::IdtyName;
+use common_runtime::entities::IdtyData;
+use common_runtime::*;
 use gtest_runtime::{
-    opaque::SessionKeys, AccountId, AuthorityMembersConfig, BabeConfig, BalancesConfig, CertConfig,
-    GenesisConfig, IdentityConfig, IdtyValue, ImOnlineId, MembershipConfig, SessionConfig,
-    SmithsCertConfig, SmithsMembershipConfig, SudoConfig, SystemConfig, UdAccountsStorageConfig,
-    UniversalDividendConfig, WASM_BINARY,
+    opaque::SessionKeys, AccountConfig, AccountId, AuthorityMembersConfig, BabeConfig,
+    BalancesConfig, CertConfig, GenesisConfig, IdentityConfig, IdtyValue, ImOnlineId,
+    MembershipConfig, SessionConfig, SmithsCertConfig, SmithsMembershipConfig, SudoConfig,
+    SystemConfig, TechnicalCommitteeConfig, UniversalDividendConfig, WASM_BINARY,
 };
 use sc_service::ChainType;
 use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId;
 use sp_consensus_babe::AuthorityId as BabeId;
-use sp_core::sr25519;
+use sp_core::{blake2_256, sr25519, Encode, H256};
 use sp_finality_grandpa::AuthorityId as GrandpaId;
 use sp_membership::MembershipData;
 use std::collections::BTreeMap;
@@ -69,10 +70,12 @@ pub fn development_chain_spec() -> Result<ChainSpec, String> {
         move || {
             gen_genesis_for_local_chain(
                 wasm_binary,
-                // Initial authorities
+                // Initial authorities len
                 1,
-                // Inital identities
+                // Initial smiths members len
                 3,
+                // Inital identities len
+                4,
                 // Sudo account
                 get_account_id_from_seed::<sr25519::Public>("Alice"),
                 true,
@@ -103,6 +106,7 @@ pub fn development_chain_spec() -> Result<ChainSpec, String> {
 
 pub fn local_testnet_config(
     initial_authorities_len: usize,
+    initial_smiths_len: usize,
     initial_identities_len: usize,
 ) -> Result<ChainSpec, String> {
     let wasm_binary = WASM_BINARY.ok_or_else(|| "wasm not available".to_string())?;
@@ -118,6 +122,8 @@ pub fn local_testnet_config(
                 wasm_binary,
                 // Initial authorities len
                 initial_authorities_len,
+                // Initial smiths len,
+                initial_smiths_len,
                 // Initial identities len
                 initial_identities_len,
                 // Sudo account
@@ -151,11 +157,18 @@ pub fn local_testnet_config(
 fn gen_genesis_for_local_chain(
     wasm_binary: &[u8],
     initial_authorities_len: usize,
+    initial_smiths_len: usize,
     initial_identities_len: usize,
     root_key: AccountId,
     _enable_println: bool,
 ) -> GenesisConfig {
-    let initial_authorities = (0..initial_authorities_len)
+    assert!(initial_identities_len <= 6);
+    assert!(initial_smiths_len <= initial_identities_len);
+    assert!(initial_authorities_len <= initial_smiths_len);
+
+    let first_ud = 1_000;
+
+    let initial_smiths = (0..initial_smiths_len)
         .map(|i| get_authority_keys_from_seed(NAMES[i]))
         .collect::<Vec<AuthorityKeys>>();
     let initial_identities = (0..initial_identities_len)
@@ -172,9 +185,25 @@ fn gen_genesis_for_local_chain(
             // Add Wasm runtime to storage.
             code: wasm_binary.to_vec(),
         },
+        account: AccountConfig {
+            accounts: initial_identities
+                .iter()
+                .enumerate()
+                .map(|(i, (_, owner_key))| {
+                    (
+                        owner_key.clone(),
+                        GenesisAccountData {
+                            random_id: H256(blake2_256(&(i as u32, owner_key).encode())),
+                            balance: first_ud,
+                            is_identity: true,
+                        },
+                    )
+                })
+                .collect(),
+        },
         authority_discovery: Default::default(),
         authority_members: AuthorityMembersConfig {
-            initial_authorities: initial_authorities
+            initial_authorities: initial_smiths
                 .iter()
                 .enumerate()
                 .map(|(i, keys)| (i as u32 + 1, (keys.0.clone(), true)))
@@ -190,7 +219,7 @@ fn gen_genesis_for_local_chain(
         grandpa: Default::default(),
         im_online: Default::default(),
         session: SessionConfig {
-            keys: initial_authorities
+            keys: initial_smiths
                 .iter()
                 .map(|x| {
                     (
@@ -205,14 +234,28 @@ fn gen_genesis_for_local_chain(
             // Assign network admin rights.
             key: Some(root_key),
         },
+        technical_committee: TechnicalCommitteeConfig {
+            members: initial_smiths
+                .iter()
+                .map(|x| x.0.clone())
+                .collect::<Vec<_>>(),
+            ..Default::default()
+        },
         identity: IdentityConfig {
             identities: initial_identities
                 .iter()
-                .map(|(name, account)| IdtyValue {
+                .enumerate()
+                .map(|(i, (name, owner_key))| common_runtime::GenesisIdty {
+                    index: i as u32 + 1,
                     name: name.clone(),
-                    next_creatable_identity_on: Default::default(),
-                    removable_on: 0,
-                    status: gtest_runtime::IdtyStatus::Validated,
+                    value: IdtyValue {
+                        data: IdtyData::new(),
+                        next_creatable_identity_on: Default::default(),
+                        old_owner_key: None,
+                        owner_key: owner_key.clone(),
+                        removable_on: 0,
+                        status: IdtyStatus::Validated,
+                    },
                 })
                 .collect(),
         },
@@ -230,13 +273,10 @@ fn gen_genesis_for_local_chain(
         },
         cert: CertConfig {
             apply_cert_period_at_genesis: false,
-            certs_by_issuer: clique_wot(
-                initial_identities.len(),
-                gtest_runtime::parameters::ValidityPeriod::get(),
-            ),
+            certs_by_receiver: clique_wot(initial_identities.len()),
         },
         smiths_membership: SmithsMembershipConfig {
-            memberships: (1..=initial_authorities_len)
+            memberships: (1..=initial_smiths_len)
                 .map(|i| {
                     (
                         i as u32,
@@ -249,18 +289,14 @@ fn gen_genesis_for_local_chain(
         },
         smiths_cert: SmithsCertConfig {
             apply_cert_period_at_genesis: false,
-            certs_by_issuer: clique_wot(
-                initial_authorities_len,
-                gtest_runtime::parameters::SmithValidityPeriod::get(),
-            ),
-        },
-        ud_accounts_storage: UdAccountsStorageConfig {
-            ud_accounts: initial_identities.values().cloned().collect(),
+            certs_by_receiver: clique_wot(initial_smiths_len),
         },
         universal_dividend: UniversalDividendConfig {
+            first_reeval: 100,
             first_ud: 1_000,
             initial_monetary_mass: 0,
         },
+        treasury: Default::default(),
     }
 }
 
diff --git a/node/src/command.rs b/node/src/command.rs
index 023b45a71cd111021290749e3afced3e5229b1ef..97cda73c1df4cb31a880342fbb85aa4a1667fbf6 100644
--- a/node/src/command.rs
+++ b/node/src/command.rs
@@ -106,11 +106,11 @@ impl SubstrateCli for Cli {
             #[cfg(feature = "gtest")]
             "gtest_dev" => Box::new(chain_spec::gtest::development_chain_spec()?),
             #[cfg(feature = "gtest")]
-            "gtest_local" => Box::new(chain_spec::gtest::local_testnet_config(2, 3)?),
+            "gtest_local" => Box::new(chain_spec::gtest::local_testnet_config(2, 3, 4)?),
             #[cfg(feature = "gtest")]
-            "gtest_local3" => Box::new(chain_spec::gtest::local_testnet_config(3, 4)?),
+            "gtest_local3" => Box::new(chain_spec::gtest::local_testnet_config(3, 3, 4)?),
             #[cfg(feature = "gtest")]
-            "gtest_local4" => Box::new(chain_spec::gtest::local_testnet_config(4, 5)?),
+            "gtest_local4" => Box::new(chain_spec::gtest::local_testnet_config(4, 4, 5)?),
             #[cfg(feature = "gtest")]
             "gtest" => {
                 unimplemented!()