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

An explosion of textures in each bite. . J. Kenji López-Alt

Why This Recipe 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.

The inspiration for this recipe comes from the version 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. That version 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, and it works just as well with a new set of vegetable-based ingredients.

Recipe Details

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

Active 30 mins
Total 30 mins
Serves 4 servings


  • 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


  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.

  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.

  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



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

This Recipe Appears In

Nutrition Facts (per serving)
371 Calories
27g Fat
21g Carbs
15g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 4
Amount per serving
Calories 371
% Daily Value*
Total Fat 27g 35%
Saturated Fat 3g 13%
Cholesterol 0mg 0%
Sodium 730mg 32%
Total Carbohydrate 21g 8%
Dietary Fiber 6g 22%
Total Sugars 10g
Protein 15g
Vitamin C 14mg 68%
Calcium 338mg 26%
Iron 4mg 22%
Potassium 614mg 13%
*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.)