There is a whole category of Chinese soups that exist for one reason: the fish was too delicate to do anything else with. Bombay duck — 龙头鱼, literally “dragon head fish” — is exactly that kind of fish. Its flesh is so soft that it barely holds a shape once it hits heat, which is precisely why it ends up in a bowl of broth with silken tofu rather than on a grill.

What makes this soup worth cooking at home is how little it asks of you. There is no long braise, no stock to build, no thickener. You blanch the fish for twenty seconds, bloom ginger and scallion in a spoonful of lard, add tofu, add boiling water, and let it simmer for six to eight minutes. The broth turns milky and sweet from the fish, the tofu drinks up the ginger, and the whole thing is finished with white pepper — the one seasoning that makes a fish soup taste like a fish soup.
If you already cook Chinese fish soups, this one will feel familiar. If you have never worked with a soft-fleshed fish before, this is a forgiving place to start, because the technique here is mostly about restraint: gentle heat, gentle movement, and knowing exactly when to stop.
What Is Bombay Duck and Tofu Soup?
Bombay duck and tofu soup — 龙头鱼豆腐汤, longtouyu doufutang — is a home-style coastal soup from Zhejiang and Fujian, where the fish is landed fresh and cooked the same day. Despite the name, Bombay duck is not a duck at all. It is a small, soft-bodied lizardfish (Harpadon nehereus), and in Chinese it goes by 龙头鱼, 豆腐鱼 (“tofu fish”) or 九肚鱼. The nickname “tofu fish” tells you everything about its texture: the flesh is barely set, almost custardy, and it collapses at the slightest rough handling.
Because the flesh is so soft, the soup is built around it rather than on top of it. The fish is marinated briefly with ginger, scallion and Shaoxing wine to tame its brininess, blanched for twenty seconds to firm the surface, then simmered gently with silken tofu in a light, peppery broth. The tofu is not a filler. It mirrors the fish’s texture, so every spoonful has the same soft, yielding quality, with the broth and the white pepper doing the structural work.
It is a soup that belongs to the same family as other Chinese fish soups — a clean broth, a soft protein, and a short cooking time. If you have made our fish bone tofu soup, you already know the logic: the fish gives the broth its body, and the tofu gives it its calm.
If you enjoy soups where a gentle, sweet broth does the heavy lifting, our Five-Finger Peach Pork Rib Soup is another slow-simmered bowl worth keeping in rotation.
1Five-Finger Peach Pork Rib Soup (五指毛桃排骨汤): Herbal, Sweet, DeeplyFive-Finger Peach Pork Rib Soup is a Cantonese herbal classic that simmers pork ribs with wuzhimaotao root until the broth turns sweet and fragrant. The result is a clean, comforting soup with tender meat and a gentle coconut-vanilla aroma.Check out this recipe
Why This Recipe Works
Three decisions do most of the work here, and each one is a response to how fragile the fish is.
The twenty-second blanch. Raw Bombay duck is so soft that it tears if you look at it wrong. A brief blanch in boiling water sets the outside of each segment just enough that it survives the rest of the cooking. Any longer and the fish starts shedding into the water; any shorter and it falls apart in the wok.
Lard instead of a neutral oil. A spoonful of lard gives the broth a roundness that vegetable oil cannot. It also carries the ginger and scallion aromatics better, which matters because the aromatics are the only real flavor base this soup has.
Boiling water, not cold. Pouring boiling water over the fish and tofu keeps the wok temperature from crashing. Cold water would stall the simmer and pull the fish apart before the broth ever comes back up to heat.
White pepper is not a background note in this soup — it is the seasoning. Piperine, the compound responsible for pepper’s bite, is fat-soluble, so it disperses through the lard and the fish oils rather than sitting on the surface of the broth. That is why the pepper tastes integrated here instead of sharp and dusty the way it can in a water-based soup.
Finally, the tofu choice matters. Silken tofu labeled 内脂豆腐 is set with glucono delta-lactone, which gives it a finer, more custard-like curd than regular block tofu. That is exactly what you want next to a fish this soft.
Equipment Needed
This is a two-vessel recipe: one pot for the blanch, one wok for the soup. Beyond that, you need very little.
- Wok or wide skillet — a carbon steel wok is ideal, but any wide pan with sloped sides will work. You want room to push the fish around without stacking it.
- Medium pot — for the twenty-second blanch and for heating the water you will pour in later.
- Slotted spoon or spider — the only safe way to lift blanched fish out of the water without breaking it.
- Cutting board and knife — a sharp knife matters more than usual here; a dull blade crushes the fish instead of cutting it.
- Serving bowl — a wide, shallow bowl lets the fish and tofu sit in a single layer so nothing gets crushed at the bottom.
Ingredients
Everything in this soup is either a soft protein, an aromatic, or a seasoning. There is no filler, which means each ingredient needs to be right.
- Bombay duck (龙头鱼) — about 1 lb (500 g), cleaned, fins and tail trimmed. Ask your fishmonger to clean it if you can; the fish is extremely soft and cleaning it at home takes a steady hand.
- Scallion and ginger — for both the marinade and the wok. Use more than you think you need; this soup has no garlic or chili to lean on.
- Shaoxing wine — 1 tablespoon for the marinade. It neutralizes the fishy notes that soft-fleshed fish carry.
- White pepper — used twice: once in the marinade, once at the end. Do not substitute black pepper; the flavor is different and the specks will muddy the broth.
- Lard — 1 tablespoon. If you keep a jar of rendered lard in the fridge, this is the recipe to use it in.
- Silken tofu (内脂豆腐) — one 14 oz (400 g) block, cut into 1-inch cubes. Handle the cubes with a spoon, not your fingers.
- Boiling water — about 3 cups, plus more if you want a brothier soup.
- Sugar, MSG, light soy sauce, salt — the seasoning set. The sugar is there to round the broth, not to sweeten it.
Ingredient Notes
On the fish. Bombay duck is sold fresh, on ice, and sometimes frozen. Fresh is better if you can get it, but frozen works well — thaw it overnight in the refrigerator and pat it dry before marinating. If you cannot find Bombay duck at all, the closest substitutes are small whiting or very fresh sand dab, though neither will be quite as soft.
On the tofu. Look for the box labeled 内脂豆腐 or “silken tofu” in the refrigerated section. Firm tofu will not give you the same custardy texture, and it will also taste chalky against the fish. If silken tofu is unavailable, soft (not firm) block tofu is the next best thing.
On MSG. A teaspoon of MSG is traditional in this soup and it does real work — it amplifies the natural glutamates the fish releases into the broth. If you prefer to skip it, add an extra half teaspoon of sugar and taste before adjusting the salt.
On the soy sauce. Use light soy sauce, not dark. Dark soy is for color and would turn this pale, clean broth muddy brown. Tamari works if you need the soup to be gluten-free.
Prep & Mise en Place
This soup moves fast once the wok is hot, so do all of your cutting before you turn on the burner.
- Rinse and trim the fish, then cut it into short segments and marinate with scallion, ginger, Shaoxing wine and white pepper. Let it sit for 10 minutes while you prep everything else.
- Slice the ginger and chop the scallion for the wok. Thinly slice a second batch of scallion for the garnish and keep it separate.
- Cut the tofu into 1-inch cubes and leave them in the box or on a plate — do not drain them too aggressively, since a little moisture helps them slide into the wok without breaking.
- Put a pot of water on to boil. You need some of it for the blanch and the rest for pouring into the wok later, so boil more than you think you need.
- Measure out the sugar, MSG, soy sauce and salt into a small bowl so you can add them in one motion at the end.
If you are serving the soup with the shredded napa cabbage garnish from the final step, shred it now and set it aside in a bowl of cold water so it stays crisp.
Cooking Process
Step 1 — Clean the Bombay Duck
Rinse the Bombay duck well under cold running water, then trim away the fins and the tail.
Step 2 — Cut and Marinate
Cut the fish into short segments, then toss with the scallion, ginger, Shaoxing wine and white pepper and set aside to marinate and deodorize.
Step 3 — Prep the Aromatics and Tofu
Prepare the ginger slices and chopped scallion, and cut the silken tofu into cubes.
Step 4 — Blanch the Fish
Bring a pot of water to a boil and slide in the Bombay duck segments.
Step 5 — Drain Quickly
Blanch for 20 seconds, then scoop the fish out with a slotted spoon and set aside.
Step 6 — Bloom the Aromatics
Heat a wok, melt a little lard, and stir-fry the ginger slices and scallion until fragrant.
Step 7 — Add the Fish
Add the blanched Bombay duck segments to the wok.
Step 8 — Push and Sear Gently
Gently push the wok to move the fish around and fry it for a moment.
Step 9 — Add the Tofu
Pour in the tofu cubes.
Step 10 — Season with Pepper
Sprinkle in a small amount of white pepper.
Step 11 — Add Boiling Water
Pour in enough boiling water to cover the ingredients.
Step 12 — Simmer
Bring to a rolling boil over high heat, then lower to medium and simmer for 6-8 minutes.
Step 13 — Season the Broth
Stir in 1 tablespoon of sugar, 1 teaspoon of MSG, a scant half spoon of light soy sauce and salt to taste, then sprinkle in a little more white pepper just before serving.
Step 14 — Finish with Scallion
Plate the soup and scatter a little more chopped scallion over the top.
Step 15 — Prep the Cabbage Garnish
Choose the tender heart of a napa cabbage, rinse and drain it, and cut it into fine shreds, stems and leaves together.
Common Mistakes When Making Bombay Duck and Tofu Soup
1. Skipping the blanch. It is tempting to drop the marinated fish straight into the wok, but raw Bombay duck will disintegrate. The twenty-second blanch is what gives each segment a skin to hold onto. Fix: set a timer — twenty seconds, no more, and lift the fish out the moment it turns opaque.
2. Stirring instead of pushing. A spoon dragged through this soup will shred the fish and break the tofu into curds. Fix: hold the wok handle and push the pan forward and back so the contents move on their own. If you must use a utensil, use the back of a spoon and press gently.
3. Using cold water. Cold water drops the wok temperature, stalls the simmer, and gives the fish extra time in the pan to fall apart. Fix: keep a kettle or a second pot of water at a boil and pour it in directly.
4. Overcooking the fish. Bombay duck is done the moment the flesh turns from translucent to opaque white. Simmering it for fifteen minutes instead of eight will not make it more tender — it will make it disappear into the broth. Fix: start tasting at the six-minute mark.
5. Under-seasoning the pepper. White pepper is the signature of this soup, and a timid pinch leaves it tasting flat. Fix: add pepper twice — once in the marinade, once just before serving — and taste the broth before you decide it is enough.
6. Using firm tofu. Firm tofu holds its shape but not the texture this soup is built around. Fix: buy silken or soft tofu and accept that it will wobble. That wobble is the point.
Variations
With napa cabbage. The final step of the traditional preparation calls for shredded napa cabbage, stems and leaves together. Some cooks stir it into the wok for the last two minutes of the simmer, and some serve it raw on the side as a crisp contrast to the soft soup. Both work; the raw version keeps the textural contrast sharper.
With a tomato base. Adding one chopped tomato along with the aromatics gives the broth a gentle acidity and a pale orange color. It is a common home variation in coastal Fujian and it pairs well with the white pepper.
With pickled mustard greens. A small handful of chopped 酸菜 added with the boiling water turns this into a sharper, more savory soup. Reduce the salt accordingly, since the pickles are already salty.
With a different fish. If Bombay duck is unavailable, use the freshest soft-fleshed white fish you can find. The technique is unchanged, but you may need to extend the simmer by a minute or two for a firmer fish. For a completely different direction with fish, our fish head and tofu soup uses the same tofu-and-broth logic with a much bolder protein.
Frequently Asked Questions
Can I make this soup without blanching the fish? You can, but the fish will almost certainly break apart in the wok. The blanch is only twenty seconds and it is the single step that makes the difference between tender segments and a cloudy, shredded broth. If you skip it, plan to serve the soup over rice so the broken fish has somewhere to go.
Why did my tofu fall apart? Silken tofu is fragile by design, and it breaks when it is stirred rather than pushed, or when it is added to a wok that is not hot enough to keep it moving. Cut the cubes a little larger than you think you need — 1 inch is the minimum — and let the simmer do the work.
Is Bombay duck actually a duck? No. It is a lizardfish, and the English name is a colonial-era corruption of the Marathi and Gujarati names for the dried fish that was exported from Bombay. In Chinese it is 龙头鱼 or 豆腐鱼, and it is prized for exactly the softness that makes it difficult to cook.
How do I know when the fish is cooked? The flesh turns opaque white and the segments firm up slightly, but they will never feel firm the way a cod fillet does. At a medium simmer, six to eight minutes is the window. If the fish starts shedding flakes into the broth, it is already past done.
Can I use chicken stock instead of water? You can, but it will change the character of the soup. The whole appeal here is a clean, sweet broth built from the fish itself. If you do use stock, use an unsalted one and reduce the added salt.
How to Serve
Serve the soup in wide, shallow bowls so the fish and tofu sit in a single layer, with plenty of broth around them. Scatter the reserved scallion over the top and add one last pinch of white pepper at the table — the aroma is part of the dish. Steamed white rice is the natural companion, and if you want a second dish on the table, our salt and black pepper shrimp shares the same peppery, seafood-forward profile without competing for attention.
If you are building a larger Chinese meal around it, keep the sides light. A plate of blanched greens with oyster sauce, a cold cucumber salad, or a simple tomato-and-egg stir-fry will all sit comfortably next to a soup this delicate. For a richer table, our dongpo pork is a classic pairing in the sense that it is the opposite of this soup in every way — rich, dark and slow-cooked — which is exactly why it works as a counterpoint rather than a second bowl of the same thing.
Serve it alongside Rice Cooker Sausage Veggie Noodles for a two-dish table.

Storage & Reheat
This soup is at its best within an hour of cooking, but it does keep. Cool it quickly, then transfer it to an airtight container and refrigerate for up to 2 days. The tofu will release some water as it sits, so the broth will look thinner the next day; that is normal.
To reheat, warm the soup gently in a saucepan over medium-low heat until it is steaming hot, and avoid bringing it to a hard boil — a rolling boil will break the tofu and shred whatever fish is left. Do not microwave it in a single bowl if you can avoid it, since the fish heats unevenly and the tofu can split. This soup does not freeze well; silken tofu becomes spongy and watery after freezing, and the fish texture does not survive the thaw.
Allergen Notice
This recipe contains fish. It also contains soy and wheat through the light soy sauce (or tamari, which is soy-based but typically wheat-free). If you are cooking for someone with a soy allergy, omit the soy sauce and season with salt and a little extra MSG instead. Check the labels on your Shaoxing wine and any prepared ingredients, as some brands add wheat.
Nutrition Disclaimer
Nutrition information is calculated using an ingredient database and should be considered an estimate. In cases where multiple ingredient alternatives are given, the first listed is calculated for nutrition. Garnishes and optional ingredients are not included.
About the Author & Recipe Development
This recipe was developed and tested in the Woks of Love kitchen by Lin, based on the home-style 龙头鱼豆腐汤 cooked along the Zhejiang and Fujian coasts. The version here follows the traditional method closely: a brief blanch, a lard-based aromatic base, silken tofu added whole, and white pepper used twice. Testing focused on the two variables that matter most — how long the fish can stay in the wok before it starts to shed, and how much pepper the broth can take before it turns harsh. The answer, in both cases, was less than you would expect and more than you would guess.
Related: roasted lamb chops is a good next cook.
Related: fried rice sticky is a good next cook.
Related: sweet and sour pork is a good next cook.
Authoritative References
For safe handling and cooking temperatures for fish, see the FDA guidance on safe food handling and the USDA safe minimum internal temperature chart, which lists 145°F (63°C) for fish. For background on the fish itself, see the FAO species database entry on Harpadon nehereus.

Bombay Duck and Tofu Soup (龙头鱼豆腐汤): Silky Tofu, Tender Fish in
Equipment
- Wok
- Cutting Board
- Slotted Spoon
Ingredients
For the Fish
- 1 lb Bombay duck about 500 g, cleaned, fins and tail trimmed
- 2 stalks scallion cut into segments, plus more for garnish
- 3 slices ginger plus more for the wok
- 1 tbsp Shaoxing wine for marinating
- 1/2 tsp white pepper for marinating, plus more to finish
For the Soup
- 1 tbsp lard or neutral oil
- 14 oz soft silken tofu 内脂豆腐, cut into 1-inch cubes
- 3 cups boiling water plus more if needed
- 1 tbsp sugar about 12 g
- 1 tsp MSG optional but traditional
- 1/2 tbsp light soy sauce or tamari
- 1 tsp salt to taste
- 2 stalks scallion thinly sliced, for garnish
Instructions
- Rinse the Bombay duck well under cold running water, then trim away the fins and the tail.
- Cut the fish into short segments, then toss with the scallion, ginger, Shaoxing wine and white pepper and set aside to marinate and deodorize.
- Prepare the ginger slices and chopped scallion, and cut the silken tofu into cubes.
- Bring a pot of water to a boil and slide in the Bombay duck segments.
- Blanch for 20 seconds, then scoop the fish out with a slotted spoon and set aside.
- Heat a wok, melt a little lard, and stir-fry the ginger slices and scallion until fragrant.
- Add the blanched Bombay duck segments to the wok.
- Gently push the wok to move the fish around and fry it for a moment.
- Pour in the tofu cubes.
- Sprinkle in a small amount of white pepper.
- Pour in enough boiling water to cover the ingredients.
- Bring to a rolling boil over high heat, then lower to medium and simmer for 6-8 minutes.
- Stir in 1 tablespoon of sugar, 1 teaspoon of MSG, a scant half spoon of light soy sauce and salt to taste, then sprinkle in a little more white pepper just before serving.
- Plate the soup and scatter a little more chopped scallion over the top.
- Choose the tender heart of a napa cabbage, rinse and drain it, and cut it into fine shreds, stems and leaves together.










































Leave a Reply