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!
LIKE WHAT YOU SEE? FOLLOW ALONG ONΒ INSTAGRAM,Β FACEBOOK, ANDΒ PINTEREST!

Vegan Dal Makhani
This vegan version of the popular Indian dish, dal makhani is absolutely mouth watering and delicious. It's a creamy butter sauce curry made with urad dal and kidney beans.
Ingredients
- 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 coconut milk*
To Serve
- Minced cilantro
- Basmati rice
Instructions
- 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.
Notes
*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. Note that the dal made with black beluga lentils might be more watery, so consider starting with less water (3 cups) and just adding more as necessary as it cooks.
*Use the cream that collects at the top of the can of coconut milk. If your coconut milk is not separated, then don't worry about it and just use the creamy coconut milk, it'll still be great!
Recommended Products
As an Amazon Associate and member of other affiliate programs, I earn from qualifying purchases.
Nutrition Information:
Yield: 8 Serving Size: 1Amount Per Serving:Calories: 338 Total Fat: 17g Carbohydrates: 40g Fiber: 6g Protein: 9g









Helen says
Hi Eva. Greetings from NZ. I am so loving your recipes – they are amazing – flavoursome, easy and inexpensive to make and they are full of fabulous, easy to find, mouthwatering ingredients. The urad dahl is soaking at the moment and mid afternoon I’ll be getting started on making this dish for the first time. One of the many great things about living by myself is that these recipes provide enough food for several meals and I can freeze at least half so I am never short of something nutritious for dinner when I don’t feel like cooking a full meal from scratch.
thecuriouschickpea says
Hi Helen! Thank you so much! I’m so happy you’ve been enjoying my recipes π and really appreciate your comment! I do hope you loved the dal makhani!
Katarina says
My first time on this site, my first recipe and I give it FIVE stars! This recipe is addictive π
I used green small lentils and for a chili, I used a Jalapeno chopped up and took out perhaps about 70% of the seeds. It ended up perfectly spicy. I used the 1 cup of tomato paste the recipe called for but was skeptic to that amount. After simmering for 5 minutes with spices it was still VERY much tomato flavor only.
But… no need to fear. After finishing the recipe there is a complex flavor of spices, almost hard to separate the flavors in the stew, with a creaminess indeed. The flavor is addictive and I will definitely make this recipe many many times again!
Thank you! I am very impressed with how you create such a depth in this dish. I can’t wait to try more of your recipes!!!
thecuriouschickpea says
Hi Katarina! I’m so thrilled you enjoyed the recipe so much! I do wonder if there’s a bit of an ingredient switch there, tomato puree (also called strained tomatoes) is not what I call tomato paste (which is the thick cooked and concentrated tomato), but instead peeled and blended tomatoes that are strained (so a thick uncooked puree). But either way, I’m glad you enjoyed it, it’s one of my favorites! π
Tammy says
I used diced fire roasted tomatoes….maybe not what was meant. It’s a bit watery. I’ll continue to simmer.
Chakra says
This is a fantastic recipe, I loved it as did my whole family.Thank you and keep them coming, you are an inspiration.
Mereana Bourke says
I have been looking for a vegan recipe that would emulate what I get at my favourite Indian restaurant. I tried this recipe and it was to die for!!
I added diced tofu in it as I needed to use it and made enough to last 2 days.
I will definitely be trying this recipe again.
thecuriouschickpea says
That sounds really great with tofu! I’m glad you enjoyed this dal!
Heather says
Omg! I am in love with this recipe π€€ thank you.
thecuriouschickpea says
Thanks Heather! I’m so happy you enjoyed it!
Maya says
We absolutely love this recipe! We added the ground spices later to avoid burning (this included ground cumin in our case) as per your suggestion. It is a gorgeous recipe – smell, taste and texture. We will be coming back to your site for more vegan delights!
thecuriouschickpea says
Thanks Maya, I’m so happy you liked the dal!
Issabella Laifoo says
I’m not sure if I did something wrong in the recipe, I added the water used to cook the urad dal and it turned out more grey compared to the redder colour of the curry in the pictures…should I maybe just use water instead next time?
thecuriouschickpea says
Hi Issabella, I’m sure that just depends on how much water you had leftover from cooking the dal. The red color comes from both the tomatoes and also from when the kidney beans simmer for a bit, as they will leech some of their color into the stew. This is just an aesthetic thing, so it shouldn’t effect the taste at all! Colors can look different depending on where they’re viewed too (as in natural light vs your artificial kitchen lights), so as long as you enjoy it I wouldn’t worry too much!
Priyanka says
hi! can i make this with urad split dal?
thecuriouschickpea says
Hi Priyanka, you can use split urad dal, but it won’t come out *quite* the same texture (or color). I’ve done it before though, and you definitely still get the same great taste!
Jeremy Metz says
Just made it and loved it! The blend of spices and peppers are so aromatic. It will leave our house smelling wonderfully for hours! Good recipe!
Amber says
This is so good! I cheated and used pre-steamed lentils. I am glad there was comments about tomato paste and puree. I used the puree, as intended. I skipped the chiles (I was making it for my kids) and kasoori methi (I didn’t have it on hand). The flavor is excellent and this was not difficult to make. I have made dahl makni before and used so much butter (I am not vegan). This version was better. I will definitely make this again.
Joker says
“In a large pot eat the coconut oil or vegan butter over medium”
This was the most difficult part of the recipe for me. It took me ages to find a medium willing to come to my kitchen and sit on the floor while I ate coconut oil above her. π
Seriously though. Thank you so much for the recipe – great to experience dal makhani again (after having gone vegan).
Janise Rohme says
Would there be any reason you couldn’t use pinto beans or pinquito beans? I do not like kidney beans.
thecuriouschickpea says
Hi Janise, you can certainly use a different bean but keep it mind the results won’t be exactly the same. Kidney beans add to the rich red color of the dal (which would otherwise fall a bit flat brown) and have a buttery texture that complements the dish really nicely. But if you don’t like them then definitely use a bean you do like! It will still taste great.
Rahul says
Can you use tomato paste instead of puree?
Eva Agha says
Hi Rahul, tomato paste would be too thick and concentrated in this recipe to use as a direct 1:1 substitute. If that’s all you have then you can use some tomato paste thinned with water. You could take a can of whole or diced tomatoes and pulse it a few times in a blender or use crushed tomatoes to substitute if that’s available to you.
Isaac says
Looks really good, but would it be okay to use fenugreek powder in place of dried fenugreek leaves or would that change the flavor too much?
Eva Agha says
Hi Isaac, ground fenugreek seed doesn’t have the same taste as the leaves, but I LOVE the taste of fenugreek seeds (your ground fenugreek), so I would use it! Just use a lot less, like a 1/2 tsp to start, and add it along with the other ground spices.
Gwen says
This is a wonderful recipe with a great. We recently moved and I could only find my ground spices and not my whole ones.
I added the ground spices after the onions, garlic and fresh ground ginger; the fragrance was heavenly. I also used petite, diced tomatoes and used the liquid to thin the stew after everything was combined.
I have an insulated metal thermos and will be taking this stew, rice, and chopped cilantro for my work lunch. Yummy!!!ππ
Gwen says
I meant to say great flavor and texture.
PS the “eat over medium” part also have me a chuckle. No worries… I once wrote a property description stating the “house came with 2 panties” instead of 2 pantries”.