Set up a plate with paper towels (or a wire rack). Keep bread nearby.
Egg batter: whisk eggs, then stir in onion, chili, cilantro, spices, and salt. If needed, add breadcrumbs/besan to slightly thicken.
Eggless batter: whisk besan, spices, and salt. Add cilantro, onion, and chili. Slowly whisk in water until smooth and pancake-batter consistency. Rest 5 minutes.
Heat a skillet over medium heat and add oil for shallow frying. Add butter/ghee if using.
Dip bread quickly on both sides, let excess drip off, and place into the pan.
Fry 2–3 minutes per side until golden and cooked through. Repeat in batches.
Drain briefly, sprinkle with chaat masala (optional), and serve hot with chutney, ketchup, or yogurt.