Add the water to a pan (for boiling eggs) and bring the water to a boil.
As the water boils, add salt and gently add the eggs to the boiling water.
Reduce the heat to low and cover and cook the eggs for 10 minutes.
After 10 minutes of cooking, switch off the stove and discard the hot water.
You can keep the eggs in little cold water if you are in a hurry, as it will help to cool off the eggs fast.
Once the eggs are cooled completely, you can remove the shells and keep the boiled eggs aside in a bowl.
Peel and slice the onion in thin long slices.
To prepare the seasoning, heat oil in a pan and add mustard seeds.
When the mustard seeds splutter, add red chilies and curry leaves, fry for a few seconds. Now the seasoning is ready.
Add the sliced onion and little salt and saute the onions in medium heat until the onions are lightly browned.
Meanwhile chop the tomatoes in medium sized pieces and keep aside.
Once the onion slices are browned, add the garlic, ginger and sliced green chilies, saute for another 1 minute.
Add the chopped tomatoes and enough salt, and stir fry the contents for about 2 minutes.
Add one cup of water and cover the pan and cook in low heat for about 6 to 7 minutes or until the tomatoes are cooked and soft and have blended with the onions and water to make a tomato based gravy.
Add all remaining spices - turmeric, red chili powder, garam masala powder and curry powder, cook for another 2 minutes in low heat keeping the pan opened.
Meanwhile cut the boiled eggs in half so you have four pieces of boiled egg halves.
Gently drop the egg halves to the gravy with the yolk side up and cook for another 1 more minute.
You can use a spoon out little gravy and pour the gravy over the egg halves.
Switch off the stove and keep the pan away from heat.
Keep the pan closed so the mixture will blend with the eggs nicely.