Tofu and Vegetables in Coconut Milk

Tofu and Vegetables in Coconut Milk

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, sponge-like 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.–James Oseland

LC Meatless Monday (Or Tuesday Or Wednesday Or...) Note

For some of us, going meatless will never, ever be easy. But it’s easier to consider doing Meatless Monday (or Tuesday or Wednesday or…well, you get the idea) during the obscene vegetal abundance otherwise known as summer. Here’s one way to go about it.

Tofu and Vegetables in Coconut Milk

  • Quick Glance
  • 1 H, 15 M
  • 2 H
  • Makes 4 servings
Print RecipeBuy the Cradle of Flavor cookbook

Want it? Click it.


Email Grocery List

Ingredients sent!

Send Grocery List

Email the grocery list for this recipe to:

Is required
Is required
  • For the flavoring paste
  • 1 1/2 tablespoons dried shrimp paste (optional)
  • 6 shallots (about 5 ounces), coarsely chopped
  • 2 cloves garlic, coarsely chopped
  • 4 to 10 small dried red chiles, such as árbol, stemmed and coarsely chopped
  • 1 piece fresh or thawed turmeric, 2 inches 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
  • One 2-inch piece fresh or thawed galangal, peeled and bruised with a heavy, blunt object, such as the bottom of a glass measuring cup, until juicy (optional)
  • 1 cup unsweetened coconut milk
  • 3 cups water
  • 30 green beans, stemmed and sliced on the diagonal into 1 1/2-inch lengths (about 1 1/3 cups)
  • 2 medium-sized carrots, peeled and cut into thick matchsticks, 1 1/2 inches long by 1/3 inch wide (about 2 cups)
  • 1 tablespoon sugar
  • 3/4 teaspoon kosher salt
  • Two 4-inch squares (8 ounces) firm fresh tofu, each square halved on the diagonal into triangles 1/2 inch thick
  • 1/4 small head green cabbage, cored and cut into 1-inch squares (about 2 cups)


  • Make the flavoring paste
  • 1. Place the shrimp paste in the center of a 5-inch square of aluminum foil. Fold the edges of the foil over to form a small parcel, and press down with the heel of your hand to flatten the shrimp paste into a disk 1/4 inch 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 1/2 minutes.
  • 2. With the tongs or forks, turn the parcel over and toast the other side for another 1 1/2 minutes, then turn off the burner. Again 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.
  • 3. 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 purée properly and repeatedly 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 unground portions down toward the blade.
  • Make the dish
  • 4. Heat the 4 tablespoons oil in a 4-quart 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 the galangal and saute, 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.
  • 5. Add 1/2 cup 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 heat periodically if the simmer becomes too vigorous or too slow.)
  • 6. Meanwhile, deep-fry the tofu. Dry the tofu triangles thoroughly with paper towels. Pour oil to a depth of 1 inch into a 1 1/2- to 2-quart 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°F [185°C]), 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.
  • 7. 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.
  • 8. Add the remaining 1/2 cup 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.
  • 9. Transfer 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.


#leitesculinaria on Instagram If you make this recipe, snap a photo and hashtag it #LeitesCulinaria. We'd love to see your creations on Instagram, Facebook, and Twitter.

Have something to say?

Then tell us. Have a picture you'd like to add to your comment? Attach it below. And as always, please take a gander at our comment policy before posting.

Upload a picture of your dish