Vegan Curry ‘Fish’ Balls
A fragrant spice blend and clever starch combo give this Hong Kong street food its signature umami and bounce.
- Makes
about 40 balls
- Time
2 hours 15 minutes

A vegan version of the iconic Hong Kong snack, this “fish” ball recipe achieves the bouncy, toothy texture the street food is so beloved for. In a pinch, store-bought Madras or Thai yellow curry paste can stand in for homemade, though the dish won’t taste quite the same. Potato flour and sweet potato flour (not to be mistaken for potato starch) as well as wheat starch can be found at many Asian grocery stores and online.
Featured in “That Chewy, Bouncy Texture You Love Has a Name” by Cathy Erway in the Spring/Summer 2025 issue. See more recipes and stories from Issue 204 here.
Ingredients
For the mushroom powder:
- 2 oz. dried shiitake mushrooms (about 1½ cups)
- 1 Tbsp. fine salt
- 1 Tbsp. sugar
For the curry paste:
- ½ cup vegetable oil
- 1 Tbsp. coarsely chopped fresh ginger
- 6 garlic cloves, coarsely chopped
- 1 large onion, coarsely chopped
- ¼ cup plus 2 Tbsp. Madras curry powder
- 3 Tbsp. ground turmeric
- 1 Tbsp. fine salt
- 1 Tbsp. sugar
- ¼ tsp. ground white pepper
- 1–2 bird’s-eye chiles, thinly sliced (optional)
For the “fish” balls:
- 2 large waxy potatoes (about 1 lb.), peeled and coarsely chopped
- 6 oz. firm tofu
- 2 tsp. white miso
- 1 cup potato flour
- ¼ cup sweet potato flour
- ¼ cup wheat starch
- 1½ tsp. fine salt
- 1 tsp. sugar
- Ground white pepper
- 3 Tbsp. vegetable oil, divided
For the sauce:
- 1 Tbsp. cornstarch
- ¼ cup coconut milk
- 1 Tbsp. light soy sauce
Instructions
Step 1
Step 2
Step 3
Step 4
Step 5
Step 6
Step 7
Step 8
Step 9
- Make the mushroom powder: Use a pastry brush to dust off the mushrooms. (They should be dry and brittle; if they’re soft, in a skillet over low heat, dry the mushrooms for 5–6 minutes, then cool completely.)
- Break the mushrooms into small pieces into a food processor or spice grinder, then grind to a fine powder. Add the salt and sugar and process; set aside. (The powder will keep in an airtight container at room temperature for up to 6 months.)
- Make the curry paste: In a medium pot over medium heat, cook the oil, ginger, garlic, and onion, stirring occasionally, until softened, about 5 minutes. Stir in the curry powder, turmeric, salt, sugar, and white pepper. Turn the heat to medium-low and cook, stirring frequently, until pasty and darkened, about 9 minutes. Stir in the chiles if desired, and cook for 1 minute more. Transfer to a blender and purée; set aside. (In an airtight container, the paste will keep in the fridge for up to 6 months.) Clean the blender and pot and return the latter to the stove.
- Make the “fish” balls: Fill the pot with 4 inches of water and bring to a boil. Add the potatoes, turn the heat to medium-high, and simmer until fork-tender, 15–20 minutes.
- Meanwhile, in the blender, purée the tofu, miso, and 3 tablespoons of water until smooth and set aside.
- Drain the potatoes, then return to the pot and use a potato masher to mash well. Add the tofu mixture, potato flour, sweet potato flour, wheat starch, salt, sugar, white pepper to taste, and 1 teaspoon of the mushroom powder and mix to combine. (Reserve the remaining mushroom powder for another use.) Roll the mixture into 1¼-inch balls and transfer to a baking sheet.
- Fill a large pot with 6 inches of water and bring to a boil. Working in batches, boil the balls until they float, 5–6 minutes. Using a slotted spoon, transfer to a large bowl and toss with up to 1 tablespoon of the oil to prevent sticking.
- Make the sauce: In a small pot, whisk together the cornstarch and 2 tablespoons of water, then whisk in the coconut milk, soy sauce, 2 tablespoons of the curry paste, and 1 cup of water. (Reserve the remaining curry paste for another use.) Bring to a simmer over medium heat and cook until the sauce is thickened slightly, 2–3 minutes. Remove from the heat and cover to keep warm.
- To a wok or skillet over high heat, add the remaining 2 tablespoons of oil. When it’s hot and shimmering, working in batches, fry the balls, turning occasionally, until deep golden brown and crisp, 3–5 minutes. Transfer to a large bowl and tent with foil. When all of the balls are fried, add the sauce and gently toss to coat. Serve hot, on skewers if desired.
Keep Reading
Continue to Next Story