Soya chunks are rehydrated and simmered in a tomato-coconut sauce spiced with cumin, coriander, and garam masala, producing a hearty vegan curry in roughly 30 minutes. The textured soy protein soaks up the sauce well, and a squeeze of lemon at the end keeps the dish bright. It's a high-protein, pantry-friendly weeknight meal served over rice or with flatbread.
¾teaspoongaram masalaAdd near the end for full fragrance
1tablespoonfresh lemon juiceAdds brightness at the finish
¼cupfresh cilantro, choppedLeaves and tender stems
1tablespoonvegan butter (optional)For extra silkiness; omit to reduce richness
Prevent your screen from going dark
Instructions
Bring water to a boil (100°C/212°F): In a 3–4 qt saucepan, bring 6 cups water with 1 teaspoon kosher salt to a rolling boil over high heat. You’ll see large, assertive bubbles breaking the surface.
Quick-rehydrate the soya chunks (about 6–7 minutes): Add 2 cups soya chunks. Boil briskly for 2 minutes, then turn off heat, cover, and let stand 2 minutes more. Drain in a fine-mesh strainer, rinse under cold water, and squeeze firmly to expel excess water until just springy. This step removes any beany aroma and improves texture.
Heat the sauté pan: Set a 10–12 inch sauté pan over medium-high heat. Add 2 tablespoons neutral oil; it should shimmer in 45–60 seconds (surface around ~190°C/375°F). Add 1 teaspoon cumin seeds and let them crackle and darken slightly for 20–30 seconds—aroma will turn nutty.
Build the base with onions (about 4 minutes): Add the finely chopped onion and a pinch of salt. Sauté, stirring, until edges are golden and the raw bite mellows—about 4 minutes. Aim for light golden-brown bits; that’s flavor.
Aromatics (about 1 minute): Add grated ginger, minced garlic, and chopped green chili (if using). Cook 45–60 seconds until fragrant and no longer raw—avoid browning to keep the sauce bright.
Bloom ground spices (30 seconds): Sprinkle in ground coriander, ground cumin, Kashmiri red chili powder, and turmeric. Stir constantly for ~30 seconds to bloom in the oil; spices will smell toasty and vivid. If the pan looks dry, splash 1–2 tablespoons water to prevent scorching.
Add tomato puree and reduce (about 2–3 minutes): Pour in 1 cup tomato puree. Cook over medium heat, stirring, until the sauce thickens, glossy streaks appear, and you see tiny oil droplets at the edges—2 to 3 minutes.
Create the sauce and simmer (about 2–3 minutes): Stir in 1/2 cup coconut milk, 3/4 cup water or broth, and 3/4 teaspoon kosher salt plus 1/2 teaspoon sugar (optional). Bring just to a gentle simmer—small, lazy bubbles (about 85–90°C / 185–194°F). Taste and adjust salt now.
Add soya chunks and finish (about 5 minutes): Add the squeezed soya chunks and 3/4 teaspoon garam masala. Simmer 3–4 minutes, stirring so the chunks drink in the sauce. Finish with 1 tablespoon lemon juice, chopped cilantro, and vegan butter if using. Turn off heat and rest 1 minute to let flavors settle.
Taste and serve: The sauce should be creamy, warmly spiced, and balanced—salted, lightly tangy, and gently sweet. If too thick, loosen with a splash of hot water. If tangy, add a pinch more sugar; if flat, add a squeeze of lemon and a pinch of salt.
Notes
Equipment
3–4 qt saucepan, 10–12 inch sauté pan with lid
Fine-mesh strainer, mixing bowl
Chef’s knife, cutting board
Measuring cups/spoons, tongs or slotted spoon
Microplane/grater, citrus squeezer (optional)
Jen’s Tips
Rinse and squeeze the soya chunks well after rehydrating—this removes any beany aroma and ensures they soak up the sauce.
No coconut milk? Blend 1/3 cup raw cashews with 1/2 cup warm water until silky and use in place of coconut milk.
For smokier depth, add 1/2 teaspoon smoked paprika along with the spices.
Want it richer (non-vegan)? Stir in 2 tablespoons heavy cream or a knob of butter at the end.
Speed caramelization: Add a small pinch of baking soda to onions to brown faster—use very sparingly (just a pinch).
Spice control: Kashmiri chili gives color with mild heat. For a spicier curry, add 1/4 teaspoon cayenne with the spices.
Serving Suggestions
Plate in warm bowls, spooning extra sauce over the chunks. Garnish with a flourish of cilantro and a light drizzle of coconut milk for contrast. Serve with basmati rice, jeera rice, or warm chapati/naan. A crisp cucumber-onion salad and a squeeze of lemon keep the dish bright. Pair with chilled mango lassi or a dry Riesling for balance.
Culinary Context
Soya chunks, a beloved pantry protein across India, are valued for their chew and ability to absorb bold masalas. This recipe riffs on North Indian gravies—cumin, coriander, and garam masala—while using coconut milk for a modern, dairy-free finish. I learned the quick-boil-and-rest trick from a Delhi home cook who swore by it for weeknights.
Optional Advanced Instructions
Make-ahead: Rehydrate soya chunks up to 24 hours ahead; store refrigerated, squeezed dry. Blend tomato puree with spices to form a quick paste you can refrigerate 2 days.
Parallel workflow: While chunks soak, start the onion base. With practice, total cook time remains ~22 minutes.
Beginner alternative: If spices scorch easily, lower heat and add 1–2 tablespoons water when blooming.