Heat the oil in a large saucepan and fry the onion over low heat for 15 minutes until soft and light brown. Remove half the onion and set aside.
Add the garlic, coriander stems and curry powder and cook 1 minute.
Add water and coconut milk and bring to a simmer. Add carrots and cook 5 minutes. Add bok choy and cook 4 more minutes. Season with salt and pepper to taste.
Meanwhile, toast the coconut in a dry frypan until golden.
Place 1 quartered egg in each soup bowl. Ladle soup on top and sprinkle with reserved onion, coconut and coriander leaves.