Nanjing Duck Blood Vermicelli Soup (Yaxue Fensi Tang): The Offal-Balancing Classic I Chalky-Blooded, Chewy-Intestined, and Muddy-Brothed 3 Times
Crowded morning stalls, the hiss of a ladle, and a bowl that smells like duck bones long before you taste it — that was my introduction to yaxue fensi tang, long before I tried to replicate it in my own kitchen. What looked like a simple noodle soup turned out to be a lesson in timing: how long blood curd can sit in hot broth before it turns chalky, and how quickly offal goes from tender to rubber if you blink. My first attempts were disasters: the blood was rubbery, the intestines were chewy, and the broth was muddy. After many failures, I finally learned the secrets: blanch offal separately, simmer blood gently for only 2 minutes, and use a clean, skimmed duck broth. Here is exactly how I make it now.

Ingredients
- • Fresh duck blood curd (smooth, few air pockets) - 200g, 2cm cubes, briefly soaked in cold water
- • Sweet potato vermicelli (or mung bean vermicelli) - 100g, soaked until pliable
- • Duck intestines - 50g, cleaned, cut into 3cm pieces
- • Duck gizzards - 50g, membrane removed, thinly sliced
- • Duck liver - 50g, trimmed, thinly sliced
- • Duck broth (homemade preferred) - 600ml, skimmed and clear
- • Scallions (white minced, green chopped) - 20g
- • Ginger (for ginger water) - 15g → ~50ml strained liquid
- • Shaoxing rice wine - 2 tbsp total
- • Salt - 3g, to taste
- • White pepper - 1g (optional)
- • Sesame oil - 1 tsp, to finish
- • Pickled mustard greens (suan cai), finely chopped - 20g (optional)
- • Chili oil - 1 tsp (optional)
Step-by-Step Directions
- 1
Prep offal and blood: Scrub intestines with salt and flour, rinse cold; blanch 10 seconds, drain, cut. Scrape gizzard inner skin; slice liver thin. Cube blood, cold-soak 10 minutes, drain. Soak vermicelli until soft. Make ginger water: mince ginger, steep in 50ml cold water 5 minutes, strain.
- 2
Blanch separately: Boil water with part of ginger water and 1 tbsp Shaoxing; blanch intestines, gizzards, liver ~1 minute; shock in cold water, drain. In fresh boiling water (same aromatics), blanch blood ~2 minutes until set; drain gently.
- 3
Simmer broth: Combine duck broth, remaining ginger water, minced scallion white, 1 tbsp Shaoxing; simmer low 5 minutes. Season lightly if broth is flat.
- 4
Finish the bowl: Add vermicelli to broth; cook ~3 minutes until tender. Add blood and offal; simmer gently 2 minutes—do not boil violently. Season with salt and white pepper.
- 5
Serve: Ladle into bowls; top with scallion greens, pickled mustard, sesame oil, and chili oil if you like. Eat hot while broth is still bright.
Why This Soup Is Nanjing’s Quiet Pride
Crowded morning stalls, the hiss of a ladle, and a bowl that smells like duck bones long before you taste it — that was my introduction to yaxue fensi tang, long before I tried to replicate it in my own kitchen. What looked like a simple noodle soup turned out to be a lesson in timing: how long blood curd can sit in hot broth before it turns chalky, and how quickly offal goes from tender to rubber if you blink.
To me, Nanjing duck blood vermicelli soup is less about spectacle than about restraint. The broth should taste like duck — long-simmered, clean, a little sweet from bones — not like soy sauce soup. The blood curd is not there for shock value; it is silky, almost like soft tofu, and it carries the broth in a way starch alone never could. The offal is the noisy part: crunch from intestine, chew from gizzard, softness from liver. When a shop balances those textures, you stop thinking about “odd cuts” and start thinking about lunch.
Here is why this soup is beloved in Nanjing:
| Reason | Why It Matters |
|---|---|
| Nose-to-tail eating | Uses the whole bird — blood, innards, bones — without apology. |
| Clean, not heavy | Light color in the bowl, heavy flavor from stock, not from a thick sauce. |
| Textural contrast | Silky blood curd + chewy vermicelli + crunchy intestine + tender gizzard + soft liver. |
| Street-level pride | Breakfast fuel and everyday comfort. Not fancy, but deeply satisfying. |
The dish has three components that define great Nanjing duck blood vermicelli soup:
| Component | What Makes It Great | The Failure |
|---|---|---|
| The broth | Clear, clean, deeply savory from duck bones. Tastes like duck, not like soy sauce. | Muddy, cloudy, greasy. Tastes flat or overly salty. |
| The blood curd | Silky, smooth, tender. Almost like soft tofu. | Chalky, rubbery, spongy. Falls apart. |
| The offal | Intestine is crunchy. Gizzard is chewy. Liver is soft. Each has its own texture. | Chewy, rubbery, mealy (overcooked). Muddy or gamey (under-cleaned). |
At home, I treat it as a two-track job: one mental timer for sanitation and smell (cleaning, blanching), another for tenderness (final simmer). If you only nail one track, you get either a safe but boring bowl, or an interesting bowl that smells wrong. The good stalls do both without drama.
The Science of Blood Curd, Offal Texture, and Clean Broth
Before we get to the recipe, let me explain why blood curd turns rubbery, why offal needs separate blanching, and why the broth must be skimmed.
Why Blood Curd Turns Chalky (And How to Prevent It)
| Blood Curd Simmered Gently for 2 Minutes | Blood Curd Overcooked (5+ Minutes or Boiled Hard) |
|---|---|
| The blood curd is silky, smooth, and tender. It holds its shape. | The blood curd becomes rubbery, chalky, or spongy. It may fall apart. |
The science: Duck blood curd is mostly protein and water. When heated, the proteins coagulate and set. Gentle heat allows the curd to set slowly, retaining moisture. High heat or prolonged cooking causes the proteins to tighten and squeeze out water, resulting in a rubbery, chalky texture.
The fix: Simmer blood curd for only 2 minutes in the final stage. Do not boil hard.
Why Offal Needs Separate Blanching (Not All Together)
| Offal Blanched Separately | Offal Blanched Together |
|---|---|
| Each type cooks to its ideal texture. Intestine stays crunchy. Gizzard stays chewy. Liver stays soft. | Some offal overcooks while others are still raw. Liver becomes mealy. |
The science: Intestine, gizzard, and liver have different densities and cook at different speeds. Liver is delicate and cooks in under 1 minute. Gizzard is tough and needs a bit more time. Intestine is in between. Blanching them together results in uneven texture.
The fix: Blanch each type separately (or in small batches) until just cooked. Shock in cold water to stop cooking.
Why the Broth Must Be Skimmed and Clean
| Broth Skimmed and Clean | Broth Not Skimmed (Muddy, Cloudy) |
|---|---|
| The broth is clear, bright, and tastes cleanly of duck. | The broth is cloudy, greasy, and tastes muddy. |
The science: When you simmer bones, proteins and fats rise to the surface as foam and scum. If you do not skim them off, they break down into smaller particles that cloud the liquid. Some of these particles also have off-flavors.
The fix: Skim the broth every 10-15 minutes during the initial simmer. Use a fine-mesh skimmer.
My 3 Big Mistakes (And How to Skip Them)
The Backstory: A Bowl That Smells Like Duck Bones
Crowded morning stalls, the hiss of a ladle — that was my introduction. My first attempts at home were disasters. I made three big mistakes before I got it right.
Mistake #1: The Blood Curd Was Chalky and Rubbery
The first time I made duck blood vermicelli soup, I simmered the blood curd for almost 10 minutes. I thought “more cooking = safer.” The blood curd turned rubbery and chalky. It tasted like nothing.
What I learned: Blood curd needs only gentle, short cooking. 2 minutes is enough.
The fix: Simmer blood curd for only 2 minutes in the final stage. Do not boil hard.
Mistake #2: The Intestines Were Chewy (Like Rubber Bands)
My second attempt. I blanched the offal together. The liver was mealy. The gizzard was tough. The intestines were so chewy they felt like rubber bands. My family ate around them.
What I learned: Offal has different cooking times. Liver cooks in under 1 minute. Gizzard needs a bit more. Intestine is in between.
The fix: Blanch each type separately. Shock in cold water after each batch.
Mistake #3: The Broth Was Muddy and Cloudy
My third attempt. I used a duck broth that I had not skimmed properly. It was greasy and cloudy. The final soup looked muddy. The flavor was flat and heavy.
What I learned: Duck broth needs to be skimmed every 10-15 minutes during simmering. A clean, clear broth is essential.
The fix: Skim the broth frequently. Use a fine-mesh skimmer. Take your time.
Step-by-Step Visual Guide
(The instructions in the front matter already cover the steps. Here is the timing breakdown and key moments.)
Part 1: Preparation (30 minutes)
| Step | What to Do | Time | Critical Moment |
|---|---|---|---|
| Clean intestines | Scrub with salt and flour. Rinse cold. Blanch 10 seconds. Drain. Cut. | 10 minutes | The flour step is non-negotiable. |
| Prepare gizzard and liver | Remove membrane from gizzard. Slice thinly. Slice liver thinly. | 5 minutes | Keep them separate. |
| Cut blood curd | Cut into 2cm cubes. Soak in cold water 10 minutes. Drain. | 10 minutes (waiting) | Removes any storage smell. |
| Soak vermicelli | Cover with warm water. Soak until pliable. | 10 minutes (waiting) | Do not over-soak. |
| Make ginger water | Mince ginger. Steep in 50ml cold water 5 minutes. Strain. | 5 minutes (waiting) | Use the liquid only. |
Part 2: Blanching (10 minutes)
| Step | What to Do | Time | Critical Moment |
|---|---|---|---|
| Blanch offal | Boiling water + ginger water + 1 tbsp Shaoxing. Add intestines, gizzards, liver. Cook ~1 minute. Shock in cold water. Drain. | 2-3 minutes | Do not overcook. |
| Blanch blood curd | Fresh boiling water (same aromatics). Add blood curd. Cook ~2 minutes until set. Drain gently. | 2 minutes | Handle gently. Blood curd is fragile. |
Part 3: Simmering and Finishing (15 minutes)
| Step | What to Do | Time | Critical Moment |
|---|---|---|---|
| Simmer broth | Combine duck broth, ginger water, minced scallion white, 1 tbsp Shaoxing. Simmer low 5 minutes. | 5 minutes | Skim if needed. |
| Add vermicelli | Add soaked vermicelli. Cook ~3 minutes until tender. | 3 minutes | Do not overcook. |
| Add blood curd and offal | Add blood curd and offal. Simmer gently 2 minutes. | 2 minutes | Do not boil hard. |
| Season | Add salt and white pepper. Taste. | 30 seconds | Adjust if needed. |
| Serve | Ladle into bowls. Top with scallion greens, pickled mustard, sesame oil, chili oil. | 1 minute | Serve immediately. |
Total active time: about 45 minutes.
Pro Tips for Perfect Duck Blood Soup Every Time
These are the small steps that separate great duck blood vermicelli soup from chalky, chewy, muddy failures. I learned every single one by failing first.
| Tip | Why It Works |
|---|---|
| 1. Clean intestines with salt and flour. Water alone is not enough. | The salt and flour scrub away the slippery film and any off-putting smell. |
| 2. Soak blood curd in cold water for 10 minutes before cooking. | Removes any storage smell and helps it hold its shape. |
| 3. Blanch offal separately (or in small batches). | Liver, gizzard, and intestine have different cooking times. |
| 4. Shock blanched offal in cold water immediately. | Stops the cooking and keeps the texture tender. |
| 5. Use homemade duck broth. Skim it frequently. | A clean, clear broth is the foundation of the dish. |
| 6. Do not use dark soy sauce. The broth should taste like duck, not soy. | Dark soy stains the color and shouts over the duck flavor. |
| 7. Simmer blood curd for only 2 minutes in the final stage. | Longer cooking makes it rubbery and chalky. |
| 8. Keep the final simmer gentle (small bubbles). Do not boil hard. | Violent boiling makes the broth cloudy and can toughen the offal. |
| 9. Add offal at the very end. Heat through for 2 minutes only. | Offal overcooks quickly. A gentle warm-through is enough. |
| 10. Season with salt and white pepper only. Keep it simple. | The duck broth should be the star. |
| 11. Top with pickled mustard greens if the broth feels too “clean.” | The acidity adds brightness without overpowering. |
| 12. Serve immediately. This soup does not wait. | The blood curd softens. The vermicelli absorbs too much broth. |
A mistake I made (so you do not have to): I once simmered blood curd for ages “to be safe” and got rubber. Now I simmer for only 2 minutes.
Another mistake: I once skipped shocking blanched offal in cold water and served chewy intestines. Now I shock every batch.
Another mistake: I used only hot water to rinse intestines — never again. The flour step exists for a reason.
Ingredient Deep Dive: Duck Blood Curd and Duck Offal
Duck Blood Curd (鸭血)
| What It Is | Why It Matters |
|---|---|
| Fresh duck blood that has been coagulated and set into blocks. Similar to tofu in appearance. | It is silky and smooth when cooked properly. It absorbs the flavor of the broth. |
Where to buy: Asian grocery stores (refrigerated section). Look for fresh duck blood curd. It should be dense, smooth, and have few air pockets.
What to avoid: Spongy or bubbly curd tends to fall apart during cooking.
Duck Offal (鸭杂)
| Offal | Texture | Cleaning Tip |
|---|---|---|
| Intestines | Crunchy, slightly chewy | Scrub with salt and flour. Rinse cold. |
| Gizzard | Firm, chewy | Remove inner membrane. Slice thinly. |
| Liver | Soft, smooth | Trim any discolored parts. Slice thinly. |
Substitution if offal is unavailable: Use firm tofu puffs instead. The dish will be different philosophically, but still comforting.
Substitutions and Variations
| Instead of… | Use… | Adjustments |
|---|---|---|
| Fresh duck blood curd | Firm tofu puffs (150g) | Totally different texture, but still works. |
| Duck broth | Chicken broth (600ml) | Add 1 duck neck or wing if available. |
| Sweet potato vermicelli | Mung bean vermicelli (glass noodles) | Shorten final simmer by 1 minute. |
| Duck offal (intestines, gizzard, liver) | Shiitake mushrooms (sliced) + firm tofu | Not authentic, but still warm and comforting. |
Stall-classic Nanjing version (traditional):
- Use blood curd, vermicelli, mixed offal (intestines, gizzard, liver).
- Clear duck broth. Minimal soy (none, ideally).
- Top with scallion greens only. No pickled mustard.
Softer home version (less offal):
- Use less liver (or skip it).
- Use more gizzard (more forgiving texture).
- Add extra blood curd.
- The bowl is still rich, less heavy.
No-offal night version (vegetarian-friendly):
- Use duck broth (or chicken broth).
- Blood curd + vermicelli + shiitake mushroom strips.
- Comfortably inauthentic, still warming.
How I Serve This Soup
I serve this soup in deep bowls, spoons ready, broth steaming. Condiments go on the side when I have mixed preferences — vinegar for a sour lift, chili oil for heat — so the pot stays the same and people customize. I do not recommend making it “for later”; it is a now food.
The serving ritual:
- Ladle the soup into deep bowls.
- Make sure each bowl gets blood curd, offal, and vermicelli.
- Top with scallion greens, pickled mustard greens (optional), sesame oil, and chili oil (optional).
- Serve immediately with spoons and chopsticks.
What to serve alongside:
- Plain steamed bun (mantou) or youtiao (fried dough stick) — traditional
- Cucumber salad — for contrast
- Nothing — the soup is a complete meal
What to avoid serving alongside:
- Another soup — one is enough
- Heavy, oily dishes — the soup is already rich
Leftovers? Best within the hour.
| Storage | Duration | Notes |
|---|---|---|
| Refrigerator (broth and solids separate) | Up to 1 day | Store separately. |
| Reheat (stovetop, best) | Low heat, add broth first, then solids at the end | Heat gently. Do not boil hard. |
| Reheat (microwave) | Not recommended | Punishes vermicelli and blood texture. |
| Freezer | Do not freeze | Blood curd and offal textures will be destroyed. |
Best practice: If I must store, I keep broth and solids separate, chill quickly, and finish within a day. Reheat gently; microwave is my last choice.
FAQ: Common Questions Answered
Q: Why is my blood curd rubbery and chalky? A: You overcooked it. Simmer blood curd for only 2 minutes in the final stage. Do not boil hard.
Q: Why are my intestines chewy and rubbery? A: You did not clean them properly, or you overcooked them. Scrub with salt and flour. Blanch for 1 minute only.
Q: Why is my broth muddy and cloudy? A: You did not skim the broth properly. Skim every 10-15 minutes during simmering. Use a fine-mesh skimmer.
Q: Can I use chicken broth instead of duck broth? A: Yes. The dish will be less rich. Add a few duck necks or wings if available.
Q: Where can I buy duck blood curd? A: Asian grocery stores (refrigerated section). It should be dense, smooth, and have few air pockets.
Q: Can I make this soup without offal? A: Yes. Use only blood curd and vermicelli. Or add shiitake mushrooms. The dish will be different but still comforting.
Q: Why do I need to shock the blanched offal in cold water? A: Stops the cooking immediately. Keeps the texture tender and prevents it from becoming rubbery.
Q: Can I use frozen duck blood curd? A: Fresh is much better. Frozen blood curd often becomes spongy and falls apart.
Q: Why is my liver mealy? A: You overcooked it. Liver cooks in under 1 minute. Add it at the very end.
Q: Is this soup safe for pregnant people? A: Liver has high vitamin A content. Pregnant guests should consult their doctor. Offal must be fully cleaned and cooked through.
Three Practical Variations I Use
| Version | Blood Curd | Offal | Broth | Best For |
|---|---|---|---|---|
| Stall-classic (Nanjing style) | Yes | Full set (intestine, gizzard, liver) | Clear duck broth | Traditional taste |
| Softer home version | Yes | Less liver, more gizzard | Clear duck broth | Less heavy |
| No-offal night | Yes | Shiitake mushroom strips | Duck or chicken broth | Comfortably inauthentic |
Stall-classic version steps: Use blood curd, vermicelli, and all three offal types. Clear duck broth. Top with scallion greens only. Minimal seasoning.
Softer home version steps: Use less liver (or skip it). Use more gizzard (more forgiving texture). Add extra blood curd. The bowl is still rich, less heavy.
No-offal night version steps: Use duck broth (or chicken broth). Blood curd + vermicelli + shiitake mushroom strips. Comfortably inauthentic, still warming.
Nutritional Breakdown (Per Serving)
| Nutrient | Amount | Percent Daily Value (approx) |
|---|---|---|
| Calories | 180 | 9 percent |
| Protein | 16g | 32 percent |
| Carbohydrates | 15g | 5 percent |
| Fat | 7g | 9 percent |
| Fiber | 1g | 4 percent |
| Iron | 4mg | 22 percent |
| Sodium | 380mg | 17 percent |
Notes:
- This is a protein-forward, light meal. The iron from blood curd is significant.
- The cholesterol content (from liver) is moderate. People with cholesterol concerns should treat liver as optional.
- Serve with plain steamed bun or cucumber salad to balance the meal.
Final Thoughts
Nanjing duck blood vermicelli soup taught me that texture is as important as flavor. Clean offal properly. Simmer blood curd gently for only 2 minutes. Blanch offal separately and shock in cold water. Use a clear, skimmed duck broth. Each step seems small. Together, they make the difference between a chalky, chewy, muddy failure and a silky, tender, bright success.
I hope my rubbery blood, chewy intestines, and muddy broth help you skip those mistakes. This soup is Nanjing’s quiet pride for a reason. When you get it right, the silky blood curd, the crunchy offal, and the clean duck broth will make you feel like you are back at that crowded morning stall.