Go Back
+ servings
Print Recipe
5 from 7 votes

Sweet and sour vegan 'fish' - 糖醋素鱼

This vegan 'fish' is made from seasoned tofu and mushrooms that are then wrapped in seaweed and rice paper. Once they are shallow fried, these are toss in a sweet and tangy sauce for an appetizing meal.
Prep Time45 minutes
Cook Time25 minutes
Total Time1 hour 10 minutes
Course: Main Course, Side Dish
Cuisine: Asian, Chinese, Malaysian
Keyword: Alliumfree, tofu
Servings: 3
Author: woonheng


  • 10 oz King trumpet mushrooms
  • 16 oz firm tofu pressed or moisture removed
  • 6 nori sheets
  • 6 large rice paper [22cm-25cm]
  • ½ teaspoon sugar
  • ½ teaspoon mushrooms seasoning
  • 1 teaspoon salt
  • dash of white pepper
  • 1 tablespoon cornstarch plus more for dusting


  • 1 cup water
  • 2 tablespoons ketchup
  • 1 tablespoon rice vinegar
  • 2 tablespoon sugar
  • 1 teaspoon lemon juice
  • 1 tablespoon soy sauce
  • ½ teaspoon salt
  • 1 small tomato cut into cubes
  • ¼ cup chopped cucumber skin removed

Cornstarch slurry

  • 1 teaspoon cornstarch + 1 teaspoon water mix to combine


  • Using your hands, tear the mushrooms into large pieces. (Alternatively, you can do this with a knife.)
  • Heat a nonstick skillet with 2 teaspoons of oil over medium-low heat. Sauté the mushrooms until they start to form a brown crust, 3 to 5 minutes. Season with a pinch of salt and transfer to a food processor.
  • Then, add the tofu, breaking it into smaller pieces while adding. Season with sugar, mushrooms seasoning, salt, pepper, and a tablespoon of cornstarch. Blend until thoroughly combined. Empty to plate and divide into 6 equal portions.
  • Setup up the wrapping station. Fill a shallow plate with clean water and prepare a chopping board.
  • To make the vegan 'fish', dip a rice paper in the water and rotate a few times until you don't see any dry spot. The rice paper remains slightly firm. Place it on the chopping board and top it with a sheet of nori and press gently to adhere.
  • Add a portion of filling on the lower end of the sheet, then fold the left and right edges in. Lift up the bottom and loosely fold over the filling. Then roll it to the top to seal. Important note: Because the filling will expand during cooking, loose packing will prevent the skin from bursting.
  • Now, add enough oil to a large skillet to rise about 1-cm up the sides. Set over medium heat. To test if the oil is ready, you can use a thermometer (aim for 325°F) or drop a small piece of dried rice paper into the oil (if it sizzles, then the oil is ready).
  • Gently slide the wrapped rolls into the hot oil, leaving ½-inch gap in between as the skins are sticky at this point. Shallow fry until a crust forms at the bottom. Turn the rolls with a tong and fry all sides until crispy, about 8-10 minutes. Be sure not to move the rolls around too much until after a crust is formed. If you see cracks, stop frying that side - you'll have another chance to cook it later. Keep an eye on the temperature, if it browns too quickly, lower the heat but maintain a sizzle when frying.
  • When ready, transfer cooked rolls to a plate lined with paper towels to absorb excess oil. Once cool, slice each log into 3 or 4 sections. Coat the open side that shows the tofu filling with a thin layer of cornstarch.
  • Using the same pan with the remaining oil, pan-fry the coated sides until golden brown. Set aside.
  • Clean the pan and set it to medium heat. Add the water, ketchup, vinegar, sugar, lemon juice, salt, soy sauce, and bring to boil.
  • Using the back of the spatula, stir until the sugar has dissolved completely. Slowly thicken the sauce with the slurry until it reaches your desired thickness. Please do not add all the slurry at once as it will turn lumpy.
  • Fold in the tomatoes and cucumber and toss for another 30 seconds. Finally, add the vegan 'fish' and gently toss until they are covered with sauce.
  • Serve warm with a bowl of rice.