Today I have the most special Indian recipe for you: Restaurant-Style Vegan Malai Kofta! It’s rich, luxurious, brimming with spices, and perfect for special occasions.
What is Malai Kofta?
Malai Kofta, in short, is a dish that consists of fried dumplings made with potatoes and paneer (a fresh Indian cheese) that are swimming in a spiced, creamy golden gravy. Malai means “clotted cream” and kofta refers to meatballs, though most versions of Malai Kofta don’t contain meat.

Malai Kofta is a rich dish with roots in the Mughal Empire, which reigned India from the 1500s until its decline in the 1800s. Even after the Mughal decline, Mughlai cuisine left its impact on Indian cuisine. It’s a fusion of North Indian and Central Asian cuisines and is known for being rich, indulgent, and quite spicy.
Since Malai Kofta has its origins in northern India, it’s not a dish we ate at home. My family is Gujarati, which tends to be the most vegetarian and vegan-friendly cuisine throughout India and is quite different from the popular Northern Indian cuisine you’ll find at most Westernized Indian restaurants.
Watch: How to make Vegan Malai Kofta
Why you’ll love this vegan malai kofta
Malai Kofta is a special occasion dish. This is not something you’ll likely be making on an ordinary Wednesday evening. For one, there are a few steps involved so it’s not a quick weeknight curry. And two, it’s a very rich, decadent dish so people don’t eat it on a regular basis.
While my veganized version of Malai Kofta is certainly healthier than the traditional versions made with heavy cream and cheese, it’s still deep-fried! Speaking of deep-fried, it’s not something I suggest doing every day, but for a special occasion dish like gobi manchurian or malai kofta, I highly recommend it.
I promise you, it is soo freakin delicious that it will 1000% be worth it. That said, the recipe does include instructions on how to bake the kofta instead of frying them, but IMO, the deep fried version is significantly better.
In the photos below, the deep-fried kofta are on the left; the baked kofta are on the right.
And if you’re worried that deep frying at home is difficult, it’s actually quite simple.
All you need is a somewhat deep pan for drying and a spider tool. A wok or similar-shaped pan is ideal, but as you can see in the video, I just used a medium-sized saucepan (I don’t have a wok). The recipe has detailed instructions on how to heat the oil and how to determine if it’s hot enough, so it’s really quite foolproof.

Ingredients needed for vegan malai kofta
Kofta are traditionally made with paneer and potatoes and then deep-fried. Below are some of the key ingredients.
High-Protein/Super-Firm Tofu
Traditionally, malai kofta is made with paneer, an Indian cheese with a spongy, chewy texture. Paneer is firmer than extra-firm tofu, so to most accurately replicate its texture, I use super-firm tofu (aka high-protein tofu), which has almost all of the water pressed out of it so it’s quite firm like a block.
If you can’t find super-firm or high-protein tofu, you can use extra-firm tofu. If you do use extra-firm tofu, be sure to really press the water out of it. A quick 15-minute press will not do. I’m talking a full-hour press with changing the paper towels at least once in between. Don’t worry, there’s plenty of other prep work you can do while the tofu is being pressed.
And, if you have the time (e.g., it’s only Thursday and you’re planning to make this on Saturday). freeze the extra-firm tofu first. Freezing tofu changes its texture, making it chewier and spongier, which will help us mimic the texture of paneer.
To freeze tofu, just open the package, drain the water, and cut into a few slabs or chunks. Transfer to a sealable bag, and freeze for at least 3-4 hours, or overnight. Then, defrost the tofu in the fridge. Or, for a quicker thaw, you can simmer the tofu in a pot of water for 15 minutes. Once the tofu is thawed, squeeze out any remaining water.

Yukon Gold Potatoes
Malai kofta is traditionally a paneer and potato dumpling, so of course we’re using potatoes! I use Yukon Gold potatoes, and I boil them just until they’re done. You don’t want them to be as soft as you’d make them for mashed potatoes because you’ll need to grate them. Plus, really soft potatoes will make the dough sticky and too soft.
Also, be sure to dry out your potatoes. After they’re done, drain them in a colander and let them sit there fore at least 10-15 minutes. If you grate your potatoes as soon as they’re done boiling, the potatoes will retain some water and make the dough watery.
Ground Cashews
The dough also contains raw or roasted cashews that have been finely ground up (I use a food processor). This helps the dough stick together a bit, and adds another element of richness.
Cornstarch
The cornstarch (known as “corn flour” outside the U.S) is what binds the mixture. If you omit it, the dough will be too soft to hold together the balls and they will turn mushy if you try to fry them.
I haven’t tried this recipe using arrowroot powder or tapioca flour/starch, but am pretty sure those substitutes would work.

How to make a vegan malai kofta gravy
The kofta are traditionally served in a rich, creamy golden-orange gravy that resembles curry. This gravy recipe illustrates one of the hallmarks of good Indian cooking: layering spices (whole and ground) and aromatics to create depth of flavor.
Whole Spices
In many Indian recipes, as in this one or in my Chana Masala or my Jackfruit Sweet Potato Curry, you start off by toasting whole spices, either dry or in oil. When you add whole spices, you add little hints of each whole spice to a dish that perfume it throughout. And toasting them brings that complex depth of flavor and aroma that you associate with delicious Indian food.
The spices I use in this dish are green cardamom pods, whole cloves, cinnamon sticks, and cumin seeds. You can find the latter three spices at most grocery stores. For green cardamom pods, you can find them in Indian grocery stores, online, or at specialty markets like Whole Foods.
I use a mortar and pestle to break up the cinnamon sticks a bit, then add the remaining whole spices and crush them just a little (I don’t attempt to finely grind them). This starts the process of releasing their essential oils, which is where all the flavor is found.
Aromatics
After you toast some whole spices, it’s time to sauté aromatics. Most Indian dishes rely on onions, garlic, and ginger. I also like to add green chili peppers (such as serrano peppers) to this mix. This is something I learned from my mom, but if you are sensitive to spicy food, you can omit them. Or, use a milder pepper like jalapeños and remove all the seeds.
Ground Spices
Once you’ve sautéed the aromatics, it’s time to add ground spices. These need just about 30 seconds to toast and stir into the aromatics, and they’ll become very fragrant quickly.
To extend the shelf life of spices (ground or whole), store them in glass or opaque containers in a cool, dark, dry place (not above your oven!). And for more tips on spice storage, check out this guide.
To recap, the basic formula for many Indian recipes is: (1) toast whole spices, dry or in oil; (2) sauté aromatics such as onions, garlic, ginger (and green chilies); (3) toast ground spices and stir into the aromatics.

Tomatoes
Once you’ve completed your “formula,” you can add the rest of your ingredients. For this gravy, that includes tomatoes, cashews, and salt. I use three extra-large tomatoes and be sure to keep the juices, as they’ll help create the gravy.
Cashews
This is the source of the gravy’s incredible creamy richness. While this gravy looks incredibly rich, it’s actually very wholesome!
I soak the raw cashews in boiling water for 15 minutes before adding them to the gravy to ensure they adequately soften (they’ll also simmer on the stove for 15 minutes). While they’re soaking, you can prep other ingredients.
Plant Milk and Lemon Juice
Once the gravy is done simmering, it gets pureed in a blender with some plant-based milk and lemon juice. You can use water instead of the milk and it will still be quite creamy. The acidity in the lemon juice helps to balance the heat of the spices.
I like my gravy quite thick, but if you want a thinner texture, add more milk or water to the blender.
Fenugreek Leaves (Kasoori Methi)
I try not to include specialty ingredients in my recipes unless I think they make a notable difference. But kasoori methi (the Indian name for dried fenugreek leaves) is one of those ingredients that does make a difference. It sort of tastes like a hybrid between fennel and celery and it adds a really unique flavor to Indian dishes and enhances the overall flavor of the Malai Kofta.
Usually the leaves are crushed or crumbled over Indian curries before serving, which is what I do in this recipe. You can find fenugreek leaves in Indian grocery stores or online. Unfortunately, it’s one of those ingredients that doesn’t have a real substitute (fenugreek seeds are not the same thing), so if you can’t find it or don’t want to buy it, just omit it.
I promise the Malai Kofta will still be delicious!

Tips for making vegan malai kofta
1. One of the ground spices is Indian red chili powder. Please note that this is NOT the same as regular chili powder that you can buy at any grocery store. It is made exclusively from dried red chilies, so it is significantly spicier and different in flavor than chili powder (which is mixed with other spices).
If you don’t have Indian red chili powder, you can (a) omit it – this is a good option for those who want a mild heat; (b) substitute with cayenne pepper, but a smaller amount (I usually do about half), as I think cayenne pepper is a bit spicier; or (c) omit and add more green chili peppers if want it to be spicy.
2. If you don’t have a mortar & pestle, a spice grinder or coffee grinder, it might be hard to break whole cinnamon sticks into small pieces. If that’s the case, omit the cinnamon sticks and add ½-1 teaspoon ground cinnamon along with the other ground spices. Or you can try one of these hacks for grinding spices!
3. Try to roll the kofta into circular rounds of even size, as much as possible. For reference, all of mine weighed between 40 and 50 grams. I don’t expect you to weigh them, but just in case you want to know how large to make them. You can make them smaller or larger, depending on how you like to serve them. The larger they are, the longer they’ll take to cook.

4. As I mentioned earlier, I highly recommend the deep-fried method. No, it’s not “healthy” but eating a deep-fried vegan dinner from time to time doesn’t make you unhealthy. Deep frying the kofta tastes significantly better and it’s the authentic way to do it! In the photo above, the deep-fried kofta are on top; the baked kofta are on the bottom.
Speaking of frying these balls, the exact cook time will depend on the type of pan you use, the oil you use, and the size of your kofta. Start checking at 5 minutes. They should definitely be done within 10 minutes. Mine usually take 5-8 minutes.
5. You can make the gravy ahead of time, up to 3-4 days in advance. Just store it an airtight container in the fridge and reheat before serving.
You can also prepare the kofta ahead of time and fry when ready. Arrange the rolled kofta balls on a parchment paper-lined tray, cover, and store in the fridge for a day or two. Or, you can freeze them for longer. Bring to room temperature before frying/baking.

How to make this recipe allergen-friendly
To make this recipe soy-free, replace the tofu with an equal weight of chickpeas (i.e., use 454 grams or 16 ounces of cooked chickpeas). Use a potato masher or fork to finely mash the chickpeas (or blitz them in a food processor to make it easier). If you are not allergic to soy, I recommend sticking with the tofu because while the chickpea version is delicious, it tastes more like a falafel than traditional malai kofta.
If you are using canned chickpeas, weigh the chickpeas after draining them because the weight listed on the can (usually 440 grams or so) is much higher than the actual weight of the chickpeas once drained (closer to 250-300 grams). For reference, 1 cup of cooked chickpeas weighs about 160 grams or 5.6 ounces, so you’ll want to use between 2 3/4 – 3 cups of cooked chickpeas.
To make this recipe nut-free, you can replace the cashews in the gravy with an equal amount of coconut cream or full-fat canned coconut milk. And instead of ground cashews in the kofta, you can use all-purpose flour. If you’re allergic to just cashews and can have other nuts, I recommend substituting the ground cashews with almond flour.
I hope you give this extra-special Restaurant-Style Vegan Malai Kofta recipe a try! If you do, please rate and review the recipe below and tag me with your recreations on Instagram!
Restaurant-Style Vegan Malai Kofta

Ingredients
Kofta
- 16 ounces (454g) high-protein or super-firm tofu (can use extra-firm tofu if you can’t find it*)
- 12 ounces (340-345g) Yukon Gold potatoes, peeled and washed
- 5 tablespoons cornstarch (40g), arrowroot powder (40g), or tapioca flour (37-38g)
- 1 tablespoon minced or grated fresh ginger
- 1/4 cup (4g) fresh cilantro, chopped
- 1 teaspoon garam masala
- 1 teaspoon Indian red chili powder**
- Kosher salt or sea salt to taste***
- 1/4 cup raw or roasted cashews (35g), finely ground up in a food processor****
- Vegetable oil for rolling and for deep frying
Gravy
- 1-2 tablespoons unrefined coconut oil (or a neutral oil of choice)
- Whole spices
- 4-6 whole green cardamom pods (I used 6)
- 2 cinnamon sticks, broken into small pieces
- 4 whole cloves
- 1 teaspoon cumin seeds
- Aromatics
- 1 extra large yellow onion, or 2 small yellow onions, chopped
- 1-2 green chilies*****, deseeded and chopped
- 1 ½ tbsp finely chopped fresh ginger
- 4 garlic cloves, roughly chopped
- Ground Spices
- ½ teaspoon ground coriander
- 1-2 teaspoon Indian red chili powder (use less for a milder heat)
- 1 teaspoon ground turmeric
- 3 extra large tomatoes (16-18 ounces or 480-540g) total, chopped with the juices
- 1 cup raw cashews, soaked in boiling water for 15 minutes and drained
- 1 ½ teaspoons kosher salt
- 1 ¼ cups (300 mL) unsweetened plant-based milk (I used this), or water
- 1 tablespoon lemon juice
Garnishes/for Serving
- 1 tablespoon fenugreek leaves (also known as kasoori methi; if you don’t have it, just omit)
- 1/2 teaspoon garam masala
- 1 cup loosely packed fresh cilantro, chopped (keep the stems)
- Indian bread (naan or paratha) or white rice
Instructions
- Cover the 1 cup cashews with boiling water for 15 minutes, or while you prepare the other ingredients.
- Make the Gravy. Add the cinnamon sticks to a mortar and pestle, spice grinder, or coffee grinder and break up into small pieces. Then add the green cardamom pods, cloves, and cumin seeds and break up a bit more. You don’t need to fully grind them, just a little to start releasing their oils.
- Heat the coconut oil or oil of choice in a large pan over medium high heat. Once melted and hot, add the Whole Spices. Sauté for 45-60 seconds or until very fragrant, tossing frequently to prevent burning.
- Add the onions and sauté until they start to turn brown, about 4-5 minutes. Add the garlic, ginger, green chilies (if using), and cook for 1 minute, tossing frequently. Add the Ground Spices and stir frequently for 30 seconds.
- Add the tomatoes and their juices and cook until broken down and softened, 2-3 minutes. Then add the soaked cashews and salt. Cover the pot and bring to a simmer over medium or medium-low heat. Simmer for 15 minutes, opening the pot to stir occasionally, until the liquid has mostly evaporated.
- Transfer the mixture to a high-powered blender, and add the lemon juice and plant-based milk. Remove the center cap from the blender lid (to vent steam), but cover the hole with a kitchen towel. Blend until the gravy is completely smooth and very creamy. If it’s too thick for your liking, add more plant-based milk or water.
- Transfer the gravy back to the pan and heat over low. Using your fingers, crush the kasoori methi (fenugreek leaves) into the gravy, and add add 1/2 teaspoon garam masala. Stir to combine. Then, stir in the chopped cilantro.
- Prep the kofta ingredients1. Add the potatoes to a saucepan and cover with cold water. Season generously with salt. Bring to a boil and boil until the potatoes are just barely fork-tender, not too soft and falling apart. You want them to be firmer than you’d use for mashed potatoes. Drain the potatoes in a colander and let them sit there while you prep other ingredients. This helps hem dry out and remove excess water.2. Add the 1/4 cup cashews to a food processor and blitz until they turn into a finely ground powder. Wipe out the food processor bowl.3. Add the tofu to the food processor and pulse many times until it’s in tiny pieces and almost resembles ricotta. 4. Once the potato is dried out, grate it using a box grater (the side with large holes), or crumble the potato finely using your hands.
- Make the kofta. Add the grated tofu and potatoes to a large bowl. Add the ground cashew powder, cornstarch (or tapioca or arrowroot), minced ginger, cilantro, red chili powder, garam masala, and salt. Knead with your hands until the dough holds together.
- Roll the dough into 18 uniform-sized balls, about 40-50 grams per ball. Oil your hands as needed while rolling to prevent sticking.
- To Deep-Fry the kofta (recommended method). Heat about 2 inches of vegetable oil or high-heat oil (I used sunflower oil) in a heavy-bottomed wok or pan over medium heat. To check if the oil is hot enough, add a tiny bit of the kofta dough to the oil. If the oil around the kofta immediately sizzles and it rises to the surface in a few seconds, it’s the right temperature. If you have a thermometer, wait until it reads 350°F/176°C.
- Using a spider, slide in one kofta into the hot oil. Wait to see that the kofta holds together, and then gently slide the other kofta in, one by one. Do not overcrowd and fry them in several batches. Toss the kofta around occasionally to prevent them from sticking to one another, and until they are crisp and deeply golden brown, about 5-8 minutes. Drain on a paper towel-lined surface and continue frying the remaining kofta.
- To bake the kofta. Preheat the oven to 425ºF/218ºC. Line a baking sheet with parchment paper. Space out the rolled kofta so that there’s a bit of space between them. Lightly brush them with a neutral oil. Bake for 30-35 minutes, flipping halfway through, until golden and lightly browned on the tops and bottoms.
- To serve the malai kofta: Heat the Gravy in its pan to warm up (if not already warm). Add the Kofta and spoon the Gravy over the Kofta. Garnish with additional cilantro and serve with indian bread or white rice. Be sure to add only as many kofta to the gravy as you plan to eat, as leftover kofta will become soggy in the gravy. For leftovers, store the kofta and gravy separately.
Notes
Is it possible to use an air fryer instead of deep frying? I know you recommend deep frying but have you tried it in the air fryer?
Hi Janine, we do have oven baking instructions in the blog post but haven’t tried air frying it since Nisha doesn’t own an air fryer. You can use the baking recipe as a starting point if you’d like to try it out, and please let us know how it goes! We’d suggest checking at 10 minutes to begin with then every couple of minutes.
This recipe so amazing! Thank you so much! I went vegan like 5 years ago and didn’t realize I’d ever be able to eat this again and an even better version.
We’re delighted to hear you got to eat one of your most beloved dishes again, Savannah!
Am making this now but I wanted to share a few shortcuts I took. Food processed the Kofta ingreds. This eliminates the need to grate the potatoes. Plus I used almond flour in lieu of the cashews here to skip a step. Also prevegan days my malai kofta recipe called for almond instead of cashew. Scooped the balls out with a melon baller which made then uniform and smooth.
I blended the uncooked tomatoes the cashews pepper and the cooked onion/spice mix in order to avoid blending hot ingredients which I find to be dangerous. I used a combo of canned tomato and fresh.
Indian dishes are not weeknight friendly but worth the effort over the weekend.
Thanks so much for this!
Thanks for sharing, Clair!
I made this last night and we were completely amazed at how delicious this was. My husband and I switched to vegan and miss some of the flavors from heavy creams, cheese and oils, but this recipe made us realize that we didn’t miss them at all! What we missed was great Indian flavor. This recipe takes time, but is completely worth it! Healthy, and extremely tasty.
I made it as-is (but didn’t have fenugreek), and I did add raisins (I soaked them for a few minutes in warm water to make them soft) to the kofta because we enjoy it that way from our local Indian restaurant.
THANK YOU!!!
Tiffany, So glad to hear you loved this recipe!
I can barely find the words.. but let me try.. “Wow!”, “Bravo!”, “Magnificent!”. Sooo good! 😳 Thanks a lot, you have made my life forever richer today!
Awesome, Ant. Thanks for your comment and for taking the time to make the recipe and review it! :)
Wow! Made it for dinner last night, had guests over. Everyone raved about the dish! I added only 1/4 cup of cashews and used full fat oat milk, still came out creamy and thick. Highly recommend. Thanks for the wonderful recipe 😊
Hello Nisha,
I’ve enjoyed so many of your recipes and dont mind driving almost an hour to the nearest indian store for a few spices every now and then. For this recipe, can i use cashew butter instead of raw cashews? i know in the lentil recipe i’ve used almond butter before but not sure if i can substitute it the same as here. Thank you!
From Nisha: “That’s so nice to hear! I haven’t tried that substitution myself. Flavorwise, it will have a bit of a more distinct cashew flavor (unless your cashew butter is raw), as cashew butter is usually made from roasted cashews (and raw cashews have a neutral flavor). But given all the other spices, it sohuldn’t be too noticeable. As for the texture, it will be somewhat different. When you soak raw cashews, they swell up and make the sauce super creamy. I’m not sure the cashew butter will do the same thing.”
Hi Nisha,
I love your recipes and have your instapot book which I use ALL the time. I have a few questions about the recipe and after I make it Friday, I’ll rate it, I’m sure it will be a 5!
Here are my questions:
1. Can I use chopped tomatoes from a can instead of fresh
2. Are the Fenugreek leaves fresh as I have the spice Kasoori Methi but I think you mean fresh leave, please confirm.
3. How does frying vs. baking compare? I’m assuming no comparison, lol
4. I am making this for 6 people and I see the recipe makes 18 balls, so 3 per person, it doesn’t sound like enough to eat. Are the Kofta large?
Thanks, Julie
Hi Julie, we are thrilled you enjoy the recipes! Sorry we didn’t have the chance to get back to you in time regarding these questions. I’ll do my best to get you some answers, though!
1. We haven’t tried this recipe with chopped canned tomatoes so we don’t know for sure how it will turn out. The juices of the fresh tomatoes are used in the cooking process so if you do substitute canned for fresh you may want to add a bit of additional water or some vegetable broth to the recipe instead if it seems it doesn’t have enough liquid. This article we found online may be of use to you.
2. We actually reference Kasoori Methi in this recipe, which is just another name for dried fenugreek leaves!
3. Deep frying will yield the most authentic crispy and delicious taste. If you’re opposed to deep frying, you can go ahead and bake them!
4. Each serving is 345 calories, plus if you add rice and/or naan it will bump it to around the 500-600 range. So depending on how much each person will eat, you may want to double the kofta recipe! They also freeze well.
We hope you enjoy, Julie!
Oh my gosh Nisha, you are a magician, this was incredible. I made this for my boyfriend’s birthday and we were speechless after the first bite, it was that amazing. You were right about the fenugreek leaves, definitely worth the effort to the Indian grocer to get them. I did a double freeze & thaw on the tofu and made the gravy the day before and it turned out perfect. Your recipes are all 10/10, thank you for making vegan cooking so delicious and fun!
Kristan, So glad to hear you two loved this recipe! Thank you for the awesome review :)
Nisha,
great recipe and one of my favourite dishes. Unfortunately i now have issues with GERD and am no longer supposed to eat garlic, onions and tomatoes (amongst other things). Do you have any suggestions as to how to modify recipes such as this to replace those ingredients?
Hi Gavin, we are glad you love it! Here’s an article we found about GERD substitutes: https://www.onemedical.com/blog/get-well/heartburn-trigger-replacements/.
Try asafoetida as a sub
Yet another awesome recipe. I tried this for the first time using the Purple Carrot(tm) kit, and loved the flavor. but knew it could be better. so then tried my own version of that and it was great. then went to a local Indian restaurant and ordered theirs. again, better.. but I knew I could make this better than I had, and knew you had this recipe. so Tried it tonight for the first time.. and OMG.. best flavors ever.. i didn’t use whole spices as I didn’t have them, but used Garam Masala in their place where needed, and still came out perfect. Nisha keep putting out these awesome recipe’s.. as I’ve commented on a couple of your YouTube’s as a new Vegan, these are the best possible thingone could find to cook for themselves, and others in a responsible, and ridicoulously flavorful way
Awesome, Brad. Thanks for your comment and for taking the time to review!