Recipe Thirty-One · Foochow

Foochow Fishball Soup

福州鱼丸
Pork-Filled Fish-Paste Balls in Clear Bone Broth, Fuzhou-style
A heritage Singapore Foochow hawker stall in the 1960s–70s. Uncle Lau, a male stallholder in his late 50s with salt-and-pepper hair and a dark canvas apron, pounds pale-cream fish paste with a heavy wooden mallet on a timber chopping block. Around him: a stoneware basin of raw fish, bowl of pork-and-water-chestnut filling, bamboo tray of finished fishballs, and a heavy iron pot of clear pork-and-fish-bone broth on a low charcoal stove. Painted heritage style.
Heritage Note from Hock Ko

This is the dish that taught me the word "patience." Uncle Lau used to say it before he started pounding the fish — "patience first, then the springiness comes."

Foochow fishball — fúzhōu yúwán in Mandarin, ngṳ̀-uòng in the Foochow tongue — is one of Fujian's great gifts to the world. The dish is the proud signature of Fuzhou (Foochow), the capital city of Fujian province, and the city was officially designated by the China Fisheries Association in 2012 as "Fish Ball City." The designation is documented on the Fujian Provincial Government's official tourism site; Fuzhou today produces over 3 billion fish balls a year for global export.

Uncle Lau taught me this dish in his small fishball stall in Geylang in the late 1970s, when I was already running my own Hokkien Mee stall a few streets away and would walk down to his stall in the afternoons after my lunch crowd thinned. Uncle Lau was Sibu-born — his father was one of the New Foochow settlers who arrived in Sibu in 1901 with Wong Nai Siong, the Foochow scholar-revolutionary who had recruited 1,118 villagers from Fujian to open up the Rajang River basin in Sarawak. The first batch landed at Sungai Merah ("Red River") on 12 January 1901; the second batch, led by Wong himself, arrived on 16 March 1901 — a date still observed as New Foochow Resettlement Day by Fuzhou descendants worldwide. Of those original 1,118 settlers, reportedly between one hundred and two hundred either died from malaria and cholera in the early years or moved on to Singapore, Penang, Kuching, or Sitiawan in Perak — and Singapore's small Foochow community traces back to those scattered second-and-third-generation diaspora arrivals.

The dish has two parallel-heritage forms:

  • Filled (Sibu-Foochow standard): the springy fish-paste exterior wraps a centre of seasoned minced pork mixed with diced water chestnut. This is the form most commonly served at Singapore's surviving Foochow eateries — Seow Choon Hua at Beach Road and the long-running Zhong Xing Foo lineage are documented examples. This is the version I will give you.
  • Plain (Hokkien-Teochew standard): the same fish-paste exterior, no filling, served in clear pork broth with mee pok or kway teow. The Teochew fishball most Singaporeans grow up eating is this plain form.

Two further heritage notes worth carrying: the signature springy bouncy texture — what Singapore-Foochow cooks call qq — comes from sweet potato starch, which arrived in Fuzhou via maritime trade from Luzon in 1593, late Ming dynasty. Reportedly it took Fuzhou cooks several decades of experimentation before the starch was incorporated into the fish paste — and once it was, the modern Foochow fishball as we know it was born. The Foochow word for fishball, ngṳ̀-uòng, is sometimes called "balls of blessings" — a play on the Fu (福) in Fuzhou's name, which itself means "blessing." Reportedly the dish appears at every major Fuzhou family celebration and Lunar New Year reunion as a symbol of completeness and good fortune.

Uncle Lau closed his stall in 1992 when his knees gave out. His son did not take it over. There are now perhaps four or five stalls in Singapore that still hand-pound the fish paste from scratch and hand-shape the fishballs with the spoon-and-tiger's-mouth method. Most of the rest buy frozen fishballs from factory suppliers. The frozen ones are not bad. They are not Uncle Lau's.

Serves
4
Active Time
1.5 hrs
Total Time
4 hrs
Difficulty
★★★★

🛒Ingredients

Three components: the fish paste, the pork filling, and the clear broth. The hand-pounding is the bottleneck and the soul.

For the Fish Paste makes ~30 fishballs

Spanish mackerel (batang) fillet500 g, deboned, skinlessThe heritage Singapore fish for fishball paste. Substitutes: yellowtail, threadfin (ikan kurau), or wolf herring (ikan parang). NOT cod or salmon — wrong texture and oil content.
Cold water100 mlCritical — must be ice-cold to keep the proteins springy.
Sweet potato starch3 tbspThe heritage starch — gives the qq bounce. Substitutes: tapioca starch (acceptable), cornflour (last resort, less authentic).
Salt1 tsp
Sugar½ tsp
White pepper¼ tsp
Sesame oil1 tsp
Egg white1

For the Pork Filling filling for ~30 fishballs

Minced pork (shoulder, 70/30 lean/fat)200 g
Water chestnuts60 g, peeled and finely diced
Light soy sauce1 tbsp
Shaoxing wine1 tsp
Sesame oil1 tsp
White pepper½ tsp
Sugar½ tsp
Spring onion, finely chopped1 tbsp
Cornflour1 tsp

🌶️Shifu's Lift

choose one path — see "Shifu's Secret" chapter for the philosophy
  • Old-school path: ¼ tsp MSG in the fish paste
  • Modern hawker path: ½ tsp chicken stock powder in the fish paste
  • Heritage purist path: reportedly the Sibu masters add 1 tsp of pork lard rendered from the broth bones into the fish paste — gives a deeper savoury body without changing the colour

For the Clear Broth makes 2L, enough for 4

Pork bones (neck or back)800 g
Fish bonesframework left from the deboned mackerelHeritage no-waste principle.
Dried sole fish (ti po)30 g, toasted, tied in muslin
Whole bulb garlic1, halved
Fresh ginger1 thumb, sliced
Cold water2 L
Salt1 tsp, to taste
White pepperto taste

For Serving per bowl

Cooked fishballs6
Hot clear broth350 ml
Spring onion, finely chopped1 tbsp
Fried garlic oil with crisp garlic flakes1 tsp
White peppera pinch
Mee sua (fine wheat vermicelli) optional30 g dry, blanched 30 seconds in a separate pot

Condiment traditional

Bird's-eye chillies sliced thin, in light soy sauceon the sideFor dipping.

👨‍🍳Method

Six stages plus assembly. Pound, fill, shape, build broth, cook fishballs, plate. Patience first, then springiness.

1Stage

Pound the Fish Paste the dish's signature

This is the patience step. Uncle Lau's rule: "If you cheat the pounding, the fishball will tell on you when it cooks."

Pat the fish fillet dry with paper towels. Cut into 2 cm chunks. Place in the freezer for 15 minutes — cold fish pastes better.

Heritage method (heavy wooden mallet on a chopping block): place the chilled fish chunks on a heavy wooden block. Pound with the back of a wooden mallet, working the fish in steady rhythmic strokes, until the flesh breaks down into a smooth pale-cream paste. Add the cold water 1 tablespoon at a time as you pound, letting each addition absorb before the next. After 15 minutes of pounding, work in the sweet potato starch, salt, sugar, white pepper, sesame oil, and egg white. Pound for another 5 minutes until the paste turns glossy and elastic — when you lift a small lump on a spoon and let it fall, it should fall in one continuous heavy ribbon.

Modern method (food processor): pulse the chilled fish chunks with the cold water in short bursts until smooth. Add the remaining ingredients and pulse again until the paste is glossy and elastic. Reportedly about 90 seconds total processing time gets you there; over-process and the paste turns warm and loses its bounce.

Test for readiness: drop a small ball of paste into a bowl of cold water. If it floats within 10 seconds, the paste is properly aerated and ready. If it sinks, pound or pulse another 2 minutes.

Cover and rest the paste in the fridge 30 minutes before shaping.

2Stage

Build the Pork Filling

Combine the minced pork with all filling seasonings in a bowl. Mix in one direction for 3 minutes — same technique as ngoh hiang, same technique as wantan. Add the diced water chestnut and chopped spring onion last; gentle fold to incorporate. Cover and rest 30 minutes in the fridge.

3Stage

Shape the Fishballs the tiger's-mouth method

Set up your station: bowl of fish paste, bowl of pork filling with a small porcelain spoon resting in it, small cup of cold water for slicking your hands, a bamboo tray dusted with cornflour, and a stoneware basin of warm (NOT hot) water for parking the shaped fishballs.

The heritage shaping method:

  1. Wet your left hand. Scoop a generous lump of fish paste into your left palm, about 2 tablespoons.
  2. Close your left hand into a loose fist — the paste squeezes upward through the gap between thumb and forefinger (the "tiger's mouth"), forming a small rounded pocket of paste at the top of your fist.
  3. With your right hand, dip the spoon into the cold water (keeps it slick), then scoop a small portion of pork filling — about ½ teaspoon — and press it gently into the centre of the emerging paste pocket.
  4. Squeeze your left fist tighter — the paste closes over the filling, sealing it inside. The fishball pops out the top of your fist as a uniform round.
  5. Use the slick edge of the spoon to scrape the fishball off your fist and set it down into the basin of warm water.

The fishballs sit in the warm water as you shape — this gentle pre-warming firms the surface so they don't fall apart when they hit the broth.

Step illustration: close-up overhead of two weathered hands at a stoneware mixing basin, mid-action shaping a single Foochow fishball using the heritage tiger's-mouth method. Left hand cupped in a loose fist with pale-cream fish paste squeezed up through the gap between thumb and forefinger. Right hand holding a small porcelain Chinese soup spoon mid-action, scooping pork-and-water-chestnut filling onto the emerging paste pocket. Bamboo tray of already-shaped uniform fishballs in the upper-left corner. The Foochow porcelain tea-bowl with the bold red ring on the back-right edge. Painted style.
Stage 3 — the tiger's-mouth method. The shaping that takes years to learn.
4Stage

Build the Clear Broth

In a large stockpot, blanch the pork bones in boiling water for 5 minutes. Drain, rinse under cold water, and return the bones to the (cleaned) pot. Add the fish-bone framework, the toasted ti po in muslin, halved garlic bulb, ginger slices, and 2 litres of cold water.

Bring to a gentle simmer over medium heat — not a rolling boil. The boil will turn your broth cloudy and milky; you want clear amber. Once at simmer, reduce heat to low and skim the pale foam-scum from the surface every 10 minutes for the first hour. After the first hour, you can leave it alone.

Simmer 3 hours total. Strain through a fine-mesh sieve lined with muslin into a clean pot. Season with salt and white pepper to taste. The broth should be clear pale amber, lightly seasoned, deeply savoury.

Step illustration: three-quarter view of a heavy iron stockpot half-filled with clear pale-amber simmering broth on a brick charcoal stove with glowing embers visible at the base. Inside the broth: pork bones, fish-bone framework, halved bulb of garlic, ginger slices, a muslin-tied bundle of ti po. A weathered hand holds a long-handled bamboo skimmer, mid-action skimming a thin layer of pale foam-scum from the broth surface. The Foochow porcelain tea-bowl with the bold red ring on the right. Painted style.
Stage 4 — three hours of patience. Skim the foam, keep the broth clear amber.
5Stage

Cook the Fishballs

Bring a separate pot of clear broth (or lightly salted water if your broth is precious) to a gentle simmer, NOT a rolling boil. Lower the shaped fishballs in batches of 8–10 — do not crowd.

The doneness cue is the float. Uncle Lau's rule: "When they float, they're cooked. Lift them out immediately. If you wait, they go tough."

The fishballs sink at first, then rise to the surface within 4–6 minutes. The moment they float, lift them out with a wire-mesh strainer.

Critical moment: close-up side view of a heavy iron pot half-filled with clear pale-amber broth, gently simmering. Six to eight off-white Foochow fishballs floating on the surface — the heritage doneness cue. ONE fishball in the foreground partially cut open showing the cross-section: pale-cream springy fish-paste exterior, pinkish pork-and-water-chestnut filling at the centre clearly visible. A weathered hand holds a long-handled wire-mesh strainer above the pot, mid-action lifting one fishball clear. Cream cartouche reading POUND & WRAP with red-rose flourish. Painted style.
The critical moment — pound and wrap. The float is the doneness; lift immediately.
6Stage

Assemble

Ladle hot clear broth into a simple white porcelain heritage soup bowl. Add 6 cooked fishballs. Sprinkle with chopped spring onion, drizzle with fried garlic oil and a few crisp garlic flakes, finish with a pinch of white pepper.

If serving with mee sua: blanch the fine wheat vermicelli in a separate pot for 30 seconds — no longer, mee sua softens fast. Add to a separate bowl and pour broth-and-fishballs over it.

Serve immediately, with a small saucer of bird's-eye chillies in light soy sauce on the side.

Hero bowl: simple white porcelain heritage soup bowl, deep and plain creamy-white, holding clear pale-amber broth with six off-white floating Foochow fishballs. ONE fishball in the foreground on a porcelain spoon, partially cut open, the pinkish pork-and-water-chestnut filling clearly visible at the centre. Scattered chopped spring onion, fried-garlic flakes, dusting of white pepper. A small bamboo basket beside the bowl holds a tied bunch of dry mee sua. Dark wooden chopsticks on a ceramic chopstick-rest, small saucer of bright red-cut bird's-eye chillies in soy. The Foochow porcelain tea-bowl with the bold red ring half-filled with pale tea on the back-right. A small unlabelled glass jar of red-yeast-rice paste (ang chao) on a high shelf in the deep blurred background — pale rose-amber, ambient register only. Painted style.
The plate — simple white porcelain, clear amber broth, springy fishballs. The chapter opens here.

🎯The Three Tips

Heritage. Master's. Mistake.

🏛 Heritage Note

The Foochow Fishball Is Older Than Singapore

The Fuzhou tradition of pounding fish into springy paste predates the arrival of sweet potato starch in 1593, but the modern springy-bouncy fishball as we know it is post-1593. Reportedly the dish travelled from Fuzhou with the maritime trading routes — through the Ryukyu Islands, where it influenced Okinawan and Japanese fish-cake traditions, and southward through the Foochow diaspora to Sibu, Sitiawan, Penang, and Singapore.

For young hawkers thinking about Foochow fishballs as a stall: the pounding is the bottleneck. A skilled pair of hands can pound and shape about 200 fishballs an hour. A frozen-supplier stall can do 2,000 in the same time. The economics are real. But the customer who walks back the second week is the one who tasted the difference.

👨‍🍳 Master's Tip

The Float Test

Two doneness cues for Foochow fishballs:

1. Pre-cook float test in cold water. Drop a tiny ball of raw paste into cold water. If it floats within 10 seconds, your paste is properly aerated and the fishballs will be springy. If it sinks, the paste is over-pounded or under-mixed; pound or pulse another 2 minutes.

2. Cooking float in simmering broth. When the shaped fishballs rise to the surface in the simmering broth, they are cooked through. Lift immediately — Uncle Lau's rule is absolute. Every minute past the float, the paste tightens; a few minutes past, and they go from springy-bouncy to rubber.

⚠ Common Mistake

Cloudy Broth, Tough Fishballs

Boiling the broth instead of simmering it. A rolling boil emulsifies the fat from the pork bones into the water, giving you a milky-white tonkotsu-style broth instead of the clear amber Foochow broth. Gentle simmer always — small bubbles on the surface, no rolling. And skim every 10 minutes for the first hour.

Overcooking the fishballs. People assume "cook longer = safer" — for these fishballs, longer is the enemy. The fish paste is fully cooked the moment the fishballs float. Lift immediately.

Wrong fish. Cod, sea bass, salmon — none have the protein structure or right oil content. Spanish mackerel, yellowtail, threadfin, wolf herring — these are the springy-paste fish. Cod is for fish-and-chips. Salmon is for sashimi.

📈 Scaling for Hawker Service

For a Foochow fishball stall doing 80–120 bowls a day

Noting that fewer than five surviving stalls in Singapore still hand-pound and hand-shape — the rest buy frozen.

  • Fish-paste batch: 5–7 kg fish processed daily, in the morning. Pounding takes a skilled cook 2–3 hours; many stalls now use commercial-grade food processors but the heritage stalls insist on hand-pounding for the final 5 minutes to "wake up the springiness."
  • Fishball production: 600–1,000 fishballs hand-shaped daily, by a single experienced cook in 3–4 hours. This is the labour bottleneck.
  • Broth: 15–20 litres of clear pork-and-fish-bone broth simmered overnight, 6–8 hours, refreshed once at midday with additional bones if service runs late.
  • Cost (Singapore 2026): per bowl ~SGD 2.40 (fishballs 1.40 + broth 0.50 + aromatics 0.20 + mee sua 0.30 if included). Sells SGD 6–9 standard, SGD 10–14 with mixed-soup additions (yan pi, fish dumplings, fishcake). Margin: 60–70%.
  • Where the surviving stalls land: Seow Choon Hua (Beach Road), Zhong Xing Foo (formerly China Street). Reportedly both still hand-pound. Both stalls are documented in Singapore food-writing sources including Miss Tam Chiak and ieatishootipost.
Patience first, then the springiness comes. Pound the fish, shape with the tiger's mouth, simmer the broth gentle, lift the fishball the moment it floats. Skip any one of these four, and you do not have a Foochow fishball — you have a fish-flavoured rubber ball in dishwater. Uncle Lau used to say there are no shortcuts in this dish. Forty years later, I still cannot find any.
— Hock Ko