Prep the chicken: Trim off any excess fat and pat chicken pieces dry. If you use chicken breasts, consider butterflying or lightly pounding them to even thickness for uniform cooking.
Make the marinade: In a bowl, whisk together hoisin, light (and optionally dark) soy sauce, honey, Shaoxing wine, oyster sauce (if using), brown sugar, five-spice powder, minced garlic, grated ginger, sesame oil, maltose/corn syrup (if using), red coloring/paprika (if using), and a pinch of black pepper. The mixture should taste sweet-savoury — slightly stronger than final taste, because it will reduce.
Marinate: Place the chicken in a zip-top bag or shallow dish, pour the marinade over, making sure all pieces are coated. Seal and refrigerate for at least 2 hours — ideally overnight for best flavour infusion. For quicker cooking, 30–60 minutes can work but flavour will be milder. If using a portion of marinade later for glaze, reserve 2–3 tablespoons before adding raw chicken (do not reuse raw marinade without cooking).
Preheat & prepare for cooking:
Oven method (recommended): Preheat oven to 425 °F (220 °C). Line a baking sheet with foil and set a wire rack on top; lightly oil the rack.
Alternatively: Use a grill (medium-high) or broiler (with rack ~6 in / 15 cm from heat), or an air fryer preheated to ~400 °F (200 °C).
Cook / Roast / Grill:
Oven: Place marinated chicken on the rack in a single layer. Roast for 12–15 minutes. Meanwhile, bring the reserved marinade to a boil in a small saucepan; simmer 3–4 minutes until slightly thickened (optionally whisk in 1 tbsp honey). After 12–15 minutes, brush chicken with the boiled glaze, flip each piece, and roast another 6–10 minutes until edges begin to caramelize. For extra gloss and char, finish under broiler 1–2 minutes per side — watch carefully to avoid burning. Use a meat thermometer: chicken should reach internal temp of 165 °F (74 °C). Then rest 5–10 minutes.
Grill: Grill over medium-high heat, basting with boiled glaze, ~4–6 minutes per side until cooked through and slightly charred.
Air Fryer: Cook at 400 °F for about 10–12 minutes, flipping and glazing halfway through.
Glaze & Rest: After cooking, brush a final layer of warm glaze for shine. Let the chicken rest 5–10 minutes so juices redistribute and glaze sets.
Slice & Serve: Slice against the grain into ½-inch pieces. Garnish with sliced green onions and toasted sesame seeds (if using). Serve hot.