The moment the fried yellow paste slides off the spoon into the pot, the pale broth turns gold. Steam rises with lemongrass and kaffir lime leaf on it, and under that is the sweet depth of shallots and candlenuts. Soto Madura is the beef soup of East Java: big chunks of beef and offal in a clear, turmeric-yellow broth, eaten with rice, a squeeze of lime and a spoonful of koya. It tastes light and savory at first, then citrusy, then toasty as the koya melts into the surface.
Soto Madura: A Name That Travels, a Broth That Stays Clear
What sets this soto apart
Soto is a whole family of spiced soups across Indonesia, and each one has its own base. Soto Madura is the beef one: beef or offal in a clear yellow broth sharpened with turmeric, served with slices of egg and lime. The meat is cut in large pieces, and the bowl carries more offal than most sotos. It is light enough that people eat it for breakfast.
In East Java it sits beside soto Lamongan, a chicken soto also finished with koya, and the two are separate dishes. Soto ayam is built on chicken. Soto Betawi is beef too, but coconut milk or milk turns it white. Soto Madura is kuah bening, a clear broth with no coconut milk, so there is nothing to split or curdle as it simmers. Some bowls get loaded with boiled egg, fried potato, bean sprouts, rice vermicelli and cabbage; the pot here keeps to beef, three kinds of offal, aromatics and koya. For more of the country's cooking, see Indonesia.
Where the name comes from
The name points at the island of Madura, but the story points to Surabaya. One account holds that Warung Soto Sulung in Surabaya was already serving soto Madura in the 1970s and 1980s, and that it only began to be sold on Madura itself around 1988. By that telling, "soto Madura" was what people called the soto sold by cooks from Madura, and the name followed the cooks rather than the place.
Where soto itself began is not settled either. It is often traced to 19th-century Semarang and a Chinese-Indonesian dish called caudo or jao to; another explanation links the word to shao du. The early sellers carried their pots on a shoulder pole, the pikulan, and the middle class looked down on it as unhygienic street food. The Chinese marks are still easy to see in the bowl: noodles or rice vermicelli, boiled egg, bean sprouts, offal, fried garlic and the Chinese-style soup plate.
"Soto Madura" on a stall in Surabaya may be read as "soto the way Madurese cooks sell it," which would explain how the dish came to be found far from the island.
On the island itself
Madura has no single version. In Pamekasan it is made with chicken. In Sumenep it comes with beef small intestine and boiled cassava. In Bangkalan it is served with petis paste and young banana. Across East Java the bowl tends to arrive with koya, petis, peanut sambal and lime, a brighter finish than sotos elsewhere. The pot below is one of these forms: beef with tripe, intestine and lung, finished with koya.
Ingredients

The seven paste ingredients split into three jobs. Turmeric gives the color. Shallots, garlic and candlenuts give the sweet depth. Coriander, ginger and pepper give the spice. The kaffir lime leaves, galangal and lemongrass stay whole and go into the frying oil with the paste.
If you replace any of the offal with beef, replace it at the same weight. Less meat in the same water and seasoning makes the broth saltier.
The koya contains shrimp crackers (crustacean). Candlenuts are tree nuts, as are macadamias if you use them instead. Petis, if you serve it, is a shellfish product: buy it ready-made and never ferment it at home.
Equipment
- A deep pot of about 5 quarts (5 L), around 9½ inches (24 cm) across
- A second pot for blanching the offal
- A fine sieve lined with damp muslin or cheesecloth, set over a large heatproof bowl
- A skimmer or slotted spoon
- A wok or wide skillet for frying the paste
- A spice mill, small blender, or large mortar and pestle
- A small pan for frying the koya
- An instant-read thermometer
- Deep soup bowls
Choosing and Substituting
Beef, scallions, celery, limes, garlic, ginger, salt, sugar and oil come from any supermarket. The rest is an Asian grocer or an online order: galangal, lemongrass, kaffir lime leaves, fresh turmeric, whole coriander seed, candlenuts, shrimp crackers and honeycomb tripe. Small intestine and lung are the hardest to find abroad, and they are the only things worth letting go of.
| Keep this | Why it matters |
|---|---|
| Turmeric yellow | It is a color and an earthy note, never a curry flavor |
| A clear broth with no coconut milk | The clear broth is what makes this soto Madura |
| Shallot, garlic and candlenut depth with lemongrass and lime leaf citrus | Together they give the sweet-then-bright sip |
| Lime and koya at the very end | They change the bowl at the table |
- Small intestine and lung → beef belly or beef shank at the same weight. Shank adds gelatin and a fuller body; belly adds fat. The offal aroma, the silkiness and the spongy bite go with them.
- Honeycomb tripe → ask a butcher or Asian grocer for beef honeycomb tripe. It always needs cleaning and blanching first.
- Candlenuts → macadamia nuts. The paste tastes lighter. Toast them the same way.
- Kaffir lime leaves → frozen leaves work well. Lime zest is the last resort, and its aroma fades in the heat.
- Lemongrass → frozen or dried. Dried is weaker. Lemon zest stands in when there is none.
- Galangal → ginger. The heat turns warmer and sweeter instead of sharp.
- Small shallots → red onion. It holds more water, so it takes longer to fry down.
- Shrimp crackers → plain kerupuk udang from an Asian grocer, or the most lightly seasoned shrimp crackers you can find.
- Limes → bottled lime juice for squeezing in.
Method
Clean the offal first. The long, hands-off stretch is the gentle simmer in step 4; grind the paste and make the koya while the meat cooks, so everything is ready when the meat is tender. The two moves that decide the bowl are straining the first broth and never letting the pot boil hard afterward.
The cloth in step 3 is what keeps the broth clear. From step 4 on, hold the pot below a rolling boil; a hard boil churns fat and protein back into the soup.
Stirred into the pot or sprinkled too early, koya sinks and its aroma never rises. Pass it at the table so each person adds it to their own bowl.
Cook beef and offal until the center reaches 167°F (75°C) for at least 1 minute; offal in particular must be thoroughly cooked. Fry the crackers and garlic in a small pan with a dry spoon and keep water away from the hot oil.
When It Goes Wrong
| What you see | Why | What to do |
|---|---|---|
| Cloudy broth | The first broth was not strained, the pot boiled hard, or the scum stayed in | Lower the heat to a bare simmer and skim; next time strain through cloth and keep the boil gentle |
| Tough beef | Not enough time over low heat | Keep simmering gently until a skewer slides in with no resistance |
| Tripe still firm when the beef is tender | Tripe takes longer | Lift the tripe into a separate pot with some broth and keep it simmering until tender, then return it |
| Offal smells strong | Skipped blanching, or the blanching water stayed in | Always blanch the offal separately and pour that water away before it goes into the main pot |
| Broth too strong | Too much liquid has cooked off | Add hot water a little at a time |
| Bitter edge | The paste scorched in the wok | Fry it over medium heat and keep stirring; scorched paste has to be made again |
Serving, Variations and Storage
At the table
Soto Madura goes on the table with a plate of plain white rice for each person, a lime cut in halves, a dish of fried shallots and the bowl of koya. Slices of boiled egg are a common addition. For heat, serve a sambal on the side: boil 10 red bird's-eye chilies, 2 long red chilies and 2 toasted candlenuts, then grind them with ¼ tsp salt. Everyone squeezes in lime, spoons in koya and sambal to their own taste, and alternates soup with rice.

Variations
- Extra koya. Make a double batch and keep adding it as you eat. The second half of the bowl turns noticeably toastier and thicker.
- Sambal kept apart. Serve the sambal only in its own dish. Children get a mild bowl with koya and lime, and the adults add the heat.
- Breakfast bowl. Put rice in the bottom of the bowl and pour the soup over it, then add slices of boiled egg. It eats as one light, filling dish.
Storing leftovers
Divide leftover soup into shallow containers so it cools quickly, then refrigerate it, with the fridge at 50°F (10°C) or below. To reheat, bring it back over the heat until it reaches 167°F (75°C) or above.
Frequently Asked Questions
Can I skip the koya?
You can, and the soup is still good with lime and fried shallots. The koya is what gives the bowl its toasty, thickened finish, though. Even a quick koya of fried shrimp crackers and garlic is worth making.
I only have ground turmeric. How much do I use?
Start with a little and add more while watching the color of the broth. Stop at a clear, bright yellow. Too much powder turns the color harsh and leaves a medicinal smell.
Isn't 6 teaspoons of salt a lot?
It is a strong seasoning because the broth is meant to be eaten with rice, not drunk on its own like a consommé. For a lighter pot, you can make an editorial change of our own: start with 4 to 5 tsp salt, taste with a spoonful of rice, and add more lime at the table. The balance shifts toward sour and fresh.
Can I use candlenuts raw?
No. Always toast them in a dry pan before grinding them into the paste. The same goes for macadamias if you use them instead.















