Heh Cho
The Hainanese have their own version of the five-spice meat roll, but they call it heh cho — and it is mostly prawn, not pork.
While the Hokkien and Teochew make ngoh hiang (Recipe 4) with mostly pork and a little prawn, the Hainanese tradition leans heavily on prawn — sometimes 60% prawn to 40% pork, sometimes 70/30. The rolls are smaller, more delicate, with a more pronounced prawn sweetness and lighter texture.
Heh cho (虾炸 or 虾枣 in different dialect spellings) means "fried prawn" or "prawn date" — referring to the date-like elongated shape. In Hainan island, this dish is part of the traditional banquet repertoire. The Hainanese diaspora brought it to Singapore where it became a staple at:
- Hainanese-owned Chinese New Year feasts
- Wedding banquet hot starter platters
- Heritage Hainanese restaurants (Yet Con — reportedly closed, Chin Chin Eating House, British Hainan)
- Some economy rice stalls as a premium side
Today the dish is fading — most younger eaters don't distinguish heh cho from ngoh hiang. That is exactly why it belongs in this book.
🛒Ingredients
Prawn-forward filling, beancurd-skin wrap, sweet chilli-plum dip. The prawn does the talking.
For the Filling
| Fresh prawns, peeled, deveined | 350 g | The hero ingredient. Sea prawns from wet market. Roughly chopped — not pasted. |
| Pork belly, finely minced | 200 g | 70/30 fat-to-lean. Hainanese tradition keeps pork as a supporting role. |
| Fresh water chestnuts | 100 g | Peeled, finely diced. Heritage crunch. |
| Spring onions | 2 stalks | Finely chopped. |
| Garlic | 4 cloves | Minced. |
| Coriander stems | 1 tbsp | Finely chopped. Heritage Hainanese herb signature. |
| Egg | 1 | Beaten. |
Hainanese Seasoning
| Light soy sauce | 1.5 tbsp | |
| Oyster sauce | 1 tsp | |
| Shaoxing wine | 1 tbsp | |
| Sesame oil | 1 tbsp | |
| Sugar | 2 tsp | |
| Salt | 1 tsp | |
| Ground white pepper | 1 tsp | |
| Five-spice powder | ½ tsp | Less than ngoh hiang — Hainanese style is lighter on five-spice. |
| Sole fish powder (ti po) | 1 tsp | |
| Ginger juice | 1 tsp | |
| Tapioca flour | 2 tbsp | |
| Rice flour | 1 tbsp |
🌶️Shifu's Lift
choose one path — see "Shifu's Secret" chapter for the philosophy- Old-school path: ¼ tsp MSG in seasoning
- Modern hawker path: ½ tsp chicken stock powder
- Heritage purist path: Already covered with sole fish powder
For Wrapping & Frying
| Dried beancurd skin sheets | 14–16 rectangles | Cut into 14 cm × 12 cm. |
| Beaten egg white | for sealing | |
| Cornflour | for dusting | |
| Neutral oil | for deep-frying |
Sweet Chilli-Plum Dip traditional Hainanese pairing
| Lingham chilli sauce | 4 tbsp | |
| Plum sauce | 1 tbsp | The Hainanese touch. |
| White vinegar | 1 tsp | |
| Toasted sesame seeds | 1 tsp |
👨🍳Method
Six stages. Build, prep, roll, steam, fry, serve. Hainanese precision: smaller, neater, more uniform than ngoh hiang.
Build the Filling
Roughly chop prawns — do not paste them in a food processor. Hainanese tradition wants to see prawn pieces, not prawn paste. Aim for 5 mm-ish chunks.
In a large bowl, combine minced pork belly + chopped prawns + all seasoning ingredients (except water chestnuts and herbs). Mix in one direction with chopsticks for 5 minutes until the mixture turns slightly pale and tacky. This is the same protein-development technique as ngoh hiang.
Test the throw: pinch a small ball, throw it back into the bowl. It should slap and hold, not splatter.
Now fold in water chestnuts + spring onions + coriander stems + beaten egg. Gentle folds only — water chestnuts release water if over-mixed.
Cover and rest in fridge 30 minutes.
Prep Beancurd Skin
Dampen a clean cloth. Wipe each beancurd sheet on both sides to remove excess salt and soften. Cut to 14 cm × 12 cm rectangles.
Roll
Per roll:
- Lay a beancurd rectangle on a board, long side facing you
- Place ~2 heaping tablespoons of filling along the bottom edge in a 12 cm sausage shape
- Fold both short sides inward over the filling
- Roll up tightly from bottom to top
- Seal final edge with a dab of beaten egg white
- Place seam-side down on a lightly oiled plate
Hainanese rolls are smaller and more uniform than Hokkien/Teochew ngoh hiang — 12 cm is the standard length.
Steam
Set up a steamer with rapid boiling water. Place rolls seam-side down with 2 cm gaps. Steam medium heat 10 minutes. Hainanese rolls steam shorter than Hokkien/Teochew because they're smaller and have more delicate prawn that overcooks.
Cool completely on wire rack. Cooling is non-negotiable — frying immediately = oil splatter and skin tears.
Pause point: refrigerate up to 3 days, freeze up to 3 months at this stage.
Fry
Heat oil to 170°C.
Lightly dust each roll with cornflour. Fry 2–3 rolls at a time, 2 minutes, turning once.
For extra-crispy heritage finish: double-fry. Pull rolls at 1.5 minutes (par-fry, hold). Re-fry to order at 180°C for 45 seconds. The skin shatters when bitten.
Drain on a wire rack. Cool 2 minutes. Cut on a sharp diagonal into 2 cm pieces with kitchen scissors.
Serve
Plate the heh cho on a small platter, sliced sides up to show the prawn-flecked filling. Garnish with coriander leaves and cucumber slices on the side. Sweet chilli-plum dip in a small bowl.
Eat hot — the prawn flavour fades within 5 minutes of serving.
🎯The Three Tips
Heritage. Master's. Mistake.
🏛 Heritage Note
The Plum Sauce in the Dip
The plum sauce in the dipping is what distinguishes Hainanese heh cho from Hokkien/Teochew ngoh hiang dipping (which is sweet chilli + dark soy). The plum sauce adds a fruity, slightly sour note that complements the prawn sweetness.
If you cannot find ready-made plum sauce, substitute: 2 tbsp hoisin + 1 tsp lemon juice + 1 tsp vinegar + 1 tsp sugar.
👨🍳 Master's Tip
Don't Paste the Prawns
The single biggest difference between ngoh hiang and heh cho is texture. Heh cho should have discernible chunks of prawn when you bite into it — that pop of fresh sea-sweetness.
If you paste the prawns in a food processor (the way some commercial fishball makers do), you lose the prawn pop. The filling becomes a uniform paste that tastes more like fishball than prawn. Always chop prawns by hand, leaving 5 mm chunks.
The other technique: add the egg last. The egg is for binding only — adding too early and over-mixing causes the filling to turn into a wet glue.
⚠ Common Mistake
Soggy or Burst Rolls
Three failures:
- Soggy rolls = beancurd skin too wet (over-soaked) or cooled with steam trapped. Fix: damp wipe only, never soak. Cool on wire rack with airflow.
- Burst rolls during frying = oil too hot or rolls not sealed properly. Fix: 170°C strictly, use egg white seal, dust with cornflour before frying.
- Watery filling = water chestnuts over-mixed. Fix: dice water chestnuts not too fine, fold in last, do not over-mix.
📈 Scaling for Hawker Service
For an economy rice or zi char stall offering heh cho
- Premium positioning: Heh cho is a higher-priced side than fishball or fried egg — sells SGD 1.50–2.50 per piece, vs SGD 0.80 for plain meat dishes.
- Batch prep: 100–150 rolls steamed Sunday/Monday, frozen, fried to order daily.
- Double-fry advantage: Holds crispness for 30 minutes after frying — useful for buffet-style economy rice display.
- Cost (Singapore 2026): Per roll ~SGD 0.55 (prawn 0.30 + pork 0.10 + skin/seasoning 0.15). Sells SGD 1.80–2.50 per piece. Margin: 65–70%.
Heh cho is the Hainanese cousin of ngoh hiang — quieter, more delicate, less famous. The prawn does the talking. The pork is just there to keep it grounded. Heritage food is full of these quieter cousins. Let us not let them disappear.