Skip to main content
The Washington PostDemocracy Dies in Darkness

How to make dal makhani, the most luxurious and creamy dal of all

(Tom McCorkle for The Washington Post; food styling by Lisa Cherkasky for The Washington Post)
Dal Makhani
Active time:30 mins
Total time:1 hour 30 mins (plus 8 hours soaking time)
Servings:4 to 6
Active time:30 mins
Total time:1 hour 30 mins (plus 8 hours soaking time)
Servings:4 to 6

Why is dal makhani so beloved? To Nik Sharma, author of the gorgeous new book “The Flavor Equation,” it comes down to one thing.

Our favorite cookbooks of 2020

“It’s such a comforting texture,” says Sharma, a molecular biologist turned food writer. “It’s smooth, it’s velvety, it’s creamy, and when you bite into the beans, they’re falling apart. It’s so relaxing, at least for me.”

This vegetarian Thanksgiving is a one-pan feast: Stuffed squash with broccolini and carrots

If you’ve never had dal makhani, first, I’m so sorry, and second, let me define it for you: It’s made from whole black urad beans, a.k.a. black gram or black matpe beans. They’re sometimes mistakenly called black lentils, but they’re not lentils at all and are instead more closely related to mung beans. They’re soaked overnight, cooked until tender, then combined with a powerful sauce made of onion, tomato, spices and ghee, with cream or sometimes yogurt stirred in before serving.

I was excited to see a recipe for this dal in Sharma’s book, for two main reasons: It’s my favorite dal, and I knew Sharma would have plenty of answers to my questions about exactly why it works the way it does.

“The Flavor Equation,” after all, is dedicated to Sharma’s exploration of how the science of cooking affects flavor. “I think I finally found my niche in food writing,” he tells me in an interview. “It’s the marriage of what I was trained to do with what I had not set out to do. It’s science married to cooking.”

Why black urad beans? Because they, much more than other beans, release a “mucilage” that contributes to the silky texture of the dal. For that reason, you can’t make true dal makhani with any other bean. It sometimes includes a smaller amount of red kidney beans (a.k.a. rajma), but they’re optional — and, in fact, can sometimes cause trouble with the recipe, because even after soaking and using a pinch of baking soda to speed the cooking along, they can stay stubbornly firm while the urad softens.

Can you make it vegan? Sure, use olive oil instead of ghee, and nondairy yogurt or nondairy creamer instead of the cream at the end.

In his book, Sharma also includes an optional smoking step: You nestle a hollowed-out onion or small stainless-steel bowl in the cooked dal, (carefully!) add a burning piece of charcoal, cover the pot to trap the smoke for a few minutes and (carefully!) remove the bowl and charcoal. I haven’t tried this yet, mostly because even after typing both of those “carefully!”s, I get nervous reading them. But also because, truth be told, the dal is so flavorful already.

Making the recipe, reading Sharma’s prose and asking him questions prove that he succeeds at one of his biggest goals, as he told me: “To write a cookbook that makes science come alive.”

Scale and get a printer-friendly version of the recipe here.

Serve with plain rice or flatbread (such as paratha or naan), and yogurt or raita on the side to provide cool contrast, if you like.

Where to Buy: Whole urad beans can be found at Indian or international grocery stores or online, such as at


  • 1 cup (7 ounces) whole urad beans with skin
  • 4 cups water, plus more for soaking
  • 1/8 teaspoon baking soda
  • 1 medium (10 ounces) white onion, cut into chunks
  • 6 cloves garlic, peeled and smashed
  • One (2-inch) piece fresh ginger, peeled and cut in half
  • 4 tablespoons ghee or unsalted butter, divided (may substitute extra-virgin olive oil)
  • 1 teaspoon garam masala
  • 1/2 teaspoon ground turmeric
  • 1/4 cup tomato paste
  • 1 teaspoon fine sea salt, plus more to taste
  • 1/4 teaspoon cayenne powder
  • 2 tablespoons heavy cream or creme fraiche (may substitute nondairy yogurt)
  • 2 tablespoons loosely packed chopped fresh cilantro leaves, for garnish (optional)

Step 1

Pick through the beans and discard any dirt or stones, then transfer to a medium bowl and rinse under running water. Add enough water to cover the beans by 1 inch and soak overnight (8 to 12 hours). Drain.

Step 2

In a medium saucepan or Dutch oven over high heat, combine the beans with the 4 cups water and baking soda. Bring to a rolling boil, then lower the heat to a simmer, cover, and cook the beans until they are tender and almost falling apart, 30 to 45 minutes. Transfer the beans with their liquid to a large bowl. Rinse the saucepan and wipe it dry.

Step 3

Combine the onion and garlic in a blender. Chop half the ginger, add it to the blender and pulse until the vegetables form a smooth paste. (If needed, add a bit of the liquid from the dal to the blender to help things move around.)

Step 4

Return the saucepan or Dutch oven to medium-high heat, and melt 2 tablespoons of the ghee. Add the garam masala and turmeric and cook, stirring, until the spices release their aroma, 30 to 45 seconds. Add the tomato paste and cook until darkened, 1 to 2 minutes. Reduce the heat to medium-low, stir in the onion mixture and cook, stirring occasionally, until most of the liquid has cooked away and the ghee has started pooling in spots, 10 to 15 minutes. Add the cooked beans and their liquid and stir in the salt and cayenne. Taste, and add more salt if needed.

Step 5

Increase the heat to high and bring the mixture to a boil. Cook at a boil for a few minutes, stirring occasionally to prevent the beans from sticking to the bottom of the pan. Reduce the heat to a gentle simmer and cook an additional 1 to 2 minutes. Stir in the cream and remove from the heat.

Step 6

Cut the remaining ginger into matchsticks. In a small saucepan over medium-high heat, melt the remaining 2 tablespoons of ghee. Add the remaining ginger and fry until the ginger starts to turn golden brown, about 1 minute. Pour the fried ginger and ghee over the dal. Garnish with the cilantro, if using, and serve hot.

Nutrition Information

(based on 6 servings)

Calories: 221; Total Fat: 12 g; Saturated Fat: 7 g; Cholesterol: 27 mg; Sodium: 488 mg; Carbohydrates: 23 g; Dietary Fiber: 8 g; Sugar: 4 g; Protein: 7 g.

Adapted from “The Flavor Equation” by Nik Sharma (Chronicle Books, 2020).

Tested by Joe Yonan; email questions to

Scale and get a printer-friendly version of the recipe here.

Did you make this recipe? Take a photo and tag us on Instagram with #eatvoraciously.

Browse our Recipe Finder for more than 9,000 Post-tested recipes at