The white liquid goes into a pan over a low flame and for a moment nothing happens. Then the rim turns matte and thickens. You push that set edge toward the middle and fresh liquid runs out to take its place. A few minutes of slow, one-way pushing and folding later, the pan holds broad, glossy sheets of soft white curd. They steam gently and hold their shape on the spatula without weeping. This is Daliang stir-fried milk, from the Shunde district of Guangdong. Milk and egg white are set into tender curds, seasoned only with salt and white pepper, and folded through with pink prawns and green chives. It is savory, smooth, clean-tasting and full of milk, and nothing in it is a dessert.
Milk From the Water Buffalo of Shunde
Shunde is river-delta country, a land of fish and rice. From the Ming and Qing dynasties onward, many households there kept water buffalo and sold the beef. The buffalo also gave milk, and that milk is different from what comes out of a supermarket carton. It holds about 8 percent butterfat, roughly twice that of ordinary milk, with less water and a deeper milky smell. Milk that rich sets easily, and Shunde built a whole family of dishes on it.
Chinese cooks file stir-fried milk under the soft-fry method, the technique of turning a liquid into a half-set hot dish, and it has long been a textbook example of that method. Teachers sum up the goal in four characters, 凝而不瀉: set, but never weeping. The curds should be white and smooth, firm enough to lift, and never cooked so hard that water seeps out onto the plate. Shunde cooks who worked abroad carried the dish with them. It became one of the plates used to show people outside China what Chinese cooking can do.
From milk skin to a pan of curds
The Shunde library, quoting a Chinese culinary encyclopedia, places the dish's beginnings in the early years of the Republic. At first cooks made it by frying the skin that forms on milk. That was slow and wasteful work, and the dish stayed on rich people's tables. The usual story gives the change to Long Hua, a noted Fengcheng cook of the 1940s. He thickened buffalo milk with cornstarch and egg white and served it with prawns, diced chicken liver, fried canarium nuts and minced ham. A pan of milk could now set quickly and reliably, and the dish spread to ordinary restaurants. Who first stir-fried milk, and in exactly what form, is not settled.
Guangzhou Daily quotes an old Guangzhou folk verse that already praised the cooks of the town:
鮮酪炒来味倍香,大良巧手早名揚。嘗来一簋鮮留頬,軟滑清甜見所長。 Fresh curd, stir-fried, smells twice as sweet; the deft hands of Daliang won their name long ago. Taste one bowl and the freshness stays on the cheek; soft, smooth, clear and sweet, that is where its gift lies.
In Mandarin the dish is 大良炒牛奶, Daliang chao niunai, "Daliang stir-fried milk." Daliang is the old town at the heart of Shunde, and Shunde cooking also goes by the name Fengcheng cooking. In Hong Kong and Macau menus write it 炒鮮奶, "stir-fried fresh milk." Hong Kong banquet kitchens serve one version with spiny lobster under the name 白雪尋龍, "snow searching for the dragon."
Its neighbours in the buffalo-milk family
Shunde's buffalo milk also goes into double-skin milk (双皮奶). For that dessert, a skin is formed on the milk, then egg white and sugar are mixed in and the bowl is steamed. Fried milk (炸牛奶) uses the same milk, steamed into a firm block, cut, coated and deep-fried. Jinbang milk (金榜牛乳) belongs to the same family. Stir-fried milk is the savory one, made in a pan. Yogurt stir-fries go by a similar name but use a different technique altogether. You can find more of the country's cooking on the China page.
Ingredients (serves 4)

This is a Hong Kong home version of the Shunde dish. It uses whole cow's milk and finishes with Chinese chives. The milk is split into two parts, and so is the oil. Mark the split before you start. Sekai Gohan has not cooked this recipe in its own kitchen; the amounts, times and temperatures follow the published home version it is based on.
This dish contains milk, egg and crustacean shellfish (prawns). Raw prawns must stay apart from anything cooked: use a separate cutting board and knife for them, and wash your hands after handling them.
Equipment
- Two mixing bowls and a small bowl
- Whisk
- Fine-mesh sieve
- Non-stick wok or frying pan
- Silicone spatula
- Probe food thermometer
- Chef's knife and a cutting board kept for raw food
- Kitchen paper and long kitchen tongs
- Measuring jug and measuring spoons
- A clean plate for the cooked prawns and a warmed serving plate
Choosing and Substituting
Whole milk is the one thing you cannot swap. Milks differ in fat and solids, and the amount of starch needed to set them changes with them. Reduced-fat or adjusted milk upsets the balance the measure above is built on. Buffalo milk is the traditional choice and makes a richer curd, but it sets with much less starch than cow's milk, so it needs its own measure. With an ordinary carton of pasteurized whole milk, use it cold, straight from the fridge.
Buy cornstarch, the fine white corn starch, and keep it separate in your mind from potato starch. The measure here is set for cornstarch. Buy the prawns raw and peeled. Pre-cooked prawns cannot take the stir-fry in step 7, and any salt, wine or starch coating will show up in the milk. Chinese chives are the flat-leaved kind sold in Asian grocers. They should be green right to the tips, with no yellowing. White pepper keeps the plate white, while black pepper leaves dark specks. For oil, choose a neutral one with little smell. Lard and sesame oil add flavors this version does not use.
The amount of starch varies a great deal from kitchen to kitchen. Rich buffalo milk needs only a little, and cow's milk needs more. With whole milk, an exact scant 1 oz (25 g) gives a curd that sets soft and stays glossy. Weigh it on a scale rather than guessing with a spoon.
Method
All the cold work comes first. Cut the prawns and chives, then mix the milk and strain it so it waits by the stove. After that the pan does two jobs back to back: medium heat for the prawns, low heat for the milk. The drop in heat between them decides the texture. Before the oil goes in, have the thermometer, a clean plate for the cooked prawns and a warmed serving plate within reach.
Never wipe a hot pan with kitchen paper held in your fingers. Fold the paper and hold it with long tongs. Do not heat the oil until it smokes. Keep the board, knife and plate used for raw prawns away from everything cooked.
When It Goes Wrong
Most failures with this dish come from too much heat or the wrong stirring.
| What you see | Why | What to do |
|---|---|---|
| Grainy curds with water around them | The heat was too high when the milk went in | Next time turn the heat to low before pouring and keep the flame small |
| Lumps or a gritty layer in the curd | The starch was not fully dissolved, or it met the egg whites first | Dissolve the starch in cold milk until smooth and strain the mixture every time |
| Small, broken curds instead of sheets | The spatula went back and forth | Push in one direction and fold. Let the set layers stack up |
| Oil poured over the middle of the food | Oil belongs beside the food, not on it | Add oil only around the edge of the pan |
| Runny white liquid still in the pan | The curd is undercooked | Keep folding on low heat until nothing flows, then check for 167°F (75°C) for 30 seconds |
| The milk stays thin and will not set | A flame that is too weak is also a problem | Keep the flame low, keep pushing in one direction and fold until no runny white remains, then check for 167°F (75°C) for 30 seconds |
Serving and Variations
Serve stir-fried milk the moment it leaves the pan, on a warmed plate, as part of a Cantonese meal. It holds its soft, glossy texture best while hot, and the curds firm up as they cool. Chopsticks or a spoon both work. The curds should lift cleanly and leave the plate dry.
Ways to change it
- With buffalo milk. This is the traditional base. It gives a richer, more fragrant curd that sets with much less starch. Traditional kitchens boil the buffalo milk and let it cool before mixing. The amounts in this recipe are set for whole cow's milk and do not carry over to buffalo milk.
- Restaurant style. Swap the chives for asparagus, cook it with the prawns, and scatter fried canarium nuts and a little minced Jinhua ham over the plate. The nuts add crunch and the ham adds a salty, cured depth against the milk.
- Older Shunde garnishes. Diced chicken liver or ham, with fried canarium nuts or a scattering of coriander, turn the plate more savory and less purely milky.
- Hong Kong banquet style. A spiny lobster set beside the white curd makes the "snow searching for the dragon" plate. Dried scallop, fresh scallops or crab meat folded through make a richer version for a feast.
Frequently Asked Questions
Do I really need a thermometer?
Yes. Restaurant cooks often take the curd off at about "nine-tenths done," judging it by eye, but that is a cook's judgment of texture, not a safe end point for egg white and prawns. At home, cook until no runny white remains and the thickest curd and prawn both read 167°F (75°C) for 30 seconds. A probe thermometer is the only way to confirm that.
Should I boil the milk first?
No, not with pasteurized whole milk from the shop. Buffalo-milk versions boil the milk and cool it before the egg white goes in. This version uses cold whole milk straight from the fridge, and it sets as described.
Can I use whole eggs instead of separating them?
No. Only the whites go in. Yolks would turn the curd yellow and change how it sets. Keep the yolks for another dish.
How long does the whole dish take?
The published total time is 33 minutes for 4 servings. No breakdown is given, so have everything ready before you turn on the heat.


















