How to Make Fish Balls
I love working with simple, honest fish recipes that deliver comforting results without fuss. Fish balls are one of those dishes: humble ingredients, a little technique, and a bowl of soup that feels like home. This method uses a whole mackerel, scraped and chopped into a paste by hand, then simmered in a clear, flavorful broth with seaweed and light seasonings.
This recipe emphasizes texture and technique more than clever shortcuts. You’ll scrape meat off the skin, chop until the fish is slightly sticky, season, shape by hand, and cook in a broth made from the fish bones. The finished soup is clean, slightly briny from the seaweed, and finished with garlic oil and scallions for brightness.
Follow the steps in order and keep a few of the practical tips in mind—wet hands for shaping, a steady chopping rhythm, and a gentle simmer for the broth—and you’ll get consistent, tender fish balls every time. I’ll walk you through equipment, substitutions, troubleshooting, and freezer notes so this becomes a go-to technique.
What You’ll Gather
- 1 whole mackerel with bones and head, about 2 1/2 lbs. (1.2 kg) — the primary protein; flesh for the paste and bones for broth.
- 2 teaspoons salt — seasons the fish paste and helps extract proteins for a better texture.
- 1 teaspoon ground white pepper — gentle heat and classic pairing with fish; keeps the soup clear.
- fish bones, discard the fish head, chopped into 3 pieces — use these to build the base broth.
- 1 can chicken broth — adds body and savory depth to the soup; keeps the broth rounded.
- 4 cups water — dilutes and forms the cooking liquid for simmering bones and cooking fish balls.
- 1 oz (30 g) Chinese seaweed, 紫菜 — adds umami and a touch of the sea; softens quickly in hot broth.
- 1 tablespoon soy sauce — for savory balance; a small amount goes a long way here.
- 1 teaspoon sesame oil — finishing oil for aroma and a gentle nutty note.
- white pepper and salt to taste — final seasoning adjustments after tasting the broth and fish balls.
- garlic oil — optional finishing drizzle; adds richness and a sharp garlic flavor.
- some shredded lettuce leaves — placed in bowls before ladling the soup; they soften and add mild freshness.
- 1 stalk scallion, cut into rings — for garnish and a bright, oniony finish.
Make Fish Balls: A Simple Method
- Rinse the whole mackerel under cold running water and pat dry with paper towels.
- Place the fish on a cutting board. Using a very sharp knife, fillet the fish by cutting along the backbone from the tail toward the head on one side, then repeat on the other side to remove both fillets. Remove and discard the fish head. Set the remaining fish bones aside and chop them into 3 pieces (these will be used for the broth).
- Use a spoon to scrape the fish meat off the skin of each fillet (scrape from tail toward head). Discard the skins. Use the spoon to scrape any remaining meat off the fish bones. Put all scraped fish meat into a bowl.
- Transfer the fish meat to a clean chopping board. Using a Chinese cleaver or large sharp knife, chop the fish meat continuously for about 10 minutes until it becomes slightly sticky.
- Add 2 teaspoons salt and 1 teaspoon ground white pepper to the chopped fish. Continue chopping for another 10 minutes, until the mixture becomes a smooth fish paste.
- Wet your hands with water. Scoop a level tablespoon of the fish paste and shape it into a ball in your palm. Repeat until all the paste is used, re-wetting your hands as needed to prevent sticking.
- In a 5-quart soup pot, combine 1 can chicken broth, 4 cups water, and the 3 chopped fish-bone pieces. Bring to a boil over high heat, then reduce heat to low–medium and simmer for about 20 minutes to develop flavor.
- Remove and discard the fish-bone pieces from the pot. Increase heat to bring the broth back to a gentle boil. Carefully drop the prepared fish balls into the boiling broth.
- Add 1 oz (30 g) Chinese seaweed (紫菜), 1 tablespoon soy sauce, and 1 teaspoon sesame oil to the pot. Taste and adjust seasoning with additional salt and white pepper to taste.
- When the fish balls float to the surface and are firm and cooked through, turn off the heat.
- Divide shredded lettuce leaves among serving bowls. Ladle the fish-ball soup into the bowls, drizzle with garlic oil to taste, and garnish with the scallion rings. Serve immediately.
Why This Fish Balls Stands Out
This approach is straightforward and focused on texture. Scraping the flesh off the skin and bones gives you clean, white meat without skin bits, which makes for a smoother paste. The long, steady chopping develops the fish proteins into a cohesive, slightly sticky paste without needing binders like egg or starch.
Using the fish bones to make the broth is efficient and intentional: you get a clear, fish-forward stock that complements the balls rather than overpowering them. The small additions—seaweed, a splash of soy, sesame oil, and garlic oil—round the flavors without masking the fish.
Substitutions by Category

- Fish — If mackerel isn’t available, use a firm white fish such as cod, pollock, or haddock. These yield a milder flavor and similarly good texture after chopping.
- Broth — Swap the canned chicken broth for low-sodium vegetable broth if you prefer a lighter base, or use homemade fish stock for an all-fish profile.
- Seaweed — If you can’t find 紫菜, use wakame for a slightly different texture or omit entirely and increase the soy slightly to compensate.
- Seasoning — Soy sauce can be replaced with tamari for gluten-free cooking. Sesame oil is flavorful but optional; you can finish with a neutral oil if needed.
- Garnish — Replace shredded lettuce with baby spinach or thinly sliced bok choy for a heartier green.
Before You Start: Equipment

- Very sharp filleting knife — for clean fillets and safe handling.
- Chinese cleaver or large sharp knife — for the continuous chopping step to build paste texture.
- Cutting board — large enough to work comfortably.
- Spoon — for scraping meat off skin and bones.
- Bowl — to collect the scraped meat.
- 5-quart soup pot — roomy enough to simmer the stock and cook the balls.
- Measuring spoons and a tablespoon — keep measurements accurate for seasoning.
- Ladle and slotted spoon — to drop and retrieve fish balls if testing doneness.
- Paper towels — for patting the fish dry.
Troubleshooting Tips
If your fish paste feels too loose and the balls fall apart when cooking: make sure you chopped the fish long enough. The continuous chopping develops the paste’s binding quality; give it the full time the recipe calls for. Also keep your hands wet, not overly wet, when shaping—excess water weakens the surface tension.
If the broth tastes flat: simmer the fish bones for the full 20 minutes to extract flavor. Taste before adding soy and adjust with small increments; it’s easier to add than remove. A pinch more salt or a dash more soy will usually lift the broth.
If the fish balls are rubbery: avoid overcooking. They cook quickly and are done when they float and feel firm. Remove them promptly when they reach that stage.
If the soup becomes cloudy: vigorous boiling or stirring while the balls are added can break them up and cloud the broth. Bring the stock to a gentle boil and drop in balls carefully; reduce to a simmer once they’re in, if you want a clearer broth.
Seasonal Adaptations
Spring/Summer: Keep it light. Serve with shredded lettuce and a squeeze of lime for brightness. Add fresh herbs like cilantro or Thai basil at the end.
Autumn/Winter: Make the broth heartier—add sliced daikon or napa cabbage to the simmering pot. A few slices of ginger in the broth add warming depth without changing the character of the dish.
Holiday/Comfort: Double the batch of fish balls and serve them over thin wheat noodles for a more substantial meal. Finish with extra garlic oil for richness.
Insider Tips
- Chop in one direction with a rhythm. Ten minutes can feel long, but it develops the right texture—think of it as low-tech emulsifying.
- Keep a small bowl of water nearby for wetting your hands. Wet palms shape smooth balls; damp hands, not soggy ones.
- Shape to a consistent size—about a level tablespoon—so they cook evenly.
- Don’t overcrowd the pot when boiling. Give the balls space so they don’t stick together and the broth can circulate.
- Use garlic oil sparingly at first; a little goes a long way and it’s easiest to add more at the table.
Freezer-Friendly Notes
You can freeze both raw and cooked fish balls.
- To freeze raw: Arrange shaped fish balls on a baking sheet lined with parchment, freeze until firm (1–2 hours), then transfer to a labeled freezer bag. They’ll keep for up to 1 month. Cook from frozen—add a minute or two to cooking time.
- To freeze cooked: Cool completely, flash-freeze on a tray, then bag. Reheat gently in simmering broth or microwave covered with a little water. Use within 1 month for best quality.
- Thaw overnight in the refrigerator if you prefer to reheat from thawed. Avoid refreezing thawed fish balls for food safety and quality reasons.
FAQ
- Can I use a blender or food processor instead of chopping? Yes, but use short pulses and avoid overprocessing. The hand-chopping method gives a cleaner texture many home cooks prefer; processors can heat the fish and change the texture.
- Can I skip the broth made from fish bones? You can, but you’ll lose depth. Using the bones is efficient and gives a clean, savory base. If you must skip, use high-quality chicken or vegetable broth and taste carefully.
- How do I know when fish balls are cooked? They float and feel firm to the touch. They cook quickly, typically within a few minutes once in boiling broth.
- Can I pan-fry these instead of simmering? These are designed for the soup method. If you want pan-fried fish cakes, you’ll need a binder (egg or starch) and a different shaping method.
Time to Try It
This Fish Balls recipe is practical, forgiving, and rooted in technique rather than tricks. The most important parts are clean filleting, thorough chopping, and careful simmering. Once you get the rhythm, this becomes a comfort food you can make again and again—easy to scale, easy to adapt.
Make a pot on a chilly evening, spoon it into bowls over shredded lettuce, drizzle with garlic oil, and tuck in. Let me know how your first batch turns out and any small changes you make; I love hearing what works in real kitchens.

How to Make Fish Balls
Ingredients
Ingredients
- 1 whole mackerel with bones and head about 2 1/2 lbs. (1.2 kg)
- 2 teaspoonssalt
- 1 teaspoonground white pepper
- fish bones discard the fish head, chopped into 3 pieces
- 1 canchicken broth
- 4 cupswater
- 1 oz 30 gChinese seaweed, 紫菜
- 1 tablespoonsoy sauce
- 1 teaspoonsesame oil
- white pepper and salt to taste
- garlic oil
- some shredded lettuce leaves
- 1 stalkscallion cut into rings
Instructions
Instructions
- Rinse the whole mackerel under cold running water and pat dry with paper towels.
- Place the fish on a cutting board. Using a very sharp knife, fillet the fish by cutting along the backbone from the tail toward the head on one side, then repeat on the other side to remove both fillets. Remove and discard the fish head. Set the remaining fish bones aside and chop them into 3 pieces (these will be used for the broth).
- Use a spoon to scrape the fish meat off the skin of each fillet (scrape from tail toward head). Discard the skins. Use the spoon to scrape any remaining meat off the fish bones. Put all scraped fish meat into a bowl.
- Transfer the fish meat to a clean chopping board. Using a Chinese cleaver or large sharp knife, chop the fish meat continuously for about 10 minutes until it becomes slightly sticky.
- Add 2 teaspoons salt and 1 teaspoon ground white pepper to the chopped fish. Continue chopping for another 10 minutes, until the mixture becomes a smooth fish paste.
- Wet your hands with water. Scoop a level tablespoon of the fish paste and shape it into a ball in your palm. Repeat until all the paste is used, re-wetting your hands as needed to prevent sticking.
- In a 5-quart soup pot, combine 1 can chicken broth, 4 cups water, and the 3 chopped fish-bone pieces. Bring to a boil over high heat, then reduce heat to low–medium and simmer for about 20 minutes to develop flavor.
- Remove and discard the fish-bone pieces from the pot. Increase heat to bring the broth back to a gentle boil. Carefully drop the prepared fish balls into the boiling broth.
- Add 1 oz (30 g) Chinese seaweed (紫菜), 1 tablespoon soy sauce, and 1 teaspoon sesame oil to the pot. Taste and adjust seasoning with additional salt and white pepper to taste.
- When the fish balls float to the surface and are firm and cooked through, turn off the heat.
- Divide shredded lettuce leaves among serving bowls. Ladle the fish-ball soup into the bowls, drizzle with garlic oil to taste, and garnish with the scallion rings. Serve immediately.
Notes
Don’t rush the chopping!It might feel like a lot of work, but the more you chop, the better the texture will be. Aim for about 10 minutes of chopping and take your time with it. This step is key to getting that perfect bounce.
Fish balls cook super fast, so add them to the soup just before it starts boiling. When theyfloat to the top, that’s your cue to turn off the heat. Don’t overcook them, or they’ll get tough—keep an eye on them.

