diff --git a/changelog.md b/changelog.md
index d53091b03c..2c8fa3b7e4 100644
--- a/changelog.md
+++ b/changelog.md
@@ -11,6 +11,8 @@
 ### Bug Fixes
 
 - [#4474](https://github.com/ignite/cli/pull/4474) Fix issue in `build --release` command
+- [#4479](https://github.com/ignite/cli/pull/4479) Scaffold an `uint64 type crashs Ignite
+- [#4483](https://github.com/ignite/cli/pull/4483) Fix default flag parser for apps
 
 ## [`v28.7.0`](https://github.com/ignite/cli/releases/tag/v28.7.0)
 
diff --git a/ignite/services/plugin/flag.go b/ignite/services/plugin/flag.go
index 84cebd5f76..86faac02be 100644
--- a/ignite/services/plugin/flag.go
+++ b/ignite/services/plugin/flag.go
@@ -148,15 +148,5 @@ func flagValue(flag *Flag) string {
 	if flag.Value != "" {
 		return flag.Value
 	}
-	if flag.DefaultValue != "" {
-		return flag.DefaultValue
-	}
-	if flag.Type == FlagTypeBool ||
-		flag.Type == FlagTypeInt ||
-		flag.Type == FlagTypeInt64 ||
-		flag.Type == FlagTypeUint ||
-		flag.Type == FlagTypeUint64 {
-		return "0"
-	}
-	return ""
+	return flag.DefaultValue
 }
diff --git a/ignite/services/plugin/flag_test.go b/ignite/services/plugin/flag_test.go
index bdce8c73ac..df78f161a1 100644
--- a/ignite/services/plugin/flag_test.go
+++ b/ignite/services/plugin/flag_test.go
@@ -93,7 +93,7 @@ func TestFlags_GetBool(t *testing.T) {
 			name: "flag without value and default value",
 			key:  flagBool3,
 			f:    testFlags,
-			want: false,
+			err:  errors.New("strconv.ParseBool: parsing \"\": invalid syntax"),
 		},
 		{
 			name: "invalid flag type",
@@ -158,7 +158,7 @@ func TestFlags_GetInt(t *testing.T) {
 			name: "flag without value and default value",
 			key:  flagInt3,
 			f:    testFlags,
-			want: 0,
+			err:  errors.New("strconv.Atoi: parsing \"\": invalid syntax"),
 		},
 		{
 			name: "invalid flag type",
@@ -182,7 +182,7 @@ func TestFlags_GetInt(t *testing.T) {
 			name: "wrong flag value without default or value",
 			key:  flagWrongType3,
 			f:    testFlags,
-			want: 0,
+			err:  errors.New("strconv.Atoi: parsing \"\": invalid syntax"),
 		},
 	}
 	for _, tt := range tests {
@@ -223,7 +223,7 @@ func TestFlags_GetInt64(t *testing.T) {
 			name: "flag without value and default value",
 			key:  flagInt643,
 			f:    testFlags,
-			want: 0,
+			err:  errors.New("strconv.ParseInt: parsing \"\": invalid syntax"),
 		},
 		{
 			name: "invalid flag type",
@@ -400,7 +400,7 @@ func TestFlags_GetUint(t *testing.T) {
 			name: "flag without value and default value",
 			key:  flagUint3,
 			f:    testFlags,
-			want: 0,
+			err:  errors.New("strconv.ParseUint: parsing \"\": invalid syntax"),
 		},
 		{
 			name: "invalid flag type",
@@ -459,7 +459,7 @@ func TestFlags_GetUint64(t *testing.T) {
 			name: "flag without value and default value",
 			key:  flagUint643,
 			f:    testFlags,
-			want: 0,
+			err:  errors.New("strconv.ParseUint: parsing \"\": invalid syntax"),
 		},
 		{
 			name: "invalid flag type",
@@ -570,6 +570,14 @@ func Test_flagValue(t *testing.T) {
 			flag: &Flag{Name: flagString1},
 			want: "",
 		},
+<<<<<<< HEAD
+=======
+		{
+			name: "number without value and default value",
+			flag: &Flag{Name: flagUint642, Type: FlagTypeUint64},
+			want: "",
+		},
+>>>>>>> 7f914230 (fix: default flag parser for apps (#4483))
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
diff --git a/ignite/services/plugin/grpc/v1/interface_flag.go b/ignite/services/plugin/grpc/v1/interface_flag.go
index 8ca199bf84..1d7bd19334 100644
--- a/ignite/services/plugin/grpc/v1/interface_flag.go
+++ b/ignite/services/plugin/grpc/v1/interface_flag.go
@@ -43,9 +43,6 @@ func (f *Flag) ExportToFlagSet(fs *pflag.FlagSet) error {
 		if f.DefaultValue == "" {
 			f.DefaultValue = "0"
 		}
-		if f.Value == "" {
-			f.Value = "0"
-		}
 	}
 
 	switch f.Type {
@@ -56,7 +53,15 @@ func (f *Flag) ExportToFlagSet(fs *pflag.FlagSet) error {
 		}
 
 		fs.BoolP(f.Name, f.Shorthand, v, f.Usage)
+<<<<<<< HEAD
 		fs.Set(f.Name, f.Value)
+=======
+		if f.Value != "" {
+			if err := fs.Set(f.Name, f.Value); err != nil {
+				return newDefaultFlagValueError(cobraFlagTypeBool, f.Value)
+			}
+		}
+>>>>>>> 7f914230 (fix: default flag parser for apps (#4483))
 	case Flag_TYPE_FLAG_INT:
 		v, err := strconv.Atoi(f.DefaultValue)
 		if err != nil {
@@ -64,7 +69,15 @@ func (f *Flag) ExportToFlagSet(fs *pflag.FlagSet) error {
 		}
 
 		fs.IntP(f.Name, f.Shorthand, v, f.Usage)
+<<<<<<< HEAD
 		fs.Set(f.Name, f.Value)
+=======
+		if f.Value != "" {
+			if err := fs.Set(f.Name, f.Value); err != nil {
+				return newDefaultFlagValueError(cobraFlagTypeInt, f.Value)
+			}
+		}
+>>>>>>> 7f914230 (fix: default flag parser for apps (#4483))
 	case Flag_TYPE_FLAG_UINT:
 		v, err := strconv.ParseUint(f.DefaultValue, 10, 64)
 		if err != nil {
@@ -72,7 +85,15 @@ func (f *Flag) ExportToFlagSet(fs *pflag.FlagSet) error {
 		}
 
 		fs.UintP(f.Name, f.Shorthand, uint(v), f.Usage)
+<<<<<<< HEAD
 		fs.Set(f.Name, f.Value)
+=======
+		if f.Value != "" {
+			if err := fs.Set(f.Name, f.Value); err != nil {
+				return newDefaultFlagValueError(cobraFlagTypeUint, f.Value)
+			}
+		}
+>>>>>>> 7f914230 (fix: default flag parser for apps (#4483))
 	case Flag_TYPE_FLAG_INT64:
 		v, err := strconv.ParseInt(f.DefaultValue, 10, 64)
 		if err != nil {
@@ -80,14 +101,23 @@ func (f *Flag) ExportToFlagSet(fs *pflag.FlagSet) error {
 		}
 
 		fs.Int64P(f.Name, f.Shorthand, v, f.Usage)
+<<<<<<< HEAD
 		fs.Set(f.Name, f.Value)
+=======
+		if f.Value != "" {
+			if err := fs.Set(f.Name, f.Value); err != nil {
+				return newDefaultFlagValueError(cobraFlagTypeInt64, f.Value)
+			}
+		}
+>>>>>>> 7f914230 (fix: default flag parser for apps (#4483))
 	case Flag_TYPE_FLAG_UINT64:
 		v, err := strconv.ParseUint(f.DefaultValue, 10, 64)
 		if err != nil {
-			return newDefaultFlagValueError(cobraFlagTypeInt64, f.DefaultValue)
+			return newDefaultFlagValueError(cobraFlagTypeUint64, f.DefaultValue)
 		}
 
 		fs.Uint64P(f.Name, f.Shorthand, v, f.Usage)
+<<<<<<< HEAD
 		fs.Set(f.Name, f.Value)
 	case Flag_TYPE_FLAG_STRING_SLICE:
 		s := strings.Trim(f.DefaultValue, "[]")
@@ -96,6 +126,28 @@ func (f *Flag) ExportToFlagSet(fs *pflag.FlagSet) error {
 	case Flag_TYPE_FLAG_STRING_UNSPECIFIED:
 		fs.StringP(f.Name, f.Shorthand, f.DefaultValue, f.Usage)
 		fs.Set(f.Name, f.Value)
+=======
+		if f.Value != "" {
+			if err := fs.Set(f.Name, f.Value); err != nil {
+				return newDefaultFlagValueError(cobraFlagTypeUint64, f.Value)
+			}
+		}
+	case Flag_TYPE_FLAG_STRING_SLICE:
+		s := strings.Trim(f.DefaultValue, "[]")
+		fs.StringSliceP(f.Name, f.Shorthand, strings.Fields(s), f.Usage)
+		if f.Value != "" {
+			if err := fs.Set(f.Name, strings.Trim(f.Value, "[]")); err != nil {
+				return newDefaultFlagValueError(cobraFlagTypeStringSlice, f.Value)
+			}
+		}
+	case Flag_TYPE_FLAG_STRING_UNSPECIFIED:
+		fs.StringP(f.Name, f.Shorthand, f.DefaultValue, f.Usage)
+		if f.Value != "" {
+			if err := fs.Set(f.Name, f.Value); err != nil {
+				return newDefaultFlagValueError(cobraFlagTypeString, f.Value)
+			}
+		}
+>>>>>>> 7f914230 (fix: default flag parser for apps (#4483))
 	}
 	return nil
 }