
A Golden Broth That Eats Like a Whole Meal
Soto ayam is the chicken soup Indonesia reaches for at breakfast stalls, family tables, and late-night carts alike. The broth is clear but deeply golden from turmeric, layered with lemongrass, galangal, and kaffir lime leaf, and the bowl is built to order: a tangle of rice vermicelli, shredded poached chicken, bean sprouts just warmed through, a halved hard-boiled egg, and a shower of fried shallots and celery leaves. You finish it yourself with lime juice and sambal, so every bowl lands exactly where you want it — bright, savory, a little sour, as hot as you like.
It sits in a different place from its neighbors. Pho Ga: Vietnamese Chicken Noodle Soup is star anise and charred ginger over flat rice noodles in a clear, delicate broth. Laksa: Coconut Curry Noodle Soup is rich and coconut-creamy, built on curry paste. Soto ayam is turmeric-forward and aromatic in a leaner way, with a pounded spice paste fried into the broth and a set of crisp, fresh toppings that pho and laksa do not share. If you already love Beef Rendang, you know this corner of the pantry — the same shallots, galangal, and lime leaves, turned toward soup instead of a slow braise.
The part that surprises first-time cooks is how much of the flavor comes from two short steps: frying the raw spice paste until it darkens and smells nutty, and poaching the chicken right in that spiced broth so the meat seasons the soup while the soup seasons the meat. Neither takes special equipment. A heavy pot and a mortar or small food processor will get you there.
How a Bowl Is Built
Every stall arranges the bowl a little differently, but the layers below are the ones that keep the textures distinct: soft noodles, tender chicken, just-wilted sprouts, and crisp shallots that stay crisp until the last spoonful.
| Layer | What it is | Why it is there |
|---|---|---|
| Broth | Clear turmeric broth with fried spice paste, lemongrass, galangal, and lime leaf | Golden color, warm spice, and a clean savory base that does not coat the tongue |
| Noodles | Rice vermicelli (sohun), soaked or briefly blanched | Soft, slippery body without the chew of wheat noodles; soaks up broth fast |
| Chicken | Poached in the broth, then shredded by hand | Tender shreds that carry broth in every bite; poaching liquid becomes the soup |
| Fresh crunch | Bean sprouts and finely shredded cabbage, warmed 20 to 30 seconds in hot broth | Sweet crunch against the soft noodles; raw sprouts taste grassy, overcooked ones go limp |
| Egg | Hard-boiled, halved or quartered | Rich yolk rounds out the turmeric and adds staying power |
| Finish | Fried shallots, celery leaves or scallions, lime wedge, sambal on the side | Crisp, herbal, sour, and hot — added at the table so each bowl is personal |
A small mound of steamed rice on the side is common, and some regions serve soto ayam over lontong (compressed rice cakes) instead of vermicelli. Vermicelli is the easiest version at home and the one this recipe uses.
Ingredients
For the spice paste (bumbu):
- 6 shallots (about 5 oz / 140 g total), peeled and roughly chopped
- 5 garlic cloves, peeled
- 1 1/2-inch piece fresh ginger (about 1 oz / 30 g), peeled and sliced
- 1-inch piece fresh galangal (about 3/4 oz / 20 g), peeled and sliced, or extra ginger if galangal is hard to find
- 2-inch piece fresh turmeric (about 3/4 oz / 20 g), peeled and sliced, or 1 1/2 teaspoons ground turmeric
- 4 candlenuts or unsalted macadamia nuts
- 1 teaspoon ground coriander
- 1/2 teaspoon ground white pepper, plus more to taste
- 1 teaspoon fine salt, plus more to taste
For the broth and chicken:
- 2 lb (900 g) bone-in, skin-on chicken thighs (about 5 to 6 thighs), or a mix of thighs and drumsticks
- 8 cups (1.9 L) water, plus more as needed
- 3 tablespoons neutral oil
- 2 stalks lemongrass, trimmed, bruised with the back of a knife, and tied in a knot or cut into 3-inch pieces
- 4 kaffir lime leaves, torn to release their oils (or 1 teaspoon lime zest added at the end)
- 2 Indonesian bay leaves (daun salam) or regular bay leaves
- 1 tablespoon fish sauce, plus more to taste
- 1 teaspoon sugar
For the bowls:
- 5 oz (140 g) dried rice vermicelli (sohun / bean thread or thin rice sticks)
- 2 cups (about 5 oz / 140 g) fresh bean sprouts, rinsed
- 1 1/2 cups finely shredded green cabbage (about 4 oz / 115 g)
- 4 hard-boiled eggs, peeled and halved
- 1 medium tomato, cut into small wedges (optional)
- 1/2 cup fried shallots, homemade or store-bought, plus more for the table
- 1/4 cup finely sliced celery leaves or scallion greens (or a mix)
- 1 lime, cut into wedges
- Sambal oelek or sliced fresh chilies in a little fish sauce, for serving
- Steamed jasmine rice, for serving (optional; see the note below)
Prep: 25 minutes. Cook: 45 minutes. Total: 70 minutes. Serves 6 as a main-course soup (about 1 1/2 cups broth plus toppings per bowl), or 4 very generous bowls.

How to Make It, Step by Step
1. Pound or blend the spice paste. Put the shallots, garlic, ginger, galangal, fresh turmeric (if using fresh), candlenuts, coriander, white pepper, and 1 teaspoon salt in a mortar or small food processor. Pound or process to a coarse paste, stopping to scrape down as needed. If you are using ground turmeric instead of fresh, hold it back and stir it into the paste at the end so it does not stain the processor bowl. A little texture is fine — the paste will mellow as it fries. Set aside.
2. Start the chicken in cold water. Put the chicken in a large pot and add the 8 cups of water. Bring to a boil over medium-high heat, skimming off the foam that rises in the first few minutes. Once the surface is mostly clear, lower the heat to a gentle simmer.
3. Fry the paste until it turns nutty. While the chicken comes up to a simmer, heat the oil in a skillet over medium heat. Add the spice paste and fry, stirring often, for 5 to 7 minutes. It will go from raw and sharp to fragrant, a shade darker, and slightly oily at the edges. That cooked-out flavor is the backbone of the soup; under-fried paste tastes raw no matter how long the broth simmers afterward. If the paste sticks, lower the heat and add a spoonful of the hot chicken liquid.
4. Season the broth. Scrape the fried paste and all its oil into the simmering chicken pot. Add the lemongrass, lime leaves, and bay leaves. Simmer gently, partially covered, for 25 to 30 minutes, until the chicken is cooked through and tender enough to shred. Keep the broth at a lazy simmer, not a rolling boil, so it stays clear and golden instead of cloudy.
5. Shred the chicken and finish the broth. Lift the chicken out to a plate and let it cool just enough to handle. Strain the broth if you like a very clean bowl (a fine-mesh strainer catches the spent aromatics), then return it to the pot. Stir in the fish sauce and sugar, taste, and adjust: you want savory first, then warm turmeric and lime leaf, with the sugar only softening the edges. Add more salt or fish sauce a little at a time. Shred the chicken into bite-size pieces by hand, discarding skin and bones. Return about half the shreds to the broth to warm through and keep the rest for topping, or return it all to the pot if you prefer a simpler service.
6. Prep the noodles and vegetables. Soak the rice vermicelli in warm water for 15 to 20 minutes until pliable, then drain. (If your package calls for blanching instead, follow it — thin rice sticks need only 2 to 3 minutes in boiling water; bean thread soaks soft.) Bring a small pot of water to a boil and blanch the bean sprouts and cabbage together for 20 to 30 seconds, just until the sprouts lose their raw snap. Drain well. They will warm again in the hot broth, so pull them while they still have crunch.
7. Build the bowls. Divide the drained vermicelli among warm bowls. Add a handful of the blanched sprouts and cabbage, a portion of shredded chicken, and a halved egg to each. Ladle the hot broth over the top — about 1 1/2 cups per bowl — so the noodles and vegetables heat through. The broth should be steaming hot at this point; if it has sat, bring it back to a bare simmer first.
8. Finish at the table. Scatter fried shallots and celery leaves or scallions over each bowl. Set out lime wedges, extra fried shallots, and sambal so everyone can tune their own bowl. Serve right away, with steamed rice on the side if you like. The rice from How to Cook Perfect Jasmine Rice Every Time is the natural partner — a spoonful of broth over rice between bites of soup is how a lot of people actually eat it.

Getting the Broth Golden, Not Muddy
Fresh turmeric colors best. A 2-inch piece gives the broth its clear golden hue and a mild, earthy warmth. Ground turmeric works at 1 1/2 teaspoons, but add it with the fried paste rather than the raw blend, and expect a slightly deeper, less bright color.
Fry the paste in enough oil. Three tablespoons sounds generous for soup, but the oil carries the fat-soluble spice flavor into the broth and gives the finished soup its sheen. Skim any excess from the surface at the end if you prefer a leaner bowl; do not cut it at the frying stage.
Simmer, do not boil. A hard boil emulsifies fat and paste into the broth and turns it cloudy. A gentle simmer with the lid ajar keeps it clear and lets you skim cleanly.
Galangal is worth finding if you can. It is firmer and more citrusy than ginger. Frozen galangal from an Asian grocery works well here. If you substitute all ginger, the soup is still very good — just a little softer and less piney.
Variations
- Soto Lamongan style (with koya): Pound 4 to 5 shrimp crackers (krupuk udang) with 1 tablespoon fried garlic into a fine powder and spoon a teaspoon of this koya over each bowl. It thickens the broth slightly as it melts and adds a shrimpy, garlicky depth that is Lamongan's signature.
- Clear and light (soto bening): Skip the cabbage and tomato, halve the fried shallots, and serve with vermicelli, chicken, sprouts, and egg only. This is the weekday version — same broth, fewer moving parts.
- With coconut (soto ayam bersantan): Stir 1/2 cup coconut milk into the finished broth and warm it through without boiling. The soup turns richer and more golden-white. If coconut richness is your thing, Coconut Milk vs Coconut Cream: How to Choose helps you pick the right can.
- Different noodles: Swap the vermicelli for 8 oz of thin egg noodles, cooked separately and drained, for a chewier bowl. Keep the blanching and topping order the same.
Serving and Leftovers
Serve soto ayam as soon as the bowls are built. The vermicelli keeps drinking broth as it sits, so a bowl left standing for 20 minutes will be noticeably drier than one eaten right away. Put extra hot broth in a small pitcher on the table for anyone who wants to top up.
Leftovers keep best stored in parts: broth and shredded chicken together in one container, noodles and blanched vegetables in another, eggs and fried shallots separate. The broth keeps in the refrigerator for up to 3 days and freezes well for up to 2 months. Reheat the broth to steaming, warm the noodles and vegetables in it briefly, then build fresh bowls with the cold toppings added at the end. Do not freeze the assembled bowls — the sprouts go limp and the vermicelli turns mushy on thawing.
Recipe Card Summary
Soto Ayam: Indonesia's golden turmeric chicken soup. Bone-in chicken poached in a clear broth built on a fried shallot-garlic-turmeric paste with lemongrass, galangal, and kaffir lime leaf, served over rice vermicelli with shredded chicken, just-blanched bean sprouts and cabbage, hard-boiled egg, fried shallots, and lime. Tune each bowl at the table with sambal and extra shallots. Prep 25 minutes, cook 45 minutes, total 70 minutes. Serves 6.

Soto Ayam: Indonesian Chicken Soup
Ingredients
Method
- Pound or blend the spice paste: put the shallots, garlic, ginger, galangal, fresh turmeric (if using fresh), candlenuts, coriander, white pepper, and 1 teaspoon salt in a mortar or small food processor and pound or process to a coarse paste. If using ground turmeric, stir it in at the end. Set aside.
- Start the chicken in cold water: put the chicken in a large pot, add the 8 cups of water, bring to a boil over medium-high heat, skimming the foam, then lower to a gentle simmer.
- Fry the paste until it turns nutty: heat the oil in a skillet over medium heat, add the spice paste, and fry, stirring often, for 5 to 7 minutes until fragrant, a shade darker, and slightly oily at the edges. Add a spoonful of hot chicken liquid if it sticks.
- Season the broth: scrape the fried paste and all its oil into the simmering chicken pot. Add the lemongrass, lime leaves, and bay leaves. Simmer gently, partially covered, for 25 to 30 minutes until the chicken is cooked through and tender. Keep the broth at a lazy simmer, not a rolling boil.
- Shred the chicken and finish the broth: lift the chicken out to cool briefly. Strain the broth if you like, then return it to the pot. Stir in the fish sauce and sugar, taste, and adjust with more salt or fish sauce a little at a time. Shred the chicken by hand, discarding skin and bones, and return it to the broth to warm through.
- Prep the noodles and vegetables: soak the rice vermicelli in warm water for 15 to 20 minutes until pliable, then drain (or blanch 2 to 3 minutes if your package calls for it). Blanch the bean sprouts and cabbage together for 20 to 30 seconds until the sprouts just lose their raw snap, then drain well.
- Build the bowls: divide the vermicelli among warm bowls, add the blanched sprouts and cabbage, shredded chicken, and a halved egg to each. Ladle about 1 1/2 cups of steaming hot broth over the top so the noodles and vegetables heat through.
- Finish at the table: scatter fried shallots and celery leaves or scallions over each bowl. Set out lime wedges, extra fried shallots, and sambal so everyone can tune their own bowl. Serve right away, with steamed rice on the side if you like.