diff --git a/app/boards/shields/soyuz/Kconfig.defconfig b/app/boards/shields/soyuz/Kconfig.defconfig
new file mode 100644
index 00000000..90f70009
--- /dev/null
+++ b/app/boards/shields/soyuz/Kconfig.defconfig
@@ -0,0 +1,9 @@
+# Copyright (c) 2020 The ZMK Contributors
+# SPDX-License-Identifier: MIT
+
+if SHIELD_SOYUZ
+
+config ZMK_KEYBOARD_NAME
+	default "soyuz"
+
+endif
diff --git a/app/boards/shields/soyuz/Kconfig.shield b/app/boards/shields/soyuz/Kconfig.shield
new file mode 100644
index 00000000..7cb59573
--- /dev/null
+++ b/app/boards/shields/soyuz/Kconfig.shield
@@ -0,0 +1,5 @@
+# Copyright (c) 2020 The ZMK Contributors
+# SPDX-License-Identifier: MIT
+
+config SHIELD_SOYUZ
+	def_bool $(shields_list_contains,soyuz)
diff --git a/app/boards/shields/soyuz/soyuz.conf b/app/boards/shields/soyuz/soyuz.conf
new file mode 100644
index 00000000..e69de29b
diff --git a/app/boards/shields/soyuz/soyuz.keymap b/app/boards/shields/soyuz/soyuz.keymap
new file mode 100644
index 00000000..317d089a
--- /dev/null
+++ b/app/boards/shields/soyuz/soyuz.keymap
@@ -0,0 +1,25 @@
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/keys.h>
+
+/ {
+    keymap {
+        compatible = "zmk,keymap";
+
+        default_layer {
+//  -------------------------------------
+//  | NUMLOCK     | CAPSLOCK | * | BSPC |
+//  | 7           | 8        | 9 | -    |
+//  | 4           | 5        | 6 | +    |
+//  | 1           | 2        | 3 | =    |
+//  | PRINTSCREEN | 0        | . | =    |
+            bindings = <
+&kp LNLCK       &kp CAPS &kp STAR &kp BSPC
+&kp N7          &kp N8   &kp N9   &kp MINUS
+&kp N4          &kp N5   &kp N6   &kp PLUS
+&kp N1          &kp N2   &kp N3   &kp EQUAL
+&kp PRINTSCREEN &kp N0   &kp DOT  &kp RET
+            >;
+
+        };
+    };
+};
diff --git a/app/boards/shields/soyuz/soyuz.overlay b/app/boards/shields/soyuz/soyuz.overlay
new file mode 100644
index 00000000..fb4c4f85
--- /dev/null
+++ b/app/boards/shields/soyuz/soyuz.overlay
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2020 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include <dt-bindings/zmk/matrix_transform.h>
+
+/ {
+	chosen {
+		zmk,kscan = &kscan0;
+		zmk,matrix_transform = &default_transform;
+	};
+	
+	kscan0: kscan {
+		compatible = "zmk,kscan-gpio-matrix";
+		label = "KSCAN";
+
+		diode-direction = "col2row";
+		row-gpios
+			= <&pro_micro 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+			, <&pro_micro 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+			, <&pro_micro 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+			, <&pro_micro 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+			, <&pro_micro 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+			;
+		col-gpios
+			= <&pro_micro 21 GPIO_ACTIVE_HIGH>
+			, <&pro_micro 14 GPIO_ACTIVE_HIGH>
+			, <&pro_micro 6 GPIO_ACTIVE_HIGH>
+			, <&pro_micro 9 GPIO_ACTIVE_HIGH>
+			;
+	};
+
+	default_transform: keymap_transform_0 {
+		compatible = "zmk,matrix-transform";
+		columns = <4>;
+		rows = <5>;
+        map = <
+RC(0,0) RC(0,1) RC(0,2) RC(0,3)
+RC(1,0) RC(1,1) RC(1,2) RC(1,3)
+RC(2,0) RC(2,1) RC(2,2) RC(2,3)
+RC(3,0) RC(3,1) RC(3,2) RC(3,3)
+RC(4,0) RC(4,1) RC(4,2) RC(4,3)
+        >;
+	};
+};
diff --git a/app/boards/shields/soyuz/soyuz.zmk.yml b/app/boards/shields/soyuz/soyuz.zmk.yml
new file mode 100644
index 00000000..2944f8ca
--- /dev/null
+++ b/app/boards/shields/soyuz/soyuz.zmk.yml
@@ -0,0 +1,8 @@
+file_format: "1"
+id: soyuz
+name: soyuz by ai03
+type: shield
+url: https://github.com/ai03-2725/Soyuz
+requires: [nice_nano]
+features:
+  - keys