Tofu and Summer Vegetables in Coconut Milk

This image courtesy of Christopher Hirsheimer

This lovely dish of deep-fried tofu, carrots, green beans, and cabbage in a pale yellow coconut-milk broth is a Malaysian family favorite. A large quantity of candlenuts in the flavoring paste lends the broth its body and richness. Deep-frying tofu gives it a pillowy, spongelike texture that helps it absorb flavors more readily. This dish is often served for breakfast with sliced lontong, rice that has been boiled in bamboo cylinders until it forms tight, compact cakes. It can just as easily be served for lunch or dinner with plain steamed rice. You can omit the dried shrimp paste for a vegetarian version.

Makes4 servings

Cooking Methodfrying, sauteeing


Total Timeunder 2 hours

Kid FriendlyYes

OccasionCasual Dinner Party, Family Get-together

Recipe Coursemain course

Dietary Considerationegg-free, gluten-free, lactose-free, soy free

Mealbreakfast, dinner, lunch

Taste and Texturechewy, creamy, crisp, hot & spicy, spiced, umami

Type of Dishvegetable


  • 1 ½ tablespoons dried shrimp paste
  • 6 shallots (about 5 ounces/140 grams total), coarsely chopped
  • 2 cloves garlic, coarsely chopped
  • 4 to 10 small dried red chiles such as arbol, stemmed and coarsely chopped
  • 1 piece fresh or thawed, frozen turmeric, 2 inches (5 centimeters) long, peeled and coarsely chopped (about 2 teaspoons), or 2 teaspoons ground turmeric
  • 7 candlenuts or unsalted macadamia nuts
  • 4 tablespoons peanut oil, plus more for frying
  • 1 piece fresh or thawed, frozen galangal, 2 inches (5 centimeters( long, peeled and bruised until juicy with a heavy, blunt object such as the bottom of a glass measuring cup (optional)
  • 1 cup (8 fluid ounces/240 milliliters) unsweetened coconut milk
  • 3 cups (24 fluid ounces/750 milliliters) water
  • 30 green beans, stemmed and sliced on the diagonal into 1 ½-inch (4-centimeter) lengths (about 1 1/3 cups/6 ounces/170 grams)
  • 2 medium-sized carrots, peeled and cut into thick matchsticks 1 ½ inches (4 centimeters) long by 1/3 inch (9 millimeters) wide (about 2 cups/7 ounces/200 grams)
  • 1 tablespoon sugar
  • ¾ teaspoon kosher salt
  • 8 ounces (225 grams) firm fresh tofu (two 4-inch/10-centimeter squares), each square halved on the diagonal into triangles ½ inch (12 millimeters) thick
  • ¼ small head green cabbage, cored and cut into 1-inch (2.5 centimeter) squares (about 2 cups/8 ounces/225 grams)


  1. To make the flavoring paste, place the shrimp paste in the center of a 5-inch (13-centimeter) square of aluminum foil. Fold the edges of the foil over to form a small parcel, and press down with the hell of your hand to flatten the shrimp paste into a disk ¼ inch (6 millimeters) thick. Heat a gas burner to medium-low or an electric burner to medium-high. Using a pair of tongs or 2 forks, place the sealed parcel directly on the heat source. Toast until the paste begins to smoke and release a burning shrimpy smell, about 1 ½ minutes. With the tongs or forks, turn the parcel over and toast the other side for another 1 ½ minutes, then turn off the burner. Again the using the tongs or forks, remove the parcel and let cool for 30 seconds to 1 minute. Carefully unwrap the foil, the edges of the disk should be black-brown and toasty and the center should be golden with some black-brown patches. Using a spoon, scrape the toasted shrimp paste into a small bowl and allow it to cool for another 30 seconds. Discard the foil.

  2. Place the toasted shrimp paste, shallots, garlic, chiles, turmeric, and candlenuts in a small food processor. Pulse until you have a smooth paste the consistency of creamy mashed potatoes. If the paste won’t puree properly and reputedly creeps up the side of the processor instead of grinding, add up to 2 tablespoons water, 1 tablespoon at a time, periodically turning the processor off and scraping the ungrounded portions down toward the blade.

  3. Heat the 4 tablespoons oil in a 4-quart (4-liter saucepan, Dutch oven, or soup pot over medium-low heat. Test to see if the oil is the right temperature by adding a pinch of the ground paste. The paste should sizzle slightly around the edges, not fry aggressively or sit motionless. When the oil is ready, add all the paste and sauté, stirring as needed to prevent scorching, until the shallots and garlic no longer smell raw and the paste begins to separate slightly from the oil, 5 to 7 minutes. Be careful not to let the flavoring paste cook for too long. It should be limp and silken, not golden and crusty.

  4. Add ½ cup (4 fluid ounces/120 milliliters) of the coconut milk and all the water. Raise the heat to medium and bring the liquid to a steady simmer, stirring constantly. Add the green beans, carrots, sugar, and salt and stir to combine. Reduce the heat to medium-low and let the vegetables simmer gently uncovered, stirring occasionally, until they are fork-tender and only slightly crunchy, about 15 minutes. (Don’t let the liquid boil, or the coconut milk may curdle. You may need to adjust the head periodically if the simmer becomes too vigorous or too slow.)

  5. Meanwhile, deep-fry the tofu. Dry the tofu triangles thoroughly with paper towels. Pour oil to a depth of 1 inch (2.5 centimeters) into a 1 1/2 – to 2-quart (1.5 to 2 liter) saucepan and place over medium to medium-high heat until hot but not smoking. To test if the oil is the right temperature (it should be about 365 o F/185 oC), spear a piece of tofu onto a fork and slip a corner of the piece into the oil. If the oil is ready, it will immediately bubble vigorously around the tofu. Using 2 forks or a pair of tongs, add the tofu pieces in small batches (crowding will cool the oil down and make the tofu greasy). Fry the tofu pieces, turning them often with a slotted spoon, until they’re uniformly golden and crispy, 3 to 5 minutes. Be sure not to fry the tofu beyond the point at which it is just golden, or its texture will be tough, its taste bitter. Using the slotted spoon, transfer the tofu pieces to paper towels to drain.

  6. Add the fried tofu and cabbage to the simmering coconut-milk broth and continue to cook uncovered, stirring occasionally, until the cabbage is wilted and beginning to turn translucent, about 10 minutes. Do not let the cabbage overcook and become mushy.

  7. Add the remaining ½ cup (4 fluid oucnes/120 milliliters) coconut milk and allow it to heat through, about 2 minutes. Taste for salt, and add a pinch more if needed. Remove and discard the galangal.

  8. Transfer to the tofu, vegetables, and broth to a shallow serving bowl and allow the dish to rest for at least 15 minutes before eating .it will taste best when slightly cooled.


Free recipes, giveaways, exclusive partner offers, and more straight to your inbox!


I have not made this yet so I cannot rate it.

Include a Photo Include a Photo

Click the button above or drag and drop images onto the button. You can upload two images.

Cancel Reply to Comment

Thanks for your comment. Don't forget to share!


Report Inappropriate Comment

Are you sure you would like to report this comment? It will be flagged for our moderators to take action.

Thank you for taking the time to improve the content on our site.

Sign In to Your Account

Close Window
Sign In with one of your Social Accounts
Facebook Twitter
Sign In using Email and Password