Indonesian white curry, often called opor ayam, is chicken gently simmered in coconut milk with lemongrass, ginger, galangal, and fragrant spices. It is especially familiar in Javanese cooking, though ingredients and seasonings vary between regions and households; its mild, savory sauce makes it comforting with plain rice.
Ingredients
- 2½ lb (1.1 kg) bone-in, skin-on chicken thighs or drumsticks, about 6–8 pieces
- 5 medium shallots (about 150 g), peeled and roughly chopped
- 4 garlic cloves (about 12 g), peeled
- 4 candlenuts (about 20 g); substitute 4 unsalted macadamias or 5 cashews if needed
- 1 tbsp (6 g) ground coriander
- 1 tsp (2 g) ground cumin
- ½ tsp (1 g) ground white pepper
- 1-inch piece fresh ginger (about 15 g), peeled and chopped
- 1-inch piece fresh galangal (about 20 g), peeled and chopped; use extra ginger if unavailable, knowing the flavor will be less piney and citrusy
- 2 tbsp (30 ml) water, for blending the spice paste
- 2 tbsp (30 ml) neutral cooking oil, such as canola or sunflower oil
- 1 stalk lemongrass (about 20 g), outer layer removed and lower portion bruised with the back of a knife
- 3 kaffir lime leaves (about 2 g), torn; fresh or frozen leaves work
- 1 Indonesian bay leaf, daun salam (about 1 g), if available; substitute 1 small conventional bay leaf, which has a stronger herbal flavor
- 2 cans coconut milk, 13.5 oz (400 ml) each, well shaken
- 1 cup (240 ml) low-sodium chicken broth or water
- 1½ tsp (9 g) fine salt, plus more to taste
- 1 tsp (4 g) granulated sugar, optional, to round out the savory flavors
- 1 tbsp (15 ml) fresh lime juice, or more to taste
- ¼ cup (10 g) chopped cilantro, for serving
- 2 tbsp (12 g) crispy fried shallots, for serving
Instructions
-
Prepare the chicken and spice paste. Pat the chicken dry with paper towels and set it aside. In a small food processor, blend the shallots, garlic, candlenuts, coriander, cumin, white pepper, ginger, galangal, and water until you have a thick, mostly smooth paste. Scrape down the sides as needed. A few tiny pieces are fine, but large chunks of nuts or shallot can make the sauce uneven. If using a mortar and pestle, pound the ingredients in batches until the paste is as fine as you can make it.
-
Soften the paste. Heat the oil in a heavy pot or Dutch oven over medium heat. Add the paste and cook for about 8 minutes, stirring often and scraping the bottom so it does not scorch. It should smell fragrant, lose its raw onion aroma, and darken slightly without becoming brown or dry. If it starts sticking before it smells cooked, lower the heat and add a teaspoon of water rather than turning up the flame.
-
Coat the chicken with the aromatics. Add the chicken pieces and turn them in the paste for about 4 minutes, so the surfaces are coated. The chicken does not need to brown; this dish is meant to stay pale. Add the bruised lemongrass, torn kaffir lime leaves, and bay leaf, stirring them through the paste. Bruising the lemongrass helps release its aroma, while leaving it in a large piece makes it easy to remove before serving.
-
Build the coconut sauce. Pour in the coconut milk and chicken broth, then add the salt and optional sugar. Stir gently to loosen any paste from the bottom of the pot. Bring the liquid just to a gentle simmer over medium heat, stirring occasionally; do not let it boil hard, since vigorous boiling can make coconut milk look separated or oily. This gentle heating should take about 5 minutes, depending on your pot and burner.
-
Simmer until the chicken is cooked through. Reduce the heat to low, cover the pot with the lid slightly ajar, and simmer for 30 minutes. Turn the chicken pieces once or twice so they cook evenly and remain nestled in the sauce. Check the thickest part of a piece with an instant-read thermometer without touching the bone. The USDA FSIS safe minimum for poultry is 165°F (74°C); if any piece has not reached that temperature, continue simmering and check again after a few minutes.
-
Finish the sauce. Remove the lid and simmer gently for about 8 minutes, turning the chicken once, until the sauce is creamy and coats a spoon. It will remain fairly fluid rather than becoming a thick gravy. If it seems too thick, stir in a splash of water; if it seems thin, let it simmer uncovered a little longer, keeping the heat low. Remove the lemongrass and bay leaf, then stir in the lime juice. Taste and adjust the salt or lime to balance the richness.
-
Serve warm. Spoon the chicken and plenty of sauce into a shallow serving bowl. Scatter cilantro and fried shallots over the top just before bringing it to the table. Let diners remove any kaffir lime leaves they encounter rather than eating them whole. If the curry has rested for a few minutes, stir the sauce gently before serving so any coconut fat is evenly distributed.
Tips
-
Keep the curry white. This version deliberately leaves out turmeric, which gives many other Indonesian curries their yellow color. White pepper, coriander, cumin, and the pale coconut sauce provide warmth without turning it golden. A little color on the chicken is fine, but avoid browning the spice paste; scorching it will make the finished sauce taste bitter.
-
Use the closest available aromatics. Candlenuts add body and a gentle, rounded flavor, and macadamias or cashews are practical substitutes. Galangal has a sharper, more resinous fragrance than ginger, so extra ginger will make a pleasant but different curry. If you cannot find daun salam, a small bay leaf is a useful stand-in; skip it rather than adding several European bay leaves.
-
Choose full-fat coconut milk and simmer softly. Light coconut milk makes a thinner sauce with less body. Shake the cans before opening, and keep the pot at a quiet simmer once the milk is added. If the sauce separates slightly, take the pot off the heat and stir gently; it can still taste good, but a hard boil makes the texture more likely to become greasy.
-
Season at the end as well as the beginning. Broth, coconut milk, and chicken vary in saltiness, and lime can sharpen or soften the overall impression. Start with the listed salt, then taste after the sauce has reduced. Add lime a little at a time so the coconut remains the main flavor rather than becoming distinctly sour.
Serving Suggestions
Serve opor ayam with steamed jasmine rice or Indonesian-style white rice, which absorbs the coconut sauce without competing with its aroma. For a more traditional-feeling spread, put out rice cakes such as lontong or compressed rice cakes such as ketupat if you can find them; either makes the meal more substantial and gives the sauce something firm to cling to. These accompaniments are optional, and ordinary rice works very well.
Add a fresh, crisp side to balance the rich sauce. Sliced cucumber, lightly dressed cabbage, blanched green beans, or a simple plate of raw vegetables all bring welcome contrast. Sambal can be served at the table for people who want heat, rather than stirred into the whole pot. Finish with fried shallots and cilantro, and offer lime wedges for anyone who prefers a brighter, tangier bowl.
Variations
Make it with boneless chicken: Use 2 lb (900 g) boneless, skinless thighs and begin checking them after about 18 minutes of simmering. They may cook sooner than bone-in pieces, so rely on the thermometer rather than the clock; poultry must reach 165°F (74°C). The sauce will have slightly less richness from the bones, but the dish is quicker to portion and eat.
Use a different protein: Bone-in chicken is classic for this style, but firm tofu or chunks of potato and carrot can make a meatless variation. Brown or bake the tofu separately if you want it to hold its shape, then add it during the final 10–15 minutes so it absorbs flavor without breaking up. For vegetables, simmer firm pieces until tender before adding delicate greens near the end. The result is an adaptation, not a like-for-like replacement for chicken.
Adjust the richness and heat: For a lighter sauce, replace up to half a can of coconut milk with additional broth, then taste and season again. The curry will be less creamy. For gentle heat, add one sliced red chile to the paste; for more heat, serve sliced chiles or sambal on the side. Keep turmeric out if you want to preserve the pale appearance associated with white curry.
Storage and Reheating
Cool leftovers promptly and refrigerate them in a shallow, airtight container within 2 hours of cooking. The curry keeps for 3–4 days in the refrigerator. Store rice separately when possible, since it reheats more evenly that way. The coconut sauce may look slightly firm or separated when cold; that is normal, and gentle reheating with a splash of water or broth usually brings it back together.
Reheat only the portion you plan to eat, either in a covered saucepan over low heat or in a microwave-safe dish. Stir occasionally and add a little water if the sauce has thickened. Reheat leftovers to 165°F (74°C), checking with a food thermometer, and avoid repeatedly cooling and warming the same batch. For longer storage, freeze the cooled curry in an airtight freezer-safe container for up to 2 months for best quality. Thaw overnight in the refrigerator, then reheat to 165°F (74°C); the sauce may separate slightly after freezing, so stir it as it warms.
Frequently Asked Questions
Is Indonesian white curry the same as opor ayam?
Opor ayam is a widely recognized Indonesian chicken dish cooked in a pale, spiced coconut sauce, and it is often described in English as Indonesian white curry. There is no single fixed household formula: some versions use different spice proportions, more or less coconut milk, or additional aromatics. This recipe follows the general style while keeping the sauce free of turmeric.
Why is my opor ayam not white?
A pale cream or ivory color is expected, but the curry may look darker if the spice paste browned, the chicken skin browned, or a dark broth was used. Turmeric and some curry powders also add yellow color, so leave them out for this version. Coconut milk naturally varies in color, and a light golden tint does not mean the dish has gone wrong.
Can I make the spice paste ahead?
Yes. Blend the paste, transfer it to a covered container, and refrigerate it for up to 2 days before cooking. You can also freeze it for about 2 months; thaw it in the refrigerator before frying. Do not leave a paste containing fresh aromatics at room temperature for an extended period. Fry it until fragrant and cooked before adding the chicken and liquids.
Can I use coconut cream instead of coconut milk?
You can, but coconut cream is much thicker and richer, so using two cans of it would make the sauce heavy and may cause it to feel oily. Use about 1 cup (240 ml) coconut cream plus 3 cups (720 ml) broth or water instead, then simmer gently and adjust salt to taste. The finished curry will still have coconut flavor, but it will be less creamy than the full-fat coconut milk version.
How do I know when the chicken is tender and safe?
Check the thickest part of each large piece with an instant-read thermometer, keeping the probe away from the bone. Chicken is safe when it reaches 165°F (74°C), the USDA FSIS minimum; if it has reached that temperature but still feels firm, simmer it gently a little longer for tenderness. Avoid judging doneness by the color of the sauce or by cutting only the smallest piece.
What can I use if I cannot find galangal or kaffir lime leaves?
For galangal, use the same amount of fresh ginger, accepting a warmer, less citrusy flavor. If kaffir lime leaves are unavailable, add a strip of lime zest while the curry simmers and remove it before serving; use only the colored peel, not the bitter white pith. Neither substitute is identical, but both preserve some of the fresh aromatic quality that makes the sauce distinctive.
Related
- Yemeni Beef Stew with Hawaij and Tomatoes
- Korean Witch Stew Recipe: A Spicy Gochujang Cauldron
- Taiwanese Beef Noodle Soup: A Deep, Savory Bowl Recipe
More recipes to cook
Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes
Spotted an error? Tell us and we will correct it (corrections policy).