Start by mixing the chicken pieces with the grated onion, minced garlic, salt, and pepper in a bowl. The onion and garlic give the chicken an incredible depth of flavor. Cover the bowl with plastic wrap and refrigerate it for 4 hours or overnight to allow the chicken to soak in all the goodness.
Before you begin frying, heat the oil in a deep fryer or large saucepan. Ideally, the oil temperature should be around 340°F (171°C). This ensures the chicken cooks evenly during the first fry.
While the oil heats, prepare the batter. Whisk the cornstarch, self-rising flour, sugar, pepper, and salt in a bowl. Gradually add the very cold water, stirring to create a smooth batter. Remove the chicken from the marinade, letting any excess drip off, and coat the pieces thoroughly in the batter. Discard the remaining marinade.
Carefully lower the battered chicken into the oil using tongs. Fry in small batches for about 4 minutes or until the chicken starts to turn pale golden. Transfer the chicken to a wire rack to cool slightly.
Increase the oil temperature to 375°F (190°C). This higher temperature helps lock in the juices while making the exterior ultra-crispy. Fry the chicken again in batches for 3-4 minutes until it’s golden brown. Remove and place on a wire rack to drain.