Yufu, or Cantonese fish tofu! One of my all time favorite ingredients, I’m really happy we could finally crack this nut.

0:00 – Why everyone loves tofu puffs
0:22 – Introducing Cantonese Fish Tofu Puffs
1:44 – What fish to use?
2:25 – Making the fish tofu
7:46 – Making a milky fish stock
9:36 – Chris’s fish tofu, up to Steph’s standards?


* Dried scallops (干瑶柱) -or- shrimp, ~10 or 8g mixed with ~1 cup hot, boiled water
* Fish fillet, preferably a fish high in myosin like lingyu, snapper, or bass (we used Tilapia), 325g
* Salt, 8g (1/2 tbsp)
* Slurry: potato starch (土豆淀粉), 100g mixed with 100mL of the above scallop soaking liquid
* Scallop soaking liquid from above, 50mL
* Fish sauce (鱼露), 5g, optional
* Egg white, 165g (about four large eggs worth)
* Peanut oil (花生油), 1 tbsp


Soak the dried scallops in hot, boiled water and set aside. The water should be cool by the time you use it (~60 minutes)

Slice your fillet of fish into thin sheets to ensure all pin bones are broken up. Then, using a pair of cleavers, begin to mince the fish into a fine paste. Doing so takes about five minutes for lingyu, fifteen minutes for tilapia, and somewhere in the middle for bass. At this point, your scallops should be cool and reconstituted – minced those up as well, combine, and mince it all together for another couple minutes. Optionally, I also like finish things by chopping in the same motion with a back of a knife for ~2 minutes to develop a bit of spring. Move over to a very large mixing bowl.

Add in the salt and stir very well – in one direction only. Then add in your slurry – bit by bit – and also stir that in in the same direction. Then go in with the scallop soaking liquid, and the fish sauce, and then the egg white all in the same manner. Take your time really stirring things together – from the time of adding the salt to finishing it all up, this takes me about fifteen minutes.

Right before frying, add in the 1 tbsp of peanut oil and intensely stir in the same manner for about two minutes.

Get a wok of oil up to a gently warm 65C. Squeeze the fish paste through your purlicue onto an oiled spoon and gently drop that into the wok. Work through your fish paste, then turn your flame to medium low.

After about 5-10 minutes, the fish tofus will begin to want to ‘pop’ up. Gently separate from the wok, then also gently break them apart. With a spider or strainer, push the tofus into the oil, while also shuffling them about. The tofus will puff and expand. Once they’re golden brown, after about 10-15 minutes, transfer over to a paper towel lined plate.


Add ins for the soup:
* Fish tofus, 10 pieces
* Wood ear mushrooms (木耳), 5g
* Carrot, ~2 inches
* Luffa gourd (丝瓜), half -or- chayote (佛手瓜), 1

* Fish bones, belly, and head from one large fish
* Lard or oil to fry, ~1 tbsp
* Garlic, 3 cloves, smashed
* Hot, boiled water, ¾ cup
* Optional bit of dried scallop soaking liquid – enough to top up the milky fish stock to 750mL after straining
* Seasoning:
Salt, ½ tsp
Sugar, ½ tsp
MSG (味精), 1/8 tsp
White pepper powder (白胡椒粉), ½ tsp
Fish sauce (鱼露), ½ tsp
* Optional bit of julienned mild chili for garnish

Soak the wood ear mushrooms in cool water for about one hour.

Slice the wood ear into about 1cm pieces. Peel, then slice the carrot into about half cm sheets. Peel, then chop the luffa gourd or chayote into one inch pieces.

Melt the lard in a hot (preferably stick) wok or pot and fry the fish parts over a medium high flame. Once some fond is beginning to form, add in the crushed garlic and stir fry for 15-30 seconds. Add in the hot water and cover. The soup should be kept at a light boil, so something like a medium/medium low flame should be good.

Strain the stock. Optionally top off with the scallop soaking liquid to get to 750mL (water is also ok). Add the soup to a small pot and bring to a light boil.

Add in the mushroom and cook for 1 minute. Then the carrot, 1 minute. Luffa gourd, 1 minute. Then add in the fish tofus.

Add in the seasoning, and let everything boil together for 30-60 seconds. Transfer to a bowl and optionally garnish.

And check out our Patreon if you’d like to support the project!

Outro Music: คิดถึงคุณจัง by ธานินทร์ อินทรเทพ
Found via My Analog Journal (great channel): https://youtu.be/GHaL5H-VYRg


22 thoughts on “The crispy, chewy Cantonese fish 'tofu' (绉纱鱼腐)”

  1. Hey guys, a few notes:

    1. Apologies about the slight shade at 2:25 – after reflecting on it, I know that ‘tilapia is Chinese garbage’ definitely isn’t the predominant opinion abroad (just a loud minority in the food space). It’s just… I was trying to find a visual for “Tilapia worldwide having a bad reputation”, and the corners of the internet that that brought me? Just pissed me off. So, rant incoming (cooking notes will continue at #5):

    2. First, the not-so-subtle racial hue to a lot of the rhetoric online about ‘Chinese tilapia’ really kind of disgusted me. Like, maybe I’m going crazy, but I’m pretty sure that it’s not even legal to import tilapia to the States? Like, I’m looking at the list of eligible exports and Tilapia’s decidedly not on the list https://www.fsis.usda.gov/inspection/import-export/import-export-library/eligible-foreign-establishments Perhaps I’m misinterpreting something, perhaps the USDA includes Tilapia in the category of Siluriformes (i.e. catfish)? I highly doubt it though.

    3. Second, from a culinary perspective I just can’t get on this ‘tilapia is utter trash’ train. While it’s not the most umami fish in the world or anything it’s (1) meaty without many bones and (2) easy to raise and cheap to produce. Application wise, I conceptualize it as the fish equivalent of the standard American supermarket chicken – would I want the former gently steamed in the Cantonese style, or the latter in the form of something like Hainan chicken rice? Probably not. But just because an ingredient isn’t super tasty in its most delicate preparations doesn’t mean that it doesn’t have value.

    4. Third, from an environmental perspective, I’m so sick of people getting on their high horse about the subject of aquaculture. A lot of the criticisms levied against aquaculture can be equally levied against agriculture in general. I personally do not have any dietary restrictions (life’s short and I adore food), but if I were to choose a single one from an ethical perspective, it would be to stop eating wild caught fish. If we were to hunt venison in the way that we hunted tuna, the environmental carnage would be a lot more obvious. If, say, some sort of theoretical massive blimp with enormous nets cut through a forest the way a trawler cuts through the ocean, I don’t think people would stand for it. But buried under the waves? Out-of-sight, out-of-mind kind of deal, I guess.

    5. Ok, sorry about that. Back to the topic of the recipe – note that for the soup, that 750mL of liquid is more of a ‘soup’ quantity than a ‘tang cai’ (soup dish) quantity. With the latter, you don’t want to overdo the soup quantity, generally speaking. I wanted to use up all the leftovers from the fish and figured a little extra stock wouldn’t kill anyone. For reference, we likely used 400-500mL of the soup to serve the dish, and simply drank the extra on the side.

    6. I do really enjoy the addition of dried scallops to the fish paste. Even when I had access to lingyu in Guangdong, in my fish pastes (for stuffed chilis and such), I still enjoyed tossing in some dried scallop.

    7. If you ever get the chance to go to a Cantonese market, definitely search out the lingyu vendors. There’s something pseudo-hypnotic about watching them work.

    8. Oh, you can also absolutely use a food processor to get 90% of the way there. I would still do a touch of chopping personally (swirling back into the recipe at 3:46 most likely)

    , but that might be overly obsessive.

    9. I do hope that you can give this dish a try. For whatever reason, any time ‘fish’ is brought into play, the number of people reporting actually trying a recipe of ours seems to absolutely plummet. It’s a really really fun dish to cook.

    That’s all for now. Sorry about the extra time in between videos there, definitely enjoyed our first Songkran in Thailand 🙂

  2. If I didn't know any better, I'd think you were shuffling around a wok full of potatoes! Those puffed up fish tofus look mighty tuber-like.

  3. super interesting , i was planning to make normal fishcakes w all this fish i got but im going to try this instead ! looks awesome thanks so much for all ur hard work as always and ur right abt tilapia . is a perfectly fine fish but unfortunately the overarching "china thing = bad" clouds most ppls minds

  4. Is there any concern about overworking the fish meat when chopping, like for meatballs? I'm wondering if a food processor might be a valid alternative

  5. I don’t understand, I have the special bell for your channel yet YouTube REFUSES to show me your videos in my sub box and it’s not only your videos

  6. I have made these before and we love them! But, if I had to do it by hand… I'd have never done it. A food processor is the way to go.

  7. Thank you for sharing! My grandfather brought a similar recipe from Shunde but had to adapt it to Guatemalan style. I am so happy to know this is really Cantonese food, I doubted myself for years since our local Chinese restaurants don't have this in the menu. 🙏

  8. Insanely bomb, i didn't realize my Chinese restaurant was serving me this i thought it was regular fish cake for a while but it turned out to be this ! One of my favorite things to eat in a soup like ma la tang

  9. This fish tofu is like a match made in heaven. Fried spongy puffballs but with fish and egg white as filling and then you can have it soak in a soup or broth. My mind is blown. I will never know true gastronomic bliss until I taste this someday.

Comments are closed.