diff --git a/pkg/morph/client/netmap/config.go b/pkg/morph/client/netmap/config.go
index 782148e56..b2e902256 100644
--- a/pkg/morph/client/netmap/config.go
+++ b/pkg/morph/client/netmap/config.go
@@ -22,6 +22,7 @@ const (
 	irCandidateFeeConfig          = "InnerRingCandidateFee"
 	withdrawFeeConfig             = "WithdrawFee"
 	homomorphicHashingDisabledKey = "HomomorphicHashingDisabled"
+	maintenanceModeAllowedConfig  = "MaintenanceModeAllowed"
 )
 
 // MaxObjectSize receives max object size configuration
@@ -141,6 +142,15 @@ func (c *Client) WithdrawFee() (uint64, error) {
 	return fee, nil
 }
 
+// MaintenanceModeAllowed reads admission of "maintenance" state from the
+// NeoFS network configuration stored in the Sidechain. The admission means
+// that storage nodes are allowed to switch their state to "maintenance".
+//
+// By default, maintenance state is disallowed.
+func (c *Client) MaintenanceModeAllowed() (bool, error) {
+	return c.readBoolConfig(maintenanceModeAllowedConfig)
+}
+
 func (c *Client) readUInt64Config(key string) (uint64, error) {
 	v, err := c.config([]byte(key), IntegerAssert)
 	if err != nil {
@@ -246,6 +256,8 @@ type NetworkConfiguration struct {
 
 	HomomorphicHashingDisabled bool
 
+	MaintenanceModeAllowed bool
+
 	Raw []RawNetworkParameter
 }
 
@@ -312,6 +324,8 @@ func (c *Client) ReadNetworkConfiguration() (NetworkConfiguration, error) {
 			res.WithdrawalFee = bytesToUint64(value)
 		case homomorphicHashingDisabledKey:
 			res.HomomorphicHashingDisabled = bytesToBool(value)
+		case maintenanceModeAllowedConfig:
+			res.MaintenanceModeAllowed = bytesToBool(value)
 		}
 
 		return nil