Dal Makhani (Vegan, One Pot, 30 Minutes)

This vegan Dal Makhani is built on beluga lentils, kidney beans, garam masala, fenugreek, vegan butter, and coconut milk - everything in one pot in 30 minutes. Rich, creamy, deeply spiced, and one of the most satisfying plant-based dinners on this site.

Dal makhani is one of the great dishes of North Indian cooking - a slow-simmered, deeply spiced lentil curry that has been eaten across Punjab for generations. The name means "buttery lentils" and the dish earns it: long cooking in a rich sauce of tomato, cream, and butter produces a result that is genuinely luxurious, with a depth that few other lentil dishes can match.

This version makes it completely plant-based and brings it within 30 minutes on a weeknight - using vegan butter and coconut milk in place of the dairy, and canned kidney beans so only the beluga lentils need to cook from scratch. The result is rich, creamy, and deeply flavored. If you have more time, simmering it low and slow for two to three hours produces an even better result - but 30 minutes is genuinely enough for a weeknight dinner worth making on repeat.

The beluga lentils are the heart of the dish. Small, black, and firm even when fully cooked, they hold their shape in a way that red or green lentils do not - producing the characteristic texture that makes dal makhani what it is. If you haven't cooked with them before, this recipe is the right introduction.

Madras Lentils as they come out of the pot.

What is Dal Makhani?

Dal makhani is a North Indian lentil curry originating in Punjab, traditionally made with whole black urad lentils (also called urid or beluga lentils) and kidney beans, slow-cooked for hours in a sauce of tomatoes, cream, and butter. The long cooking time is central to the traditional method - in restaurant kitchens across India, dal makhani simmers overnight on a low flame, developing a depth of flavor that cannot be rushed.

The word "makhani" means buttery, which tells you exactly what defines the dish. It is richer, creamier, and more deeply spiced than most dals - closer to a curry in its depth and body than to a simple lentil soup. It is typically served as part of a larger Indian meal alongside rice or naan, though it is filling enough to eat as a complete meal on its own.

This plant-based version uses vegan butter and coconut milk to replicate the characteristic richness, with garam masala and fenugreek providing the warm, complex spice backdrop.

Closeup view of the Dal Makhani, showing the creamy lentils.

Why this recipe works

Beluga lentils for authentic texture. Beluga lentils hold their shape when cooked, producing the firm, slightly toothsome texture that defines dal makhani. Red or green lentils go mushy and produce a completely different result. The beluga is the right lentil for this dish.

Canned kidney beans for speed. Traditional dal makhani uses dried kidney beans that must be soaked overnight and pressure-cooked before adding to the dal. Using canned drained kidney beans eliminates that step without sacrificing flavor - the beans absorb the spiced sauce beautifully in the final minutes of cooking.

Vegan butter and coconut milk for richness. The buttery, creamy character of dal makhani comes from two ingredients here: vegan butter bloomed with the spices at the start, and coconut milk stirred in near the end. Full-fat canned coconut milk is essential - light coconut milk produces a noticeably thinner result.

Garam masala and fenugreek as the backbone. Most of the flavor complexity in this dish comes from these two spices. Garam masala brings warmth and depth; fenugreek powder adds a slightly bitter, aromatic note that is characteristic of North Indian cooking. Neither should be skipped.

One pot, minimal effort. Everything cooks in a single pot from start to finish. Melt the butter, bloom the spices, cook the lentils, add the beans and creaminess. The method is genuinely simple for a dish that tastes this rich.

Cilantro give a fresh extra taste to this easy vegan Indian recipe.

What are beluga lentils?

Beluga lentils are small, round, black lentils named for their resemblance to beluga caviar. They grow in cool climates in Canada and the northern United States and have a firm texture that holds up well during cooking - they don't go mushy the way red or split lentils do, which makes them ideal for dishes where texture matters.

In Indian cooking they are known as whole urad dal, urid dal, or kali dal. The pack in an Indian or Asian grocery store will most likely be labeled "URID" or "URAD" - this is the same lentil. They have a distinctive earthy, slightly nutty flavor that is quite different from other lentil varieties and is central to the character of dal makhani.

Beluga lentils are increasingly available in the regular lentil section of most supermarkets, and widely available online. If you genuinely cannot find them, black lentils from any source are the right substitute - green or brown lentils will work in a pinch but produce a softer texture.

Portion of the Dal Makhani on a plate.

Ingredient notes

Beluga lentils - half a cup, uncooked. Use dried, uncooked lentils - not pre-cooked or canned. They cook directly in the spiced water in the pot, absorbing the flavor as they go. Half a cup of dry beluga lentils yields approximately 1.5 cups cooked.

Water - 2.5 cups. The cooking liquid for the lentils. Using vegetable broth instead of water adds another layer of flavor - a good swap if you have broth on hand.

Vegan butter - 3 tablespoons. The fat that carries the spices and provides the characteristic buttery richness. Use a good-quality vegan butter. Coconut oil works as a substitute but produces a different flavor.

Garlic - 3 cloves minced, plus 1 tablespoon garlic powder. Both forms of garlic are used together - the minced garlic blooms in the butter for aromatic depth, and the powder contributes a rounder, more pervasive garlic flavor throughout the dish.

Fenugreek - 1 tablespoon, powder. This is the spice most likely to be unfamiliar. Fenugreek powder has a slightly bitter, maple-like, aromatic quality that is central to dal makhani's distinctive character. It is widely available in supermarket spice aisles and Indian grocery stores. If genuinely unavailable, Dijon mustard is the closest substitute - use about half a tablespoon. Do not substitute fenugreek seeds for powder without grinding them first.

Garam masala - 2 tablespoons. The warm, complex spice blend that provides most of the heat and depth. The quantity here is generous by some standards - reduce to 1 tablespoon for a milder result and increase gradually to taste.

Tomato paste - a quarter cup. Concentrated tomato flavor and color. Use full-concentrate paste, not tomato sauce or passata.

Coconut milk - three-quarters of a cup, full fat canned. Stirred in at the end. Full fat is non-negotiable for the right body and richness. Do not substitute with carton coconut milk or light versions. Vegan yogurt (unsweetened, such as Alpro plain) works as an alternative and produces a flavor closer to the traditional dairy-based version - tangier and less sweet than coconut milk.

Kidney beans - one 15 oz can, drained. Use canned drained kidney beans. If using dried kidney beans, they must be soaked overnight and pressure-cooked until fully soft before adding to the recipe.

Optional: onions and chilis - half a cup of chopped onion and 2 chopped jalapeños or fresh chilis. Sautéed with the garlic and spices before the lentils go in. Both add depth and heat; neither is necessary for a great result.

Madras Lentil are amazing as a main dish or as a side.

How to make dal makhani

In a large pot over medium heat, melt the vegan butter. Add the minced garlic, garlic powder, fenugreek, and garam masala - and the optional chopped onion and chilis if using. Fry everything together for 2 minutes, stirring constantly, until the spices are fragrant and the garlic is beginning to turn golden. This blooming step is important - it develops the spice flavor in a way that adding them later cannot.

Add the beluga lentils and water. Stir well to combine, bring to a simmer, then reduce to medium heat and cook covered for 15 minutes, stirring occasionally. The lentils should be fully tender at this point - if they need a few more minutes, give them the time before proceeding. Different brands of beluga lentils vary slightly in cooking time.

Add the drained kidney beans, tomato paste, and coconut milk. Stir everything together thoroughly. Cook uncovered for a further 5 minutes until the sauce has thickened and the beans are warmed through. Season with salt and pepper to taste.

For a thicker, more rustic texture, mash a portion of the lentils roughly with a potato masher or the back of a spoon - this thickens the sauce and gives the dal a more cohesive, creamy body.

Serve in bowls over rice, with warm naan or flatbread, or as part of a larger spread.

Enjoy a simple one pot meal that is perfect for any occasion.

The slow-cook option

Dal makhani is a classic slow-cook dish in Indian cooking culture. In traditional restaurant and home kitchens, it simmers on a low flame for three hours or more - this long cooking deepens the flavor, infuses the spices more thoroughly into the lentils and beans, and produces a richness and body that a 30-minute version cannot fully replicate.

If you have the time, the slow-cook method is worth doing at least once. After blooming the spices and adding the lentils, reduce the heat to low and let the dal simmer gently for 2 to 3 hours with the lid slightly ajar, stirring occasionally and adding a splash of water if it becomes too thick. Add the kidney beans, tomato paste, and coconut milk in the final 10 minutes. The result is a noticeably deeper, more complex dish - the version closest to what is served in North Indian restaurants.

The 30-minute version on this site is genuinely good and perfectly suitable for any weeknight. The slow-cook version is what you make when you want to show the dish at its best.

Step by step instruction how to make Dal Makhani.

Ways to serve

Over basmati rice - the classic pairing. The rice absorbs the rich sauce and the dish becomes a complete meal.

With naan or flatbread - for scooping. The sauce is rich and flavorful enough to eat with bread alone.

Over roasted butternut squash - one reader's suggestion that works beautifully - the sweetness of the squash pairs well with the spiced dal.

Over mashed cauliflower - another reader variation for a lower-carb option.

Topped with fresh cilantro - scatter generously over the finished bowl. The fresh herb lifts the richness of the sauce significantly.

With a wedge of lemon - a squeeze over the bowl just before eating adds brightness that cuts through the richness of the coconut milk.

Dal Makhani is a perfect easy family recipe for lunch or dinners. Also meal prep ready.

Storage and meal prep

Refrigerator: Store in an airtight container for up to 4 days. The flavor improves on the second day as the spices continue to develop. Reheat gently on the stovetop or in the microwave with a splash of water or broth if needed to loosen the sauce.

Freezer: Freezes well for up to 3 months. Portion into freezer-safe containers and thaw in the fridge overnight. Reheat gently - the coconut milk may separate slightly on thawing but comes back together with gentle stirring over low heat.

Doubling the recipe: This recipe doubles well. When doubling, keep the spices proportional and taste before serving - different batches of garam masala and fenugreek vary in intensity.

Meal prep: Make a full batch on Sunday. Reheat individual portions throughout the week over freshly cooked rice. One of the best meal prep recipes on this site in terms of the ratio of effort to result.

This Dal Makhani is a simple one pot meal and made with a spice mix which makes this dish so delicious. It is ready in 30 minutes and will be a favorite in no time that the whole family will love. #vegan #dairyfree #vegetarian #glutenfree #onepotmeals #dinner #lunch #mealprep #comfortfood #contentednesscooking #dalmakhani #madraslentils

Frequently Asked Questions

What form of fenugreek should I use?

Fenugreek powder, not seeds. If you have whole fenugreek seeds, grind them to a powder in a spice grinder or use a mortar and pestle before adding. Seeds added whole have a significantly different texture and release their flavor differently. If fenugreek is unavailable, half a tablespoon of Dijon mustard is the closest substitute.

What are beluga lentils and where do I find them?

Beluga lentils are small whole black lentils - the same as whole urad or urid dal in Indian cooking. The pack in an Indian or Asian grocery store will typically be labeled "URID" or "URAD." They are also increasingly available in the regular lentil section of most supermarkets and widely available online. Their firm texture when cooked is what makes them the right lentil for dal makhani - they hold their shape rather than going mushy.

Can I use a different type of lentil?

You can make this recipe with green, brown, or red lentils if beluga is unavailable. Red lentils work well - use about three-quarters of a cup as they are smaller, and reduce the cooking time slightly. Be aware that red lentils will go soft and lose their texture, producing a smoother, more soup-like result rather than the characteristic firmness of dal makhani. Green or brown lentils hold their shape better and are a closer substitute.

Should I use dry or canned beluga lentils?

Use dried, uncooked beluga lentils for this recipe - they cook directly in the pot in 15 to 20 minutes. If you have precooked or canned lentils, omit the water and add the cooked lentils with the kidney beans at the end, warming through for 5 minutes.

Do the kidney beans need to be pre-soaked or cooked?

If using canned kidney beans, drain and rinse them - no pre-soaking or cooking needed. If using dried kidney beans, they must be soaked overnight and pressure-cooked until fully soft before adding to the recipe. Under-cooked kidney beans contain toxins that cause nausea - do not add dried or under-cooked kidney beans directly to this recipe.

Which coconut milk should I use - canned or carton?

Full-fat canned coconut milk. Carton coconut milk is significantly more dilute and will not produce the right richness or body. Light canned coconut milk also works but gives a thinner result. If you prefer a flavor closer to the traditional North Indian dairy-based version, unsweetened vegan yogurt (such as Alpro plain) is an excellent substitute - it gives a tangier, less sweet creaminess that many people prefer.

My dal came out watery. What went wrong?

The most common cause is using pre-cooked lentils instead of dried - pre-cooked lentils do not need the full 2.5 cups of water and will produce a watery result if the full amount is added. If using pre-cooked lentils, omit the water entirely. If you used dried lentils and the result was still watery, simmer uncovered for an additional 5 to 10 minutes to reduce the liquid before adding the coconut milk.

Can I make this with the slow-cook method?

Yes - and it produces a noticeably better result. After blooming the spices and adding the lentils, reduce to low heat and simmer gently for 2 to 3 hours with the lid slightly ajar, stirring occasionally and adding water as needed to prevent sticking. Add the kidney beans, tomato paste, and coconut milk in the final 10 minutes. This is how dal makhani is traditionally made in Indian kitchens and the depth of flavor is significantly greater.

Is this gluten free?

Yes - all ingredients in the base recipe are naturally gluten free. Check your specific garam masala blend if you are celiac, as some blends include fillers.

More recipes you'll love

If you try my easy vegan Dal Makhani, tag me on Instagram or Facebook.

Snap a picture and show me all your remakes.

Love to see them all, Florian.

Dal Makhani is a perfect easy family recipe for lunch or dinners. Also meal prep ready.

Dal Makhani (Vegan, One Pot, 30 Minutes)

Yield: 4
Prep Time: 5 minutes
Cook Time: 25 minutes
Total Time: 30 minutes

A plant-based dal makhani built on beluga lentils, kidney beans, garam masala, fenugreek, vegan butter, and coconut milk — everything in one pot in 30 minutes. Rich, creamy, and deeply spiced. Slow-cook for 2 to 3 hours for an even deeper result.

4.6 Stars (74 Reviews)

Ingredients

  • ½ cup beluga lentils, uncooked
  • 2½ cups water (or vegetable broth)
  • 3 tablespoons vegan butter
  • 3 cloves garlic, minced
  • 1 tablespoon garlic powder
  • 1 tablespoon fenugreek powder
  • 2 tablespoons garam masala
  • ¼ cup tomato paste
  • ¾ cup coconut milk, full fat canned
  • 15 oz can kidney beans, drained
  • Salt and pepper to taste

Optional:

  • ½ cup onion, chopped
  • 2 jalapeños or fresh chilis, chopped

Instructions

  1. In a large pot over medium heat, melt the vegan butter. Add the minced garlic, garlic powder, fenugreek powder, and garam masala. If using, add the chopped onion and jalapeños or chilis at this stage. Fry everything together for 2 minutes, stirring constantly, until the spices are fragrant and the garlic is beginning to turn golden.
  2. Add the beluga lentils and water (or vegetable broth). Stir well to combine. Bring to a simmer, then reduce to medium heat and cook covered for 15 minutes, stirring occasionally. Check the lentils are fully tender before proceeding — if they need a few more minutes, allow the extra time. Different brands of beluga lentils vary slightly in cooking time.
  3. Add the drained kidney beans, tomato paste, and coconut milk. Stir everything together thoroughly. Cook uncovered for a further 5 minutes until the sauce has thickened and the beans are warmed through.
  4. Taste and season with salt and pepper. For a thicker, more cohesive texture, mash a portion of the lentils roughly with a potato masher or the back of a spoon. Serve over basmati rice or with naan, topped with fresh cilantro.

Notes

  • Fenugreek: Use fenugreek powder, not whole seeds. If unavailable, half a tablespoon of Dijon mustard is the closest substitute.
  • Beluga lentils: The same as whole urad or urid dal. Indian and Asian grocery stores stock them labeled "URID" or "URAD." Green or brown lentils substitute reasonably well; red lentils work but produce a softer, mushier texture.
  • Kidney beans: Use canned and drained. If using dried kidney beans, soak overnight and pressure-cook until fully soft before adding — never add under-cooked dried kidney beans.
  • Coconut milk: Full-fat canned only. Unsweetened vegan yogurt (such as Alpro plain) is an excellent dairy-free alternative that produces a tangier, more traditionally authentic result.
  • Watery result: Caused by using pre-cooked lentils with the full amount of water. If using pre-cooked lentils, omit the water and add them with the kidney beans. If still too thin, simmer uncovered to reduce before adding coconut milk.
  • Slow-cook method: For deeper flavor, simmer on low for 2 to 3 hours after adding the lentils, with the lid slightly ajar. Add kidney beans, tomato paste, and coconut milk in the final 10 minutes. This is the traditional method and produces a noticeably richer result.
  • Vegetable broth: Substitute for the water for an additional layer of savory flavor.
    Refrigerator: Stores for up to 4 days. Flavor improves on day two. Reheat with a splash of water or broth.
  • Freezer: Freezes well for up to 3 months.

Nutrition Information:
Yield: 4 Serving Size: 2 cups
Amount Per Serving: Calories: 336Total Fat: 12.1gSaturated Fat: 2.9gTrans Fat: 0gUnsaturated Fat: 8.9gCholesterol: 0mgSodium: 15.3mgCarbohydrates: 43.1gFiber: 10.1gSugar: 2.8gProtein: 16.3g

Did you make this recipe?

Please leave a comment on the blog or share a photo on Facebook

39 Comments

  1. Hey Florian! My partner and I tried this for the first time last night! My god, where has your blog been my whole life? We served it with rice and Swiss chard, I think it's going to be one of our regular weeknight meals!

    Please keep up the amazing work, looking for to more of your recipes! 🙂

  2. Very delish! I didn’t had the lentils that were called for in the recipe, so I used red lentils instead. It turned out great. Since red lentils are a bit smaller I used 3/4 cup. It was super yummy. Thank you

    1. Thanks for your amazing feedback and making it! Sounds delicious with red lentils, yum! I hope you'll find lots of more recipes to try.

  3. Super easy to make and FANTASTIC! I had to reprint it with the ingredients doubled. If taking to potluck, I will double the double. YUM!! Everyone loved it and kept going back for more.

    1. Thanks so much for your amazing feedback and sharing, Sue! I hope you'll find lots of more recipes to try.

  4. Amazing dish, I have made this two weeks in a row! I poured this on top of roasted butternut squash and it was the perfect lunch.

  5. This is fantastic!! I added red curry paste instead of tomato paste, black beans instead of kidney beans, and added spinach I have on hand. So versatile and sooooo good!

  6. Oh boy did I love this recipe! I couldn't picture how it would all come together but come together it did. Yum. I made with green lentils (as that what's I had in the house) and 1Tbsp of dijon mustard (to replace the fenugreek which I had never heard of but Googled a substitute which lead me to the mustard). So easy to throw together and love that it is legit one pot making clean-up super easy too.
    I put on top of mashed cauliflower as I didn't think ahead to make rice. In the rotation!

  7. Just checking, we should use un-cooked un-soaked beluga lentils and soaked or cooked kidney beans for this recipe? It's not so clear in the instructions.

    1. Hi there! Use uncooked beluga lentils plus canned and drained kidney beans. Hope that helps and clarifies.

  8. I wouldc love to make this, but can I make it with already cooked lentils? I needed lentils for another recipe the other day and had some leftover. Would I just forego some of the water? Thanks?

  9. Hi,
    I want to double the recipe but when I use the multiplier in the top right, I noticed the spices do not double. I am meant to double the spices and garlic, aren't I?
    Thanks for your time,
    Ki. 🙂

    1. Hi there! Please use the double amount of spices. Hope that helps. Let me know how it goes.

  10. Mine came out incredibly watery, I used Brown lentils and vegetable broth instead of water, but I don't think that should've made much of a difference. What could have gone wrong?

    1. Hi Mel! Did you use dried lentils or precooked? I use dried so the lentils are fully cooked in my water. Hope that helps and let me know what you think.

  11. I’m so glad I found your recipe! I added bay leaf and a vegetable broth cube and let it simmer a bit longer… I think the base of my pot was too small but the lentils still cooked up beautifully and taste amazing! This is definitely going into my rotation!

    1. Thanks for your great feedback, Kim! Would you mind leaving a star rating with your review? Your experience is so helpful for other readers. Thanks a lot.

  12. Hi! This looks delicious and I’m trying it tonight but does 1/2 cup beluga lentils really yield 4- 2 cup servings? I know there’s the beans in there but still…. Thanks

    1. Hi Kristin! I find the amount after testing in and out pretty accurate. Therefore you can always use more to your own preference and liking. Let me know what you think.

  13. Made this tonight! So yummy!! I sautéed onions before the garlic and garammasala and only used 1 tbsp of that! Used the Beluga Lentils and 2 1/2 cups veggie stock rather than water. Did not use fenugreek! After cooking I added some orzo to thicken it up!

    1. Hi Barb! Thanks for your great feedback! Don't forget leaving a star rating with your review. Your experience is so helpful for other readers. Thanks a lot.

  14. This is absolutely delicious! Wonderful flavors and really like the fact that it is so easy to make! Thanks for sharing.

    1. Hi Joey! Thanks for your great feedback. Don't forget leaving a star rating with your review this is so helpful for other readers. Thanks a lot and I hope you'll find lots of more recipes to try.

  15. Love this recipe! Tried it for the first time tonight. Followed the directions to a T but needed double the time for the lentils to cook. I feel like it is missing a little something. Any advice or product recommendations? Sometimes the product you use makes a big difference. For those who added salt, how much?

    1. Hi Faye! Thanks for your amazing feedback and making it! Happy to hear you enjoyed this dal makhani so much. Did you really use the same amount of spices that I always add? I tested the recipe in and out and find the amount to be perfect. Let me know what you think.

    2. @Florian, I’m making it again right now as I read your comment. Thanks for your reply. Yes, I followed your recipe to the T. I am using a concentrated tomato paste this time. Maybe this will make a difference. I will let you know.

  16. I did like this recipe a lot. It was easy. I soaked and cooked my own beans and lentils. It reminded me of what I had in India Rajma Masala. I doubled the tecipe so ill eat it for a few days. I'll put cilantro atop a bowl next time. Kudos. This recipe is delicious tho in my experience not the typical dahl makani.

    1. Thanks for the great feedback, Patricia! Please do a star rating with your review as well. So helpful for other readers, thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *