Step 1 of 5

Mapo tofu

Toast Sichuan pepper in a dry pan until fragrant, 1 minute. Grind. Cube tofu and sit it in warm salted water.

Questions about this dish

Answers taken from this dish's times, amounts, swaps and tips โ€” not a chatbot.

How long does Mapo tofu take?

35 min all in โ€” 15 min prep, 20 min cook. That is the time on this recipe, not a guess.

How many does it serve?

The recipe is written for 3 people. Scale the ingredient list on the page if you are cooking for a different number.

How hard is it?

Medium.

How spicy is it?

Hot.

What allergens should I watch?

This recipe is labelled for Soy, Wheat. Labels are informational โ€” check the packets in your kitchen. This is not medical advice.

Does it fit a diet?

The published recipe is labelled Dairy-free.

What does it cost to cook?

Weeknight budget โ€” about $8โ€“16 USD, as a grocery budget for this recipe, not a restaurant price.

What equipment do I need?

Wok, Saucepan.

How much salt do I put in?

This recipe does not list salt as its own ingredient. Saltiness comes from Soy sauce โ€” 1 tsp. Taste at the end rather than adding a number we did not write.

How much soy sauce?

1 tsp of Soy sauce.

What can I use instead?

Pork โ†’ Finely chopped shiitake. Brown hard for savoury depth. Doubanjiang โ†’ Gochujang plus extra chilli. Korean-adjacent, not Sichuan. Different fermented base.

What should I watch for?

Raw doubanjiang tastes harsh. Cook it.

Any tips from this recipe?

Pixian doubanjiang is worth ordering once. Generic chilli bean paste is saltier and less complex. Vegetarian: skip pork, fry mushrooms, and use a little extra doubanjiang oil.

Can I use an air fryer?

This method is not written for an air fryer. The core technique on the page still applies.

Exit

Before you start cooking

Your pantry, saved recipes and meal plans are stored on this device so the site works โ€” that part can't be switched off. Google Analytics counts page visits so we can see what people open. Separately, we can count anonymous feature usage in our own database. That part is your call, and it stays off unless you say yes.

What gets stored