Dal Makhani Recipe

This creamy dal leaves a luxurious texture on your tongue imparted by cream, butter, and soft beans. For an extra-rich flavor, top the dal with a few small dabs of salted butter before garnishing.
Easy Dal Recipe
Photo by Nik Sharma

Serves 4-6
Prep time: 20 minutes, plus overnight soaking
Total time: 1 hour and 20 minutes


1 cup|200 grams whole urad beans with skin
½ cup|60 grams kidney beans (optional)
⅛ teaspoon baking soda
1 medium white onion (about 9 ¼ ounce|260 grams)
6 garlic cloves, peeled
1 (2-inch) piece fresh ginger, peeled and cut in half
¼ cup|55 grams ghee or unsalted butter
1 teaspoon garam masala
½ teaspoon ground turmeric
¼ cup|55 grams tomato paste
¼ teaspoon cayenne powder
fine sea salt
2 tablespoons heavy cream or crème fraîche
2 tablespoons loosely packed chopped cilantro leaves, for garnish (optional)



AUTHOR’S NOTE: Presoaking provides several benefits. The seeds soften and plump up to almost twice their original volume, and their chemical composition changes. The amount of sugars and starches decreases, which helps with cooking, palatability, and digestion.

Adding baking soda to the beans softens the fiber by acting on the pectin and hemicellulose and drastically reduces the cooking time, from several hours to 30 to 45 minutes. Use filtered water if you live in an area with hard water or it might take a bit longer to cook.

This comfort food contrasts pleasingly with plain rice or flat bread like paratha, and yogurt or raita on the side provide cool contrast.

This dal is special because it gets its unique fiery flavor from the large amount of garlic and ginger used; if you prefer a milder dose of heat, reduce their quantities by half. The hint of cayenne in this dal adds a third note of heat.

  1. Pick through the beans and discard any dirt or stones; transfer to a medium bowl and rinse under running tap water, then add enough clean water to cover the beans by 1-inch and soak overnight.
  2. The next day, discard the water. Place the beans in a medium saucepan or Dutch oven. Add 4 cups|960 ml of water and the baking soda and bring the contents to a rolling boil over high heat. Lower the heat to a simmer, cover with a lid, and cook for 30 to 45 minutes, until the beans are tender and almost falling apart. Remove from the heat and transfer the beans with the liquid to a large bowl. Rinse the saucepan and wipe it dry.
  3. Quarter the onion and add it with the garlic in a blender. Mince half of the ginger, add it to the blender, and pulse until it forms a smooth paste. If needed, add a bit of the water from the dal to the blender to help things move around.
  4. Melt 2 tablespoons of the ghee in the saucepan over medium-high heat. Add the garam masala and turmeric and cook for 30 to 45 seconds, stirring constantly, until the spices start to release their aroma. Add the tomato paste and sauté for 2 to 3 minutes. Turn the heat to medium-low, stir in the onion mixture, and cook for 10 to 15 minutes, stirring occasionally, until most of the liquid has cooked away and the ghee separates from the mixture. Return the cooked beans with their liquid to the saucepan and stir in the cayenne. Season with salt. Increase the heat to high and bring the contents to a boil. Stir occasionally to prevent the beans from sticking to the bottom of the saucepan. Lower the heat to a gentle simmer. Stir in the cream and remove from the heat.
  5. Make the tadka. Melt the remaining ghee in a small, dry saucepan over medium-high heat. Cut the remaining ginger into matchsticks and fry them in the hot ghee for about 1 minute, until the strips just start to turn golden brown. Pour the fried ginger and ghee over the dal. Garnish with the cilantro, if using, and serve hot.

Reprinted from The Flavor Equation by Nik Sharma with permission by Chronicle Books, 2020

Get recipes like this and more in the Munchies Recipes newsletter. Sign up here.