Wenzhou Fish Balls (Wenzhou Yu Wan): The Clean, Bouncy Coastal Soup I Over-Mixed, Under-Seasoned, and Boiled Apart 3 Times

Author: Old Zhao
Region: East China
Flavor: Savory / Salty
Method: Braising & Slow Cooking

Fish balls came out cottony instead of springy? Broth tasted fishy instead of clean and sweet? Fish paste disintegrated in the pot? After ruining this Wenzhou specialty three different ways, I finally learned the secrets: keep everything cold, stir in one direction only, and poach gently, never boil hard.

Wenzhou Fish Balls (Wenzhou Yu Wan): The Clean, Bouncy Coastal Soup I Over-Mixed, Under-Seasoned, and Boiled Apart 3 Times
Calories
195 kcal
Protein
25 g
Carbohydrates
11 g
Fat
7 g

Ingredients

  • • Very fresh croaker or hairtail fillet (skinless, pin bones removed) - 500g
  • • Pork back fat, finely minced (optional but recommended) - 40-50g
  • • Egg white - 1 large
  • • Sweet potato starch (preferred) or potato starch - 70-80g
  • • Ginger water (fresh ginger soaked and strained) - 60ml
  • • Scallion white, finely minced - 15g
  • • Shaoxing wine - 1 tbsp
  • • Salt - 5-6g
  • • White pepper - 1g
  • • Ice-cold water - 80-100ml
  • • Clear stock or water for poaching - 1000ml
  • • Scallion greens, chopped - 8g
  • • Sesame oil (optional) - 1 tsp

Step-by-Step Directions

  1. 1

    Prepare and chill the fish: Pat fish fillets dry, remove every visible pin bone, and cut into chunks. Keep the fish cold (close to 4C) while working; cold fish paste gives noticeably better bounce.

  2. 2

    Build the fish paste: Blend fish and optional pork fat until fine. Move to a large bowl, add egg white, Shaoxing wine, salt, white pepper, and scallion white, then stir in one direction until sticky.

  3. 3

    Add starch and water in stages: Add starch in 2 batches and mix fully each time. Add ice-cold water in 3-4 small additions, stirring in one direction until the paste turns glossy, thick, and elastic. Rest 10-15 minutes.

  4. 4

    Poach gently, never boil hard: Heat clear stock or water until just below a simmer. Wet a spoon, scoop and shape irregular fish balls, and slide them in. Keep the liquid trembling softly, not bubbling aggressively.

  5. 5

    Finish and serve: Once fish balls float, poach 2 more minutes over low heat. Taste the broth and adjust salt. Serve immediately with chopped scallion greens and a few drops of sesame oil if desired.

Why This Dish Is Coastal Comfort

For me, this dish is not “just fish balls.” It is a test of touch and patience. If I rush the stirring, the texture gets grainy. If I chase a stronger flavor with too much soy sauce, I lose the clean marine sweetness that makes Wenzhou fish balls special.

The first good batch I made taught me the real goal: gentle resilience, not chewiness. A proper fish ball should spring back when bitten, but still feel tender. It should taste light enough that you can finish both the fish and the soup without feeling tired of the flavor.

Here is why this dish has endured for generations:

ReasonWhy It Matters
Respects ingredientsWenzhou families transformed bony fish into a soft, safe, nourishing food that both kids and elders could enjoy.
The broth is not decorationWhen I serve this at home, people always start by tasting the broth first. The soup is part of the identity.
Precision mattersNo heavy sauce to hide behind. Technique is everything. Each successful bowl is quietly satisfying.
Adaptable to moodCold days: enrich with dried shrimp. Summer: keep plain with just scallion and white pepper. Same dish, different mood.

The dish has three components that define great Wenzhou fish balls:

ComponentWhat Makes It GreatThe Failure
The fish ball textureSpringy, bouncy, tender. Springs back when bitten.Cottony (over-mixed, too warm). Rubbery (too much starch). Grainy (under-mixed).
The flavorClean, sweet, marine. Light enough to finish the whole bowl.Fishy (old fish, insufficient ginger). Flat (under-seasoned). Muddy (too much soy or sesame oil).
The brothClear, warm, honest. A gentle backdrop for the fish.Cloudy (boiled too hard). Bland (under-seasoned).

A proper Wenzhou fish ball is not “chewy” like a rubber band. It is springy — it gives when you bite, then bounces back. That texture comes from technique, not from ingredients alone.

The Science of Bounce and Clean Broth

Before we get to the recipe, let me explain why cold fish matters, why single-direction stirring works, and why poaching (not boiling) is essential.

Why Keep Everything Cold?

Warm Fish PasteCold Fish Paste
Protein structure is loose. The paste cannot trap air bubbles. The texture becomes cottony or grainy.Protein structure is tight. The paste can hold air bubbles. The texture becomes springy and bouncy.

The science: Fish proteins (myosin) are temperature-sensitive. When they are warm, they cannot form strong bonds. When they are cold, they align and create a gel network that traps air and moisture. This is why Japanese surimi processing also keeps fish cold.

The fix: Keep the fish in the fridge until the last minute. Use ice-cold water for mixing. If your kitchen is warm, set the mixing bowl over another bowl of ice water.

Why Stir in One Direction Only?

Stirring Back and ForthStirring One Direction
The protein strands are torn and weakened. The paste cannot hold its structure. The fish balls may disintegrate in the pot.The protein strands align and form a strong network. The paste becomes elastic and springy.

The science: Fish proteins are long chains. When you stir consistently in one direction, these chains align parallel to each other. This creates a strong, flexible matrix. Stirring back and forth cuts the chains, weakening the structure.

The fix: Choose a direction (clockwise or counterclockwise) and stick to it for the entire mixing process. No switching.

Why Poach Gently, Never Boil Hard?

Rolling BoilGentle Poach (Trembling Liquid)
The aggressive bubbles tear the surface of the fish balls. The texture becomes rough and firm inside.The fish balls set gently. The texture stays springy and tender.

The science: Fish balls set through protein coagulation. This happens at around 60-70°C (140-160°F). A rolling boil is 100°C (212°F) — much too hot. The high heat causes the outside to set too fast while the inside is still raw, creating a tough skin and uneven texture.

The fix: Heat the stock until you see small bubbles rising slowly. The surface should tremble, not boil vigorously. If you see large bubbles, lower the heat.

My 3 Big Mistakes (And How to Skip Them)

The Backstory: A Dish That Tests Touch

I used to think Wenzhou fish balls were simple until I ruined two batches by over-mixing and boiling too hard. The lesson was clear: this dish is all about restraint. Keep the fish cold, season lightly, and let a gentle simmer do the work.

Mistake #1: The Fish Balls Were Cottony (Not Springy)

The first time I made Wenzhou fish balls, I did not know about keeping the fish cold. I left the fish on the counter while I prepared other ingredients. The fish paste warmed up to room temperature.

I stirred vigorously, back and forth, because I thought “more mixing = better texture.” When I poached the fish balls, they came out cottony — soft, loose, and grainy. There was no bounce at all.

What I learned: The fish needs to stay cold from start to finish. Warm fish paste cannot form the protein network needed for bounce. And stirring back and forth weakens the structure.

The fix: Keep fish in the fridge until the last minute. Use ice-cold water. Stir in one direction only. If your kitchen is warm, set the mixing bowl over ice.

Mistake #2: The Broth Tasted Fishy (Not Clean)

My second attempt. I kept the fish cold this time. I stirred in one direction. The fish balls had better texture. But the broth tasted fishy. Not fresh — that unpleasant, briny smell.

I had used fish that was not very fresh. I also had not used enough ginger water or Shaoxing wine to mask the fishiness.

What I learned: Wenzhou fish balls rely on the natural sweetness of very fresh fish. If the fish is even slightly old, the fishiness will come through. No amount of seasoning can fully hide it.

The fix: Buy fish the same day you plan to cook. Smell it before buying — it should smell like the ocean, not like fish. Use enough ginger water and Shaoxing wine. They are not optional.

Mistake #3: The Fish Balls Disintegrated in the Pot

My third attempt. The fish was fresh. The paste was cold. But when I dropped the fish balls into the pot, they started falling apart. Some dissolved into the broth. What remained was misshapen and rough.

I had the heat too high. The water was at a rolling boil. The aggressive bubbles tore the fish balls apart before they could set.

What I learned: Poaching requires a gentle touch. The water should tremble, not boil. If you see large bubbles, the heat is too high.

The fix: Bring the stock to just below a simmer. You should see small bubbles rising slowly. The surface should tremble. If it boils, lower the heat immediately.

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: Preparing the Fish Paste (30-40 minutes)

StepWhat to DoTimeCritical Moment
Debone fishPat dry. Remove every pin bone. Cut into chunks.10 minutesOne missed bone ruins the experience.
Chill everythingKeep fish in fridge. Measure ice-cold water.—Target: close to 4°C (40°F).
Blend fishBlend fish + pork fat (if using) until fine.2-3 minutesDo not over-blend into a paste.
Mix in seasoningsAdd egg white, wine, salt, pepper, scallion. Stir in one direction until sticky.2-3 minutesPaste should look tacky.
Add starch (2 batches)Add half the starch. Mix fully. Add the rest.3-4 minutesNo dry spots.
Add ice water (3-4 additions)Add small amounts of ice water. Stir in one direction after each.5-6 minutesPaste should become glossy, thick, and elastic.
RestCover bowl. Refrigerate.10-15 minutesAllows proteins to relax.

Part 2: Poaching the Fish Balls (15-20 minutes)

StepWhat to DoTimeCritical Moment
Heat stockBring clear stock to just below simmer.5-7 minutesSmall bubbles. Trembling surface. No rolling boil.
Shape fish ballsWet a spoon. Scoop paste. Slide into liquid.3-4 minutesIrregular shapes are traditional.
PoachKeep liquid trembling. Fish balls will float when done.2-3 minutes after floatingDo not boil.
FinishTaste broth. Adjust salt. Add scallion greens and sesame oil.1 minuteServe immediately.

Total active time: about 40 minutes. The rest is waiting (chilling, resting, poaching).

Pro Tips for Restaurant-Quality Results

These are the small steps that separate springy, clean-tasting Wenzhou fish balls from cottony, fishy failures. I learned every single one by failing first.

TipWhy It Works
1. Use very fresh fish. Buy it the same day.Old fish tastes fishy. No amount of seasoning can fully hide it.
2. Remove every pin bone. Run your fingers along the fillet to check.Even one missed bone ruins the experience, especially for children or elders.
3. Keep everything cold — fish, bowl, water. Target close to 4°C (40°F).Cold fish proteins form a stronger gel network. Warm paste = cottony texture.
4. Use ice-cold water, not room temperature water.Ice water keeps the paste cold while adding necessary moisture.
5. Stir in one direction only. No switching.One-direction stirring aligns protein chains. Back-and-forth tears them.
6. Add starch in 2 batches, not all at once.Ensures even distribution. No dry spots in the paste.
7. Add ice water in 3-4 small additions, not all at once.Gradual addition prevents the paste from becoming too loose.
8. Rest the paste for 10-15 minutes in the fridge.Allows proteins to relax and the starch to hydrate.
9. Poach gently. The liquid should tremble, not boil.Rolling boil tears fish balls. Gentle heat sets them evenly.
10. Wet the spoon before scooping.Prevents the paste from sticking to the spoon.
11. Do not aim for perfect spheres. Irregular shapes are traditional.Hand-formed shapes cook more evenly. Perfect spheres are often denser.
12. Taste the broth before serving. Adjust salt if needed.The broth is part of the dish. It should be clean and lightly seasoned.

A mistake I repeated: I used to keep the pot at a full boil because I feared undercooking. That made the fish balls rough on the surface and firm inside. Now I poach gently and trust carryover heat.

Another mistake I paid for: I once added all the ice water at once. The paste became too loose. I tried to fix it by adding more starch, but then the fish balls were dense and rubbery. Now I add water in small additions.

Ingredient Deep Dive: Fish, Starch, and Fat

Choosing the Right Fish

FishCharacteristicsBest For
Croaker (yellow croaker)Mild, sweet flavor. Delicate texture.Traditional Wenzhou fish balls.
Hairtail (ribbon fish)Slightly stronger flavor. Firm texture.Also traditional, more affordable.
Sea bassVery mild, clean flavor. Easy to debone.Good substitute when croaker is unavailable.

What to look for: Bright eyes, red gills, firm flesh, smells like the ocean (not like fish).

What to avoid: Dull eyes, brown gills, soft flesh, fishy or ammonia smell.

Sweet Potato Starch vs. Potato Starch

StarchCharacteristicsResult
Sweet potato starchTraditional. Gives a translucent, slightly bouncy texture.Best for Wenzhou fish balls.
Potato starchSimilar but less bouncy. Slightly more opaque.Works, but reduce water slightly.

Why sweet potato starch is preferred: Sweet potato starch creates a more elastic gel network. It also gives the fish balls a slightly translucent appearance.

Pork Back Fat (Optional)

With Pork FatWithout Pork Fat
The fish balls are richer, softer, more tender.The fish balls are leaner, firmer, lighter.

Why add it: Wenzhou fish balls traditionally include a small amount of pork fat for richness. The fat melts during poaching, coating the protein strands and adding tenderness.

Can you skip it? Yes. Use 1 tablespoon of neutral oil instead. The result will be slightly less rich but still good.

Substitutions and Variations

Instead of…Use…Adjustments
Croaker or hairtailSea bass + 1 tsp fish sauceSea bass is milder. Fish sauce adds umami depth.
Sweet potato starchPotato starchReduce water slightly (70-80ml instead of 80-100ml).
Pork back fat1 tbsp neutral oilAdd oil with the egg white.
Fresh fish (not available)High-quality frozen fish (thawed)Frozen fish works, but texture will be slightly less springy.
Clear stockWaterWater works. Add a pinch of salt and a slice of ginger to the poaching liquid.

Weeknight version: Use frozen fish (thawed). Skip the pork fat. Use water instead of stock. The texture will be slightly less springy, but the dish is still good.

Broth-enriched version (cold days): Add a small piece of dried shrimp and a slice of ginger to the poaching stock. Simmer for 10 minutes before adding fish balls. Remove the shrimp and ginger before serving.

Summer version: Keep the broth very plain — just water, salt, and white pepper. Add only scallion greens at the end. The clean flavor is refreshing.

Guest version: Serve with two small dipping sauces on the side — black vinegar with shredded ginger, and chili oil with soy sauce. Let guests dip, but never mix into the pot.

How I Serve This Dish

When I serve this at home, people always start by tasting the broth first. That small ritual says a lot about the culture behind the dish: the soup is not decoration, it is part of the identity. A good bowl tastes clean, warm, and honest.

What to serve alongside:

  • Plain rice or congee (the mild starch pairs perfectly)
  • A crisp vegetable dish (stir-fried bok choy or cucumber salad)
  • Nothing else — the fish balls and broth are often enough for a light meal

Serving style: Individual bowls. Ladle the fish balls and broth into each bowl. Sprinkle with scallion greens and a few drops of sesame oil (if using).

Leftovers? This dish is best fresh, but it keeps reasonably well.

StorageDurationNotes
Cooked fish balls + broth (together)Fridge, 1 dayTexture will be slightly less springy.
Cooked fish balls alone (no broth)Fridge, 2 daysBetter to store separately from broth.
Raw shaped fish balls (not cooked)Freezer, 1 monthFreeze on a tray, then transfer to a bag.
ReheatGentle simmer (not boil), 2-3 minutesAdd fresh scallion greens after reheating.

Freezing raw fish balls: Arrange shaped raw fish balls on a parchment-lined tray. Freeze until solid. Transfer to a freezer bag. They can go directly from freezer to simmering broth — just add 2-3 extra minutes to the poaching time.

FAQ: Common Questions Answered

Q: Why are my fish balls cottony instead of springy?

A: Two possible reasons. First, the fish paste was not kept cold. Warm fish proteins cannot form a strong gel network. Second, you stirred back and forth instead of in one direction. Keep the fish cold. Stir in one direction only.

Q: Why do my fish balls taste fishy?

A: The fish was not fresh enough. Wenzhou fish balls rely on the natural sweetness of very fresh fish. Buy fish the same day you plan to cook. Smell it before buying — it should smell like the ocean, not like fish.

Q: Why did my fish balls fall apart in the pot?

A: The water was boiling too hard. Aggressive bubbles tear the fish balls apart before they can set. Poach gently — the liquid should tremble, not boil. If you see large bubbles, lower the heat.

Q: Can I use frozen fish?

A: Yes, but the texture will be slightly less springy. Thaw completely in the fridge. Pat dry before using. For best results, use fresh fish.

Q: Can I make this recipe without pork fat?

A: Yes. Use 1 tablespoon of neutral oil instead. The fish balls will be leaner and lighter. The texture will still be good.

Q: Why do I need to add water in small additions?

A: Adding all the water at once can make the paste too loose. If that happens, you might add more starch to compensate, which makes the fish balls dense and rubbery. Small additions give you control.

Q: Do I have to use sweet potato starch?

A: Sweet potato starch is traditional and gives the best texture. Potato starch works, but reduce the water slightly (70-80ml instead of 80-100ml). Cornstarch is not recommended — it makes the fish balls too soft.

Q: How do I know when the fish balls are done?

A: When they float to the surface, they are almost done. Poach for 2 more minutes after they float, then remove one and cut it open. The center should be opaque and cooked through.

Q: Can I make this dish in advance for a dinner party?

A: Partially. You can make the fish paste up to 24 hours in advance (keep refrigerated). You can also shape the raw fish balls and freeze them. But poach them fresh — do not cook them ahead of time and reheat. The texture degrades quickly.

Q: Why do Wenzhou fish balls look irregular, not perfectly round?

A: The irregular shape is traditional. Hand-formed fish balls cook more evenly in gentle broth. Perfectly round spheres often become denser because they are more compact. Embrace the irregular shape — it is part of the dish’s identity.

Three Practical Variations I Use

VersionFishBrothBest For
WeeknightFrozen sea bass (thawed)Water + ginger + saltBusy evenings
TraditionalFresh croakerClear stockAny day
Broth-enrichedFresh hairtailStock + dried shrimp + gingerCold days, guests

Weeknight version steps: Use high-quality frozen fish. Skip the pork fat. Use water instead of stock. The texture will be slightly less springy, but the dish is still deeply satisfying.

Broth-enriched version steps: Add a small piece of dried shrimp and a slice of ginger to the stock. Simmer for 10 minutes before adding fish balls. Remove the shrimp and ginger before serving. The broth will have a deeper, more savory flavor.

Nutritional Breakdown (Per Serving)

NutrientAmount% Daily Value (approx)
Calories19510%
Protein25g50%
Carbs11g4%
Fat7g9%
Fiber0g0%
Sodium380mg16%

Notes:

  • This is a high-protein, relatively low-fat dish when kept simple.
  • Most of the fat comes from the optional pork back fat. Skip it for a leaner version.
  • Serve with plain rice or congee plus a crisp vegetable for a complete, balanced meal.

Final Thoughts

Wenzhou fish balls taught me that restraint is the secret. Keep the fish cold. Stir in one direction. Poach gently, never boil hard. When I tried to rush or add more flavor, the result was worse.

I hope my cottony fish balls, fishy broth, and disintegrating batches help you skip those mistakes. This dish is precise, but it is not difficult. Once you feel the texture of the paste in your hands — glossy, thick, elastic — you will know when it is ready.