diff --git a/crates/configuration/src/shared/node.rs b/crates/configuration/src/shared/node.rs
index 9b11d2709222ae90287996521859e0a9be78d4ad..2240a062396e5137979e2d1e8ab16d97426c3815 100644
--- a/crates/configuration/src/shared/node.rs
+++ b/crates/configuration/src/shared/node.rs
@@ -67,7 +67,7 @@ pub struct NodeConfig {
     #[serde(alias = "invulnerable", default = "default_as_true")]
     pub(crate) is_invulnerable: bool,
     #[serde(alias = "bootnode")]
-    pub(crate) is_bootnode: bool,
+    pub(crate) is_bootnode: Option<bool>,
     #[serde(alias = "balance")]
     #[serde(default)]
     initial_balance: U128,
@@ -191,7 +191,7 @@ impl NodeConfig {
 
     /// Whether the node is a bootnode.
     pub fn is_bootnode(&self) -> bool {
-        self.is_bootnode
+        self.is_bootnode.is_some()
     }
 
     /// Node initial balance present in genesis.
@@ -268,7 +268,7 @@ impl Default for NodeConfigBuilder<Initial> {
                 args: vec![],
                 is_validator: true,
                 is_invulnerable: true,
-                is_bootnode: false,
+                is_bootnode: Some(false),
                 initial_balance: 2_000_000_000_000.into(),
                 env: vec![],
                 bootnodes_addresses: vec![],
@@ -434,7 +434,7 @@ impl NodeConfigBuilder<Buildable> {
     pub fn bootnode(self, choice: bool) -> Self {
         Self::transition(
             NodeConfig {
-                is_bootnode: choice,
+                is_bootnode: Some(choice),
                 ..self.config
             },
             self.validation_context,
diff --git a/crates/examples/examples/0001-simple.toml b/crates/examples/examples/0001-simple.toml
index 46168b41a35618134b857d912d0bb00968f2a2fd..f6c7192c4c9a77d82f3071beebedbea21b25c701 100644
--- a/crates/examples/examples/0001-simple.toml
+++ b/crates/examples/examples/0001-simple.toml
@@ -10,12 +10,10 @@ chain = "rococo-local"
   [[relaychain.nodes]]
   name = "alice"
   args = [ "--alice", "-lruntime=debug,parachain=trace" ]
-  is_bootnode = true
 
   [[relaychain.nodes]]
   name = "bob"
   args = [ "--bob", "-lruntime=debug,parachain=trace" ]
-  is_bootnode = true
 
 [[parachains]]
 id = 100
diff --git a/crates/orchestrator/src/lib.rs b/crates/orchestrator/src/lib.rs
index a01c8b207984a7ffb18ac4a459a2cb1611387143..661ca67c8690720f2f2221774b00ead083ec2480 100644
--- a/crates/orchestrator/src/lib.rs
+++ b/crates/orchestrator/src/lib.rs
@@ -190,7 +190,7 @@ where
         let mut bootnodes = vec![];
         let mut relaynodes = vec![];
         network_spec.relaychain.nodes.iter().for_each(|node| {
-            if node.is_bootnode {
+            if node.is_bootnode.is_some() {
                 bootnodes.push(node)
             } else {
                 relaynodes.push(node)
diff --git a/crates/orchestrator/src/network_spec/node.rs b/crates/orchestrator/src/network_spec/node.rs
index 15d9580b250590478cb61b354d45f35cdab3452f..52127ef5f93e208018d83a42625cbf644ec1cdce 100644
--- a/crates/orchestrator/src/network_spec/node.rs
+++ b/crates/orchestrator/src/network_spec/node.rs
@@ -43,7 +43,7 @@ pub struct NodeSpec {
     pub(crate) is_invulnerable: bool,
 
     /// Whether the node is a bootnode.
-    pub(crate) is_bootnode: bool,
+    pub(crate) is_bootnode: Option<bool>,
 
     /// Node initial balance present in genesis.
     pub(crate) initial_balance: u128,
@@ -124,7 +124,7 @@ impl NodeSpec {
             args,
             is_validator: node_config.is_validator(),
             is_invulnerable: node_config.is_invulnerable(),
-            is_bootnode: node_config.is_bootnode(),
+            is_bootnode: Some(node_config.is_bootnode()),
             initial_balance: node_config.initial_balance(),
             env: node_config.env().into_iter().cloned().collect(),
             bootnodes_addresses: node_config
@@ -200,7 +200,7 @@ impl NodeSpec {
             args,
             is_validator: options.is_validator,
             is_invulnerable: false,
-            is_bootnode: false,
+            is_bootnode: Some(false),
             initial_balance: 0,
             env: options.env,
             bootnodes_addresses: vec![],