Serves 4 to 6.
Melt the butter in a medium saucepan over medium heat. Add the onion, garlic and ginger and cook, stirring now and then, until they just start to soften, about 5 minutes.
Stir in the berbere and salt and keep stirring until the spices smell strongly aromatic, about a minute. Add the tomatoes and cook, stirring, until they collapse and the mixture is nearly dry, about 10 minutes.
Pour in the water, turn the heat to high and bring to a boil, then lower the heat to a simmer. Season the chicken all over with salt and settle the pieces into the pot. Cover and cook, lifting the lid to stir every so often, until the chicken is very tender, about 1 hour.
Add the eggs and cook, stirring occasionally, until they are hot through and coated in sauce, about 10 minutes.
Lift the chicken and eggs out with a slotted spoon onto a serving dish. Turn the heat to high, bring the sauce back to a boil and let it reduce and thicken slightly, about 5 minutes. Spoon it over the chicken and eggs and serve straight away.
Leftovers keep in an airtight container in the fridge for a few days. Reheat gently in a heavy pot over low heat, stirring as it warms.