Skip to main content

Indian-Style Soya Makhani Masala Curry Recipe

Soya curry

Soya curry

Soya Curry

This soya curry is prepared in the North-Indian style and is very similar to butter chicken. Hence, the name soya makhani ("makhani" means buttery). It is a very delicious and creamy dish.

For this recipe, we use soya granules to thicken the gravy, which reduces the amount of cream and cashews that are required. If you wish to add more cream and cashews, however, you can always do so.

Serve with roti, paratha, or naan. Enjoy!

Cook Time

Prep timeCook timeReady inYields

20 min

1 hour 15 min

1 hour 35 min

Serves four people


  • 1 cup soya chunks, preferably medium-sized
  • 1/4 cup soya granules
  • 3/4 cup hung curd
  • 1 tablespoon butter
  • 2 tablespoons vegetable oil
  • 10 garlic cloves
  • 2 inches ginger, chopped
  • 1 medium onion, chopped
  • 5 medium tomatoes, chopped
  • 1 teaspoon salt
  • 2 bay leaves
  • 1 teaspoon red chilli powder
  • 1/2 teaspoon turmeric powder
  • 1/2 teaspoon garam masala
  • 1 teaspoon cumin seeds
  • 1 black cardamom, crushed coarsely
  • 4 green cardamom
  • 1 inch cinnamon
  • 5 cloves
  • 8-10 black pepper corns
  • 10-12 cashew nuts
  • 1 tablespoon kasuri methi (dry fenugreek leaves)
  • 4 tablespoons fresh cream
  • 3/4 cup milk
  • 2 teaspoons hara dhania (cilantro), chopped
  • 1 tablespoon desi ghee (clarified butter)
  • 1 liter water


  1. Boil the soya chunks and granules until soft then strain them out and wash thoroughly under running water. Squeeze out the water.
  2. In a large bowl, add the boiled soya chunks and granules. Add in the hung curd, 1/2 tsp red chilli powder, 1/2 tsp garam masala, and 1/2 tsp salt. Mix well and cover the bowl with a lid. Marinate for 15 minutes.
  3. While the soya is marinating, heat 1 tbsp oil in a pan. Add 1/2 tsp jeera, the crushed black cardamom, 4 green cardamom, cinnamon, peppercorns, and cloves. Stir for about 15-20 seconds.
  4. Add in the chopped ginger, garlic cloves, cashew nuts, chopped onion, and tomatoes. Stir to mix well then reduce heat to low, cover with a lid and cook for about 10 minutes or until the tomatoes turn soft. Stir a few times while it is cooking. Remove to a bowl and allow the mixture to cool down.
  5. While the mixture is cooling, roast the soya. Keep a pan on medium heat, heat 1 tbsp oil, and then put in the marinated soya. First, stir-cook the soya until the water dries up then roast it until it turns light brown stirring constantly. Transfer to a bowl.
  6. Add the cooled spice, onion, and tomato mixture to a blender jar and puree until fine. Add 1/2 cup milk and blend again then remove to a bowl.
  7. Prepare the gravy now. Keep the same pan on medium heat, and put in 1 tbsp desi ghee and 1 tbsp butter. Let them melt. Reduce heat to low, add the bay leaves and 1/2 tsp red chilli powder and stir a few times.
  8. Put in the pureed mixture, raise the heat to medium, and cook for about 2 minutes.
  9. Add in 1/2 tsp garam masala, 1/2 tsp salt, 1/2 tsp turmeric powder, and 1 tsp coriander powder. Mix nicely and then cook for about 5 minutes. If you feel the gravy is getting thick add a little milk (we added 1/4 of a cup).
  10. Add the roasted soya and kasuri methi and stir for a minute. Reduce heat to low-medium and add in the fresh cream and cilantro. Mix well and stir-cook for a minute. The dish is ready.
  11. Remove the dish and garnish with a little cilantro. Serve with roti, paratha, or naan.

© 2019 Rajan Singh Jolly