Indian Butter Tofu [Vegan/Gluten-Free]

Butter Tofu

This recipe is a vegan spin on the much loved Indian Butter Chicken. I swap the chicken for yummy marinaded tofu and dairy cream for coconut and cashew creams. The final dish is rich, spicy and so comforting. My mom is the true genius behind this recipe. She used to make Butter Chicken for my husband because it’s his favourite! Eventually, she realized that it was sad that her vegetarian daughter (me) couldn’t join in. She decided to swap the chicken for tofu and it was a huge success. Then I asked her “Mom, can we make this vegan?” She wasn’t sure, so we got to experimenting and made a fantastic vegan version that my mom claims is “just as delicious as the original.” Pretty fantastic, right?

This recipe requires a blender. It’s pretty easy to prepare but there is some advance prep. You’ll need to marinate the tofu and if you don’t have a high-speed blender, you’ll need to soak cashews for the cashew cream the night before. The next day, you’ll oven-roast the tofu before making the final curry.

Butter Tofu

Indian Butter Tofu (Vegan/Gluten-Free)

Butter Chicken veganized. Try this rich and creamy dish for your Indian fix at home.
No ratings yet
Prep Time 1 d
Cook Time 30 mins
Course Dinner, Lunch, Supper
Cuisine Indian


  • Blender
  • Hand Blender


Marinated Tofu

  • 1 block (454g) Tofu cut into bite-size pieces
  • 1/2 cup vegan yogurt * possible substitutes: coconut cream, full-fat coconut milk or homemade cashew cream
  • 1 tsp garlic minced
  • 1 tsp ginger minced
  • 1 tsp ground cumin
  • 1 tsp garam masala
  • 1 tsp turmeric
  • 1 tsp chilli powder *Go for Indian chilli powder if possible


  • 1 tbsp coconut oil
  • 2 tbsp vegan butter possible substitutes: coconut butter or margarine
  • 1 tsp cumin seeds
  • 1 medium onion
  • 1.5 tsp garlic minced
  • 1 tsp ginger minced
  • Fresh chillies (optional) For extra kick!
  • 1 tsp garam masala
  • 1.5 tsp ground cumin
  • 1 tsp coriander
  • 1 tsp chilli powder
  • 1 can diced tomatoes (795 ml) substitute for fresh tomatoes if desired
  • 1 cup coconut cream (21%) or full-fat coconut milk

Cashew cream

  • 1/3 cup raw cashews *pre-soaked overnight if you don't have a high-speed blender
  • 2/3 cup water


To prepare the night before:

  • Whisk together all marinade ingredients (except tofu) in a large container with a lid.
  • Add tofu to the marinade, cover with a lid and shake. Tofu should be covered with marinade. Refrigerate overnight.
  • Cover cashews in 2 inches of water and let them soak overnight at room temperature. Skip this step if you have a high-speed blender.

Prepare the tofu

  • Preheat oven at 375°F
  • Turn over marinated tofu onto a lightly greased baking pan. Spread pieces out, so they are not piled over each other.
  • Bake for 25-35 minutes until crispy around the edges. Set aside.

Prepare the curry

  • Melt coconut oil and vegan butter on a hot skillet over medium heat.
  • Add in cumin seeds and toast them, about two minutes.
  • Add onions and a sprinkle of salt. Sauté until softened, about two minutes.
  • Mix in garlic, ginger and fresh chillies (if you're using them). Sauté for one or two minutes.
  • Mix in garam masala, ground cumin, coriander, turmeric and chilli powder. Let the spices cook for a minute or two to release their flavour.
  • Mix in tomatoes until they are well incorporated. If the mixture appears too thick, add water.
  • Mix in oven-roasted tofu. Lower heat, cover and let cook for 20 to 30 minutes. The curry should go from a brownish-red colour to a deep red. Don't rush this process.
  • While the curry cooks, make the cashew cream. Blend cashews and water on high until creamy.
  • Once the curry turns to a deep red, use a hand blender to puree all the ingredients. If you don't have a hand blender, let cool, transfer to a stand blender and back.
  • Add cashew cream and coconut cream. Let cook for about 5 to 10 minutes.
  • Remove from heat and serve with a sprinkle of fresh cilnatro.
Keyword Indian, vegan, Vegetarian
Tried this recipe?Share and tag @mtlveg!