Rajma chawal is the dish most North Indian households can cook on autopilot. It is comforting, cheap and reliably good. What it isn't, on its own, is a particularly efficient protein meal — a generous bowl of rajma gives you maybe 12-14g of protein, and once you pile rice next to it, the ratio of carbs to protein tilts hard in the wrong direction.
Adding soya chunks fixes that in one move. The chunks soak up the same gravy, add almost no cooking time, and roughly double the protein in the bowl. Done properly, one serving of this combo curry lands somewhere between 35g and 40g of protein — the kind of number people usually chase with supplements. This is the recipe, plus the technique details that separate a good version from a bland one.
Why Rajma and Soya Chunks Work Together
These two ingredients complement each other in a way that's more than just additive. Rajma brings creaminess, an earthy sweetness and a thick gravy body from the starch it releases. Soya chunks bring texture, a spongy bite that holds sauce, and a much higher protein density per gram.
There's also an amino acid story. Legumes like rajma are relatively low in methionine, while soya has a fuller amino acid profile including a solid methionine content. Combining them gives you a more complete protein than either alone. Our article on vegan protein sources for Indians goes deeper into how this pairing works across other Indian dishes too.
The Protein Maths
A serving using 150g cooked rajma and 40g dry soya chunks gives you roughly 13g from the rajma and 20-22g from the chunks, plus a couple of grams from the onion-tomato masala and any accompanying roti. That's the 35-40g range. For context, most Indian vegetarians average under 50g of protein across an entire day — this single bowl covers most of it.
Ingredients
Base
- 1 cup rajma (kidney beans), soaked overnight
- 1 cup GoodDot Proteiz soya chunks, or standard soya chunks
- 2 large onions, finely chopped
- 3 large tomatoes, pureed
- 1 tbsp ginger-garlic paste
- 2 green chillies, slit
- 3 tbsp mustard oil or any neutral oil
Spices
- 1 tsp cumin seeds
- 1 bay leaf, 1 inch cinnamon, 2 green cardamom
- 1 tsp coriander powder
- 1 tsp red chilli powder (Kashmiri for colour)
- 1/2 tsp turmeric
- 1 tsp rajma masala or chole masala
- 1/2 tsp garam masala
- 1/2 tsp amchur or 1 tbsp lemon juice
- Salt to taste
- Fresh coriander and julienned ginger to finish
Step-by-Step Method
Step 1 — Cook the rajma properly
Drain the soaked rajma and pressure cook with 3 cups fresh water, a pinch of salt and a pinch of turmeric for 5-6 whistles, then simmer on low for 10 minutes. The beans should crush easily between two fingers. Undercooked rajma is the number one reason home versions taste flat — the gravy needs the starch that only fully cooked beans release. Keep the cooking liquid; it is the body of your curry.
Step 2 — Prepare the soya chunks (do not skip this)
Boil the chunks in salted water for 5 minutes, drain, then rinse under cold water and squeeze each one firmly. This does two things: it removes the slightly beany raw note that puts people off soya, and it opens the sponge structure so it drinks up the gravy later. Squeezing until nearly dry is essential.
For extra flavour, toss the squeezed chunks with a pinch of salt, turmeric and chilli powder and shallow fry for 2-3 minutes until the edges catch colour. This step is optional but it transforms the dish.
Step 3 — Build the masala
Heat oil in a heavy pot until it just smokes (if using mustard oil), then bring it back down. Add cumin, bay leaf, cinnamon and cardamom. Once they crackle, add the onions and cook patiently — 12-15 minutes on medium until deep golden brown. This is the flavour foundation and there is no shortcut.
Add ginger-garlic paste, fry for 2 minutes until the raw smell disappears. Add the dry powdered spices with a splash of water so they bloom rather than burn.
Step 4 — Cook down the tomatoes
Pour in the tomato puree and cook on medium heat until the oil separates and floats at the edges, about 10-12 minutes. This visual cue is the single most reliable indicator that your masala is done. Rushing it leaves a sour, raw-tomato taste no amount of garam masala will hide.
Step 5 — Combine and simmer
Add the cooked rajma along with its cooking liquid. Mash about a quarter of the beans against the side of the pot with the back of a ladle — this thickens the gravy naturally. Simmer for 10 minutes.
Now add the prepared soya chunks and simmer another 8-10 minutes. The chunks need this time to absorb the gravy. If the curry thickens too much, add hot water a little at a time.
Step 6 — Finish
Stir in garam masala and amchur, taste for salt, and turn off the heat. Rest the curry covered for 10 minutes before serving — it genuinely improves. Top with chopped coriander, julienned ginger and a squeeze of lemon.
Serving Suggestions
The classic pairing is steamed rice with a wedge of raw onion and a green chilli. For a lower-carb version, serve with two jowar rotis or a bowl of cucumber raita made with plant yoghurt. It also works remarkably well folded into a wrap with sliced onion the next day.
If you're building a bigger spread, this curry sits nicely alongside GoodDot Soya Chaap grilled dry as a starter, or as part of the full menu in our plant-based Indian thali guide.
Variations
Punjabi Dhaba Style
Add a tablespoon of vegan cream or cashew paste at the end and a knob of vegan butter. Richer, glossier, and closer to what you'd get at a highway dhaba. The UnMutton Dhaba Curry Kit is a shortcut to this flavour profile if you want it without the extra steps.
Keema-Rajma Hybrid
Replace half the soya chunks with UnMutton Keema. You get a mince-and-bean texture that's excellent stuffed into pav. Our vegan keema recipe covers the base technique.
Instant Pot Version
Saute the masala on the saute function, add soaked rajma and 2.5 cups water, pressure cook 25 minutes on high with natural release, then stir in the prepared chunks and simmer 5 minutes on saute. Total active time drops to about 15 minutes.
Low-Oil Version
Cut the oil to 1 tablespoon and cook the onions with a splash of water whenever they stick. You lose a little richness but the dish still works. Skip the shallow-frying step for the chunks and boil them instead.
Common Mistakes
Soya chunks that stay bland
You added them at the end without boiling and squeezing first. A dry, squeezed chunk absorbs gravy; a waterlogged one repels it. Always squeeze.
Thin, watery gravy
Either the rajma was undercooked or you discarded the cooking liquid. Mash a portion of the beans and simmer uncovered to reduce.
Curry that tastes sour
The tomatoes weren't cooked long enough. Wait for the oil to separate before moving on. A pinch of jaggery can rescue it at the end.
Too much soya, too little balance
Adding more than about 1 cup of dry chunks per cup of rajma makes the dish spongy and one-note. Stick to the ratio.
Storing and Meal Prep
This curry keeps for 3 days in the fridge and improves overnight as the chunks continue absorbing gravy. Add a splash of water when reheating. It freezes well for a month, though the chunks soften slightly on thawing.
Because it reheats so reliably, it's one of the better dishes for weekly batching — see our vegan meal prep guide for how to slot it into a Sunday cook-up. If you're stocking the pantry, the high-protein picks and under ₹200 collections are where most people start.
Frequently Asked Questions
Do I need to soak rajma overnight?
Ideally yes — 8 hours minimum. If you're short on time, boil the beans for 2 minutes, cover, and let them sit for an hour as a quick-soak substitute. Unsoaked rajma takes far longer to cook and often stays firm in the centre.
Are soya chunks safe to eat every day?
For most healthy adults, a daily serving of 30-50g dry weight is well within normal intake ranges observed in East Asian diets. If you have a diagnosed thyroid condition, our article on soya and thyroid covers what the research actually shows. As always, individual medical advice should come from your doctor.
Can I use canned rajma?
Yes, and it cuts the recipe to about 25 minutes. Use two 400g cans, rinsed. The gravy will be slightly thinner since you lose the starchy cooking liquid, so mash more of the beans and simmer a little longer to compensate.
How is this different from regular rajma?
Nutritionally, roughly double the protein per serving and more fibre. Texturally, the chunks add a chewy bite that makes the bowl more satisfying. The flavour base is identical — if you can make rajma, you can make this.
Is this good for weight loss?
The protein-to-calorie ratio is favourable and the fibre content keeps you full, which helps. Use the low-oil variation and pair it with roti rather than a large portion of rice. Our piece on plant-based meat and weight loss covers the mechanics in more detail.

