Cantonese-Style Tofu, Pine Nut, and Jicama Lettuce Cups (San Choi Bao) Recipe

This vegan take on lettuce cups is all about the texture: a mix of crunchy, crisp, and tender bits come together in each savory bite.

By
J. Kenji López-Alt
Kenji Lopez Alt
Culinary Consultant
Kenji is the former culinary director for Serious Eats and a current culinary consultant for the site. He is also a New York Times food columnist and the author of The Food Lab: Better Home Cooking Through Science.
Learn about Serious Eats' Editorial Process
Updated November 07, 2023
Overhead view of a black oblong platter piled high with the filling for Cantonese-style tofu, pine nut, and jicama lettuce cups. A plate of lettuce leaves is nearby.

Serious Eats / J. Kenji López-Alt

Why It Works

  • Jicama has a crunchy, crisp texture very similar to that of traditional water chestnuts and is available fresh in most markets.
  • Carefully drying the tofu helps it brown better.
  • Cooking in batches allows you to stir-fry successfully, even on a home range.

There are some life experiences that I put myself through just so that I have a frame of reference for the general cultural zeitgeist. I don't always enjoy the experiences, but I'm pretty much always happy I went through with them so that I could express an informed opinion one way or the other. It took me a while to start reading Harry Potter, but boy, am I glad I did. I waited on those darn lines at the original Momofuku noodle bar in order to be able to explain succinctly to people why they shouldn't bother. I even suffered my way through a few episodes of Glee and a couple of meals at The Cheesecake Factory.

I'd never been to a P.F. Chang's until when I found myself hungry at a shopping mall with an hour to kill. I asked people on Twitter what to expect, and most of the responses were "overpriced, under-seasoned, mediocre Chinese-American food." I prepared for the worst, but was actually pleasantly surprised with the quality of the food there. It's mediocre, to be sure, but mediocre Chinese-American food still tastes pretty good (unlike mediocre pan-cultural food, as The Cheesecake Factory aptly demonstrates). I especially enjoyed the tofu lettuce wraps, made with ground tofu, water chestnuts, crisp mung bean noodles, and a thin, soy-based dipping sauce.

I mention this only because I think there's an unwritten rule that any article about san choi bao, the Cantonese dish of stir-fried ground meat served in lettuce cups, must include a reference to the P.F. Chang's version within the first two paragraphs, and who am I to upend the system?

The real inspiration for this recipe comes from the version of the dish I grew up eating at the original Phoenix Garden in New York's Chinatown, a restaurant that's burned down twice but has been operating largely unchanged in its Midtown digs for the last couple of decades. As opposed to the sort of gloopy version served at P.F. Chang's, Phoenix Garden's features minced squab stir-fried with pine nuts and finely diced water chestnuts and vegetables in a way that allows each piece to remain distinct. You spread a little hoisin sauce in the bottom of a piece of ice-cold iceberg lettuce, pile some of the loose mixture into it, and eat it with your hands like a taco. This thing is all about texture as the mix of crunchy, crisp, and tender bits comes together in your mouth.

Despite the fact that it says "squab" on the menu, and I trust that they are, in fact, using squab (the price certainly justified it), I never actually got much squab flavor out of the mix. You could have told me it was chicken or pork or tofu, and I wouldn't have said boo. As in many Chinese dishes, the meat isn't the star; it's merely a supplement to the vegetables.

The Ingredients

That makes this dish pretty ideal for veganizing. I could have used tempeh or even something like lentils or yellow split peas in place of the squab, but I happen to be a tofu fiend, so I took that route.

Thin slabs of tofu are dried between paper towels on a cutting board.

Serious Eats / J. Kenji López-Alt

I begin with extra-firm tofu, which I cut into quarter-inch slabs and press firmly between paper towels to remove excess moisture. This helps it brown better in the wok. Next, I cut it into strips, then into fine dice.

Typically, this dish uses water chestnuts for crunch. I love water chestnuts—they have a satisfyingly crisp texture that stays crisp even after cooking. The only issue is that water chestnuts can be a little difficult to find fresh unless you're lucky enough to live close to a well-stocked Asian market. Canned water chestnuts work just fine, but I prefer to use fresh produce when I can. As I was wandering the aisles of my local produce shop, I saw a pile of jicama and realized that the texture of jicama is actually very similar to that of water chestnut, and I wondered how it would taste stir-fried.

It works really, really well, and it may become my go-to vegetable for any recipe that calls for water chestnuts. Because of its larger size, it's also easier to cut a jicama into even quarter-inch dice than it is to cut water chestnuts.

Overhead image of all the ingredients needed to make the filling for the lettuce cups.

Serious Eats / J. Kenji López-Alt

The remaining ingredients are straightforward, and pretty similar to those in the squab dish, if I remember correctly. A little bit of diced celery for extra crunch and flavor; some pine nuts that I toast slowly in oil until deep golden brown; some diced shiitake mushrooms (I use fresh, but for a stronger flavor, you can use dried Chinese shiitakes that have been rehydrated in water) along with some aromatics: garlic, ginger, and scallions, plus some cilantro to finish it off.

Tips to Stir-Fry at Home

Real Chinese restaurant kitchens have jet engine–sized burners to get their woks ripping hot and keep them hot as ingredients are added. At home, our burners are a good deal weaker, so, as with any stir-fry you cook on a home range, working in batches is key. I start by browning the tofu and transferring it to a bowl, then follow up with the shiitakes, adding them to the same bowl. Finally, I stir-fry the celery, jicama, and aromatics before adding back the tofu and shiitakes and finishing it up with a sauce flavored with Shaoxing wine (dry sherry works fine in its place), soy sauce, hoisin sauce, black vinegar, and just a touch of cornstarch to help it bind and coat the vegetables.

Unlike Mr. Chang, whose goal seems to be "soft and gloopy," my goal is to keep each element light and loose, coated with just enough sauce to give it flavor but not so much as to adversely affect texture.

The finished dish is a powerhouse of textures and flavors, with a great mix of crisp, tender, fresh, and nutty. I serve it with chilled iceberg lettuce—you can also use green leaf if you're one of those folks who, for whatever reason, can't abide iceberg—which I spread with a little extra hoisin sauce before spooning in the mixture. Inevitably I overstuff, which makes eating it a messy affair, but getting messy is half the fun, isn't it?

March 2016

Recipe Details

Cantonese-Style Tofu, Pine Nut, and Jicama Lettuce Cups (San Choi Bao) Recipe

Prep 10 mins
Cook 25 mins
Active 30 mins
Total 35 mins
Serves 4 servings

Ingredients

  • 1 (14-ounce; 400g) block firm tofu

  • 1 tablespoon (15ml) Shaoxing wine or dry sherry

  • 1 tablespoon (15ml) dark soy sauce

  • 2 teaspoons (10ml) Chinese black vinegar or cider vinegar

  • 4 tablespoons (60ml) hoisin sauce, plus more for serving

  • 2 teaspoons (10ml) chili sauce, such as sriracha or sambal oelek (optional)

  • 1 teaspoon (about 3g) cornstarch

  • 1 1/2 ounces pine nuts (40g; about 1/4 cup)

  • 1/4 cup (60ml) vegetable oil, divided

  • 2 1/2 ounces shiitake mushrooms, stems removed, cut into 1/4-inch dice (70g; about 1 cup diced)

  • 3 scallions, white and pale green parts only, thinly sliced

  • 3 medium cloves garlic, minced (about 1 tablespoon; 15ml)

  • 1 (1-inch) knob ginger, minced (about 1 tablespoon; 15ml)

  • 4 ounces jicama, peeled and cut into 1/4-inch dice (about 1/2 of an apple-sized jicama; 120g) (see note)

  • 2 ounces celery, cut into 1/4-inch dice (about 1 large stalk; 60g)

  • Handful chopped fresh cilantro leaves

  • Kosher salt

  • Ground white pepper

  • 1 head iceberg or green leaf lettuce, picked into individual leaves, stored in ice water until ready to use

Directions

  1. Cut tofu into 1/4-inch slabs. Press firmly between paper towels to remove excess moisture, then cut into 1/4-inch dice. Set aside.

    Tofu is cut into 1/4-inch dice on a cutting board.

    Serious Eats / J. Kenji López-Alt

  2. Combine Shaoxing wine, soy sauce, vinegar, hoisin sauce, chili sauce (if using), cornstarch, and 1 tablespoon (15ml) water in a small bowl and mix with a fork until homogeneous. Set aside.

  3. Combine pine nuts and 1 tablespoon (15ml) oil in a wok and place over medium heat. Cook, stirring frequently, until nuts are well toasted, about 5 minutes. Transfer to a large bowl and set aside.

  4. Add 1 tablespoon oil to wok and heat over high heat until lightly smoking. Add tofu and cook, stirring occasionally, until tofu is well browned all over, 6 to 8 minutes. Transfer to bowl with pine nuts.

  5. Add 1 tablespoon oil to wok and heat over high heat until lightly smoking. Add shiitakes and cook, stirring occasionally, until well browned all over, about 3 minutes. Transfer to bowl with tofu and pine nuts.

  6. Heat remaining tablespoon oil in wok over high heat until lightly smoking. Add scallions, garlic, and ginger and cook, stirring and tossing constantly, until fragrant, about 15 seconds. Add jicama and celery and toss to combine. Return tofu, mushrooms, and pine nuts to wok and toss to combine. Stir sauce with a fork to reintegrate any cornstarch that may have settled to the bottom, then add to wok. Cook, tossing and stirring constantly, until all vegetables are evenly coated in sauce. Stir in cilantro (reserve a little for garnish) and season to taste with salt and white pepper. Transfer to a warm serving platter and sprinkle with reserved cilantro.

    Collage of stir-frying the diced tofu, mushrooms, jicama, and celery, and adding the sauce to the wok.

    Serious Eats / J. Kenji López-Alt

  7. Serve immediately. To eat, spread a little hoisin sauce on the bottom of a lettuce leaf and spoon the filling into the lettuce. Eat with your hands.

Special Equipment

Wok

Notes

Canned or fresh water chestnuts can be used in place of the jicama.

Read More

Nutrition Facts (per serving)
371Calories
27gFat
21gCarbs
15gProtein
×
Nutrition Facts
Servings: 4
Amount per serving
Calories371
% Daily Value*
Total Fat 27g35%
Saturated Fat 3g13%
Cholesterol 0mg0%
Sodium 730mg32%
Total Carbohydrate 21g8%
Dietary Fiber 6g22%
Total Sugars 10g
Protein 15g
Vitamin C 14mg68%
Calcium 338mg26%
Iron 4mg22%
Potassium 614mg13%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)

More Serious Eats Recipes