Opor Ayam (Indonesian Chicken Curry) Recipe
Introduction
Opor Ayam is a comforting Indonesian chicken curry known for its rich coconut milk sauce and fragrant spices. This dish brings a wonderful blend of aromatic herbs and tender chicken, perfect for a flavorful family meal.

Ingredients
- 1/4 cup coriander seeds
- 3 tablespoons coconut oil
- 10 small shallots, sliced
- Kosher salt, to taste
- 15 garlic cloves
- 5 candlenuts (or 5 to 10 macadamia nuts)
- 2 to 3 1-inch pieces kaempferia galanga root, peeled (optional)
- 1/2 tablespoon white peppercorns
- 1 3-inch piece ginger, peeled and lightly smashed
- 1 3-inch piece galangal, peeled and lightly smashed
- 5 lemongrass stalks, trimmed, smashed and tied into knots
- 10 to 15 fresh or dried salam leaves (Indonesian bay leaves)
- 20 fresh makrut lime leaves
- 1 tomato, chopped (or 1 cup cherry tomatoes)
- 1 8.5-ounce can coconut milk
- 3/4 cup chicken stock
- 3 pounds bone-in chicken pieces
Instructions
- Step 1: In a dry skillet over medium-high heat, toast the coriander seeds for 2 to 3 minutes until fragrant. Let them cool, then grind into a powder using a spice grinder.
- Step 2: Heat 2 tablespoons of coconut oil in a large sauté pan over medium heat. Add the sliced shallots and a generous pinch of salt, cooking and stirring often until browned, about 10 minutes. Transfer the shallots to a food processor and set aside.
- Step 3: In the same pan, add the garlic cloves and candlenuts. Cook while stirring constantly to avoid burning until they turn a deep golden brown, about 2 to 3 minutes. Add these to the food processor with the shallots. Add the kaempferia galanga root, white peppercorns, and 2 tablespoons of water, then purée until smooth to form a paste.
- Step 4: Heat the remaining 1 tablespoon of coconut oil in the pan over medium heat. Add the ginger, galangal, lemongrass, salam leaves, and makrut lime leaves, crushing the lime leaves slightly before adding. Cook, stirring occasionally, for 5 to 7 minutes until the raw aromas soften.
- Step 5: Stir in the ground coriander seeds, shallot paste, and chopped tomato. Lower the heat and gradually add the coconut milk, stirring gently to prevent the sauce from breaking. Once combined and simmering gently, add the chicken stock.
- Step 6: Nestle the chicken pieces into the sauce and spoon some of the sauce over them. Cover the pan and cook on low heat for about 40 minutes, or until the chicken is fully cooked and the curry is aromatic. Adjust the heat to maintain a gentle simmer—do not boil.
- Step 7: Season with salt to taste. Before serving, remove the ginger, galangal, lemongrass, salam, and makrut leaves. Serve hot with steamed rice.
Tips & Variations
- If you can’t find salam leaves, substitute with a small bay leaf but reduce the quantity as the flavor is stronger.
- Candlenuts can be replaced with macadamia nuts for a similar creamy texture.
- For extra richness, use full-fat coconut milk and simmer gently to avoid breaking the sauce.
- To add heat, include fresh chilies or a dash of chili powder in the paste.
Storage
Store leftover Opor Ayam in an airtight container in the refrigerator for up to 3 days. Reheat gently on the stovetop over low heat, stirring occasionally to maintain the sauce’s texture. This dish also freezes well for up to 2 months; thaw overnight in the fridge before reheating.
How to Serve
Serve this delicious recipe with your favorite sides.
FAQs
Can I use boneless chicken instead of bone-in pieces?
Yes, you can use boneless chicken, but bone-in pieces add more flavor and help keep the meat moist during cooking.
What if I can’t find kaempferia galanga root?
Kaempferia galanga adds a unique flavor but can be omitted if unavailable. You can increase the amount of ginger and galangal slightly as a substitute.
PrintOpor Ayam (Indonesian Chicken Curry) Recipe
Opor Ayam is a rich and aromatic Indonesian chicken curry that features tender bone-in chicken pieces simmered in a fragrant coconut milk sauce infused with spices, lemongrass, galangal, and makrut lime leaves. This traditional dish combines toasted coriander, shallots, garlic, and other spices to create a deeply flavorful and comforting meal best served with steamed rice.
- Prep Time: 20 minutes
- Cook Time: 50 minutes
- Total Time: 1 hour 10 minutes
- Yield: 6 servings 1x
- Category: Main Dish
- Method: Stovetop
- Cuisine: Indonesian
Ingredients
Spices and Herbs
- 1/4 cup coriander seeds
- Kosher salt, to taste
- 1/2 tablespoon white peppercorns
- 5 lemongrass stalks, trimmed, smashed and tied into knots
- 10 to 15 fresh or dried salam leaves (Indonesian bay leaves)
- 20 fresh makrut lime leaves
- 1 3-inch piece ginger, peeled and lightly smashed
- 1 3-inch piece galangal, peeled and lightly smashed
- 2 to 3 1-inch pieces kaempferia galanga root, peeled (optional)
Vegetables and Aromatics
- 10 small shallots, sliced
- 15 garlic cloves
- 1 tomato, chopped (or 1 cup cherry tomatoes)
Oils and Liquids
- 3 tablespoons coconut oil
- 1 8.5-ounce can coconut milk
- 3/4 cup chicken stock
Protein
- 3 pounds bone-in chicken pieces
Other
- 5 candlenuts (or 5 to 10 macadamia nuts)
Instructions
- Toast and Grind Spices: In a dry skillet over medium-high heat, toast the coriander seeds for 2 to 3 minutes until fragrant. Allow to cool, then grind them in a spice grinder to a fine powder.
- Cook Shallots and Prepare Paste: In a large sauté pan, heat 2 tablespoons of coconut oil over medium heat. Add the sliced shallots and a generous pinch of kosher salt. Cook, stirring often, until the shallots are browned, about 10 minutes. Remove the shallots to a food processor and set aside. Using the same pan, add the garlic cloves and candlenuts, cooking while stirring constantly to prevent burning until they turn deep golden brown, about 2 to 3 minutes. Transfer garlic and candlenuts to the food processor with the shallots along with the peeled kaempferia galanga root, white peppercorns, and 2 tablespoons of water. Purée this mixture into a smooth paste.
- Sauté Aromatics: Heat the remaining 1 tablespoon of coconut oil in the sauté pan over medium heat. Add peeled and smashed ginger, galangal, lemongrass stalks, salam leaves, and makrut lime leaves (scrunch the lime leaves in your hands before adding to release aroma). Cook these ingredients, stirring occasionally, until their raw fragrance diminishes and they begin to soften, about 5 to 7 minutes.
- Combine and Simmer: Stir in the ground toasted coriander seeds, the shallot-garlic paste, and chopped tomato into the pan. Reduce the heat to low and slowly add the coconut milk little by little while stirring continuously to prevent the sauce from breaking. When the coconut milk is fully incorporated and the mixture gently simmers, pour in the chicken stock. Add the bone-in chicken pieces, nestling them carefully into the sauce. Spoon some sauce over the chicken, cover the pan, and cook on low heat for about 40 minutes, or until the chicken is cooked through and the dish is aromatic. Maintain a gentle simmer and avoid boiling. Adjust seasoning with salt to taste at the end.
- Finishing Touches and Serving: Before serving, remove the galangal, ginger, lemongrass, salam leaves, and makrut lime leaves from the curry. Serve the opor ayam hot alongside steamed rice to enjoy the rich and comforting flavors fully.
Notes
- Kaempferia galanga root is optional but adds a unique earthy flavor typical of Southeast Asian cuisine.
- If candlenuts are unavailable, macadamia nuts can be used as a substitute.
- Do not boil the curry after adding coconut milk as it can cause the sauce to separate.
- Adjust salt according to taste, as chicken stock and coconut milk can vary in saltiness.
- Serving with steamed jasmine or basmati rice complements the rich curry beautifully.
Keywords: Opor Ayam, Indonesian Chicken Curry, Coconut Milk Chicken, Traditional Indonesian Recipe, Spiced Chicken Curry

