Dal makhani is an urad dal and kidney bean butter curry and this vegan version of the popular Indian dish is absolutely mouth watering and delicious!
Dal Makhani (pronounced makh-nee) is probably everyone’s favorite dal. It’s creamy and rich, with a silky almost luscious texture to the gravy. It hits those perfect savory notes, bursting with Indian spices and balanced with just enough of the sweet leaning ones.
Dal translates to pulses (and typically refers to lentils) while makhani means with butter. But while this dish is essentially named “lentils with butter,” we all know and love it specifically as the Punjabi dish of urad dal with kidney beans cooked in a creamy rich tomatoey gravy.
As the name might suggest, this dish is not the most vegan friendly of restaurant dals. Traditional recipes often stick an entire stick of butter (that’s 8 tablespoons, if anyone is counting) in a recipe such as this, and after that will still add a bit of cream. And that doesn’t even include the oil or butter used to fry a tadka.
Now home cooked recipes are likely to decrease the amount of butter or cream, but they are still laden with it, making this dish one of those you probably want to make on your own if you want to avoid dairy.
And thankfully, the vegan version of this dish is just as delicious–if not more! It has the richness without alllllll that butter. It’s made creamy with coconut milk (though if you needed to avoid coconut for any reason you could use a thick cashew cream), and the rich flavors come from the carefully chosen spices and pulses used in the recipe.
First we have whole urad dal, also commonly known as black gram. You want to be sure you have the whole bean, which has a black skin. If the beans are white, that means they have been peeled and split (which means faster cooking time, no need to soak prior, etc).
Urad dal is the star of this dish. I have on occasion made a similar recipe with black beluga lentils when out of urad dal, and while the results are very flavorful and good, they certainly aren’t 100% the same and it’s not the traditional dish.
The black gram lentils create a thick and luscious texture when cooked in water. They’re a little sticky and really unique, and worth the little bit of extra time to make a dal with them (and by that I just mean you’ll want to soak your lentils for at least 6 hours before cooking! You can do it). Especially when you consider what nutritional powerhouses those little lentils are.
Urad dal is paired with red kidney beans (called rajma) in dal makhani. These buttery red beans provide a nice textural counterpoint in the dish, and help the creamy gravy turn a beautiful red color. While you can cook them from the dried bean alongside the dal, I personally find it super easy to just crack open a can of the beans.
The lentils (and beans if you’re making them from scratch) are cooked separately then added into the tadka once fully cooked. Now the tadka refers to a cooking technique of tempering spices in oil before adding to a dish. Cooking the spices in oil releases flavor, as the flavor molecules of spices tend to be oil soluble.
You only want to cook whole spices in oil as ground spices will burn quickly. To keep this recipe easy and more accessible I use pre-ground and store bought garam masala, along with ground coriander seed, ground turmeric, and cayenne (because spicy Indian food is better). We add these ground spices after the liquid so that they do not burn.
Once the whole spices are toasty and fragrant, we add the minced garlic, ginger, and chiles so they have a chance to release some of their best flavors before the onion gets added. The onion is cooked until soft and golden. Together this makes up the tadka.
To the tadka we add tomato puree (also known as strained tomatoes), the leftover cooking water from the lentils + a little extra water to make a total of 1 1/2 cups liquid, salt, the ground spices, and crush in some fenugreek leaves (kasoori methi). If you don’t have the kasoori methi, still make the dish, just know it would be better and more authentic with the fenugreek in it! It’s real good 😛 .
This cooks a bit to infuse the spices into the sauce, then add the lentils and beans, bring it to a simmer and let it cook away (covered!) for a half hour over super low heat. I let it cook for a full 30 minutes because this brings out the best flavor.
Dal makhani is one of those dishes that tastes best when simmered for long periods of time over low heat, and will definitely taste somehow magically even better the next day! But in 30 minutes you will have a deliciously richly flavored stew.
At the very end we add the cream, in this case coconut cream. You can scoop it out from the top of a separated can of coconut milk. But if all you have is well combined coconut milk then just use the creamy milk and it’ll be great still.
Add water if you need to thin the dal at any point and serve it with fresh cilantro and basmati rice. You can even make some restaurant style naan for an INSANELY delicious and satisfying meal. Feel free to browse through my other Indian recipes for more tasty curries if you want to make a feast!
I love love love dal makhani and I am so glad that this recipe is easily made vegan. Whether you are a diehard dal makhani lover or have never eaten the dish, you really should try it! It’s just insanely good and really like no other dal or lentil soup!
If you make this dal, go ahead and give the recipe a rating on the recipe card below! Also don’t forget to share your creations with me on Instagram, tag @thecuriouschickpea and #thecuriouschickpea, I absolutely love seeing your photos!
- 1 cup dry whole urad dal, debris removed and soaked in plenty of water overnight or for at least 6 hours
- 4 cups water
- 15 oz can kidney beans (1 1/2 cups), drained and rinsed
- 3 tbsp coconut oil or vegan butter
- 1 tsp cumin seed
- 1 small bay leaf
- 4-6 cloves garlic, minced
- 1 tsp minced ginger
- 1-2 chiles, minced with seeds removed if desired
- 1 small onion, finely chopped (~1 cup)
- 1 cup tomato puree or strained tomatoes
- 1 1/2 cups water (including water reserved from cooking urad dal)
- 1-1 1/2 tsp salt, to taste
- 1/2 tsp garam masala
- 1/2 tsp ground coriander
- 1/2 tsp cayenne, optional & more or less to taste
- 1/4 tsp turmeric
- 1 tbsp kasoori methi, crushed (optional)
- 1/4-1/3 cup coconut cream or milk
- Minced cilantro
- Basmati rice
- Add the soaked urad dal to a pot along with 4 cups of water. Bring it to a boil, then lower the heat to simmer. Cook covered for 30-40 minutes or until dal is very tender. Turn off heat and strain the lentils, reserving any leftover cooking water.
- In a large pot eat the coconut oil or vegan butter over medium. Add the cumin and bay leaf and fry until they crackle and turn a shade darker. Add the garlic, ginger, and chiles and cook about 30 seconds to 1 minute. Add the onion and fry until golden and soft, 4-6 minutes.
- Add the tomato puree (watch for splattering), the reserved dal cooking water + fresh water to equal 1 1/2 cups of water, 1 teaspoon of salt, garam masala, coriander, cayenne if using, and turmeric. Crush the kasoori methi between your hands into the pot. Simmer for 3-5 minutes.
- Add the urad dal and the kidney beans. Cover and simmer over low heat for 30 minutes, stirring occasionally so the lentils don't stick and burn on the bottom of the pan. Taste and adjust salt if desired, add more salt if the dish tastes flat.
- Stir in the coconut cream and simmer for 5 minutes.
- Garnish finished dish with a swirl of coconut milk and minced cilantro. Serve with basmati rice.
Whole urad dal is also known as black gram. You can substitute black beluga lentils for a different/less traditional but also tasty result. Black beluga lentils do not need to be soaked before cooking, and cook them for 25 minutes.
Use the cream that collects at the top of the can of coconut milk. If your coconut milk is not separated, then just use the creamy liquid.
As an Amazon Associate and member of other affiliate programs, I earn from qualifying purchases.