Skip to content
Zaffaron

Polo Cheshm Bolboli ba Koofteh Rizeh (پلو چشم بلبلی با کوفته ریزه) — Persian Black-Eyed Pea Rice with Mini Meatballs

Fragrant saffron rice layered with tender black-eyed peas and caramelized onions, served with juicy spiced mini meatballs. A comforting Persian home-style dish with crisp tahdig and balanced, savory aromas.

By Zaffaron Kitchen· Published March 14, 2026 Verified Recipe
Gluten-Free Dairy-Free Nut-Free Halal
145 min total Prep 75m · Cook 70m 4 servings 780 cal ~$4.2/serving
↓ Jump to Recipe
Polo Cheshm Bolboli ba Koofteh Rizeh — Persian Black-Eyed Pea Rice with Mini Meatballs - authentic persian recipe

Printable Recipe Card

Servings: 4 · Total: 145 min · Difficulty: medium

Ingredients (quick list)

  • 360 g Persian basmati rice (about 2 cups; rinse until water runs mostly clear)
  • 2400 ml Water (for parboiling rice and peas; plus more as needed)
  • 22 g Fine sea salt (about 4 tsp, divided (includes rice boiling water and seasoning))
  • 180 g Black-eyed peas (dried) (about 1 cup; picked over and rinsed)
  • 60 ml Olive oil (4 tbsp, divided)
  • 300 g Yellow onions (2 medium; thinly sliced)
  • 3 g Ground turmeric (1 1/2 tsp, divided)
  • 0.25 g Saffron threads (about 1/2 tsp threads)
  • 45 ml Hot water (3 tbsp, for blooming saffron)
  • 400 g Ground beef or lamb (minced) (15–20% fat preferred for juicier meatballs)
  • 100 g Yellow onion (1 small; grated finely, then squeezed to remove excess juice)
  • 6 g Garlic (2 cloves; minced)

+ 1 more in the full ingredients section below.

Steps (summary)

  1. Rinse the rice in several changes of cool water until it turns mostly clear. Cover with 900 ml water and dissolve 10 g salt int…
  2. Bloom the saffron: grind the saffron threads to a powder, then stir in 45 ml hot water. Cover and set aside 15 minutes; the liq…
  3. Cook the black-eyed peas: bring 700 ml soaking water and peas to a gentle boil, then reduce to a steady simmer. Cook 20–30 minu…
  4. Prepare the onion mixture: heat 45 ml olive oil in a skillet over medium heat. Add the sliced onions and cook 12–15 minutes, st…
  5. Parboil the rice: bring 1700 ml water to a rolling boil in a large nonstick pot. Add 12 g salt, then drain the soaked rice and…
  6. Make the mini meatballs: in a bowl, combine minced meat, grated-and-squeezed onion, minced garlic, 3/4 tsp turmeric, 1 tsp salt…

+ 6 more steps in the full instructions section below.

Cultural Background

Black-eyed pea rice is a familiar home-style preparation in Iranian cooking, valued for its balance of legumes and fragrant rice. It is commonly served as a comforting family meal, and the small meatballs add a festive touch while keeping the dish practical for sharing at the table.

savoryearthybuttery-lean richnesslightly floralfluffy ricetender peasjuicy meatballscrisp tahdigsaffrontoasted turmericsweet sautéed oniongarlic🌶 mild

Equipment

Large nonstick pot with tight-fitting lidClean kitchen towel for the lidFine-mesh colanderLarge skilletMixing bowlMicroplane or box graterMeasuring cups and spoonsInstant-read thermometer (optional)

💡 Tips

  • For separate grains, do not fully cook the rice during parboil; stop when the center is slightly firm.
  • Squeeze grated onion for meatballs; excess liquid makes them fragile and prone to breaking.
  • If you want extra-crisp tahdig, extend the low-heat steaming by 10 minutes and keep the lid towel dry.
  • Blooming saffron in hot (not boiling) water preserves aroma and color; cover it so the volatile oils do not dissipate.
  • If black-eyed peas are very old, add 10–15 minutes to simmering time; avoid adding salt to the pea pot to prevent tough skins.

⚠️ Common Mistakes

  • ❌ Overboiling the rice during parboil

    💡 Why: Fully cooked rice will break during steaming and turn sticky, blurring the layers and softening tahdig.

    ✅ Fix: Boil only until grains are elongated with a slightly firm center (6–8 minutes), then drain promptly and rinse briefly.

  • ❌ Overcooking black-eyed peas until they split

    💡 Why: Split peas mash into the rice, making it heavy and muddy rather than distinct and fluffy.

    ✅ Fix: Simmer just until tender (typically 20–30 minutes), drain well, and avoid aggressive stirring when layering.

  • ❌ Meatballs falling apart in the pan

    💡 Why: Too much onion juice or insufficient kneading prevents the proteins from binding, and high heat can tear delicate balls.

    ✅ Fix: Squeeze grated onion dry, knead 2–3 minutes until tacky, and sear over medium-high heat without overcrowding.

  • ❌ Soggy rice from trapped condensation

    💡 Why: Steam condenses on the lid and drips back, wetting the top layer and softening the crust.

    ✅ Fix: Wrap the lid with a clean towel and keep the pot tightly covered; poke steam vents through the rice mound.

🧊 How to Store

Cool leftovers within 2 hours. Refrigerate rice and meatballs in separate airtight containers for up to 3 days. Reheat rice covered with 1–2 tbsp water in a pot on low 10–15 minutes or microwave covered; reheat meatballs gently with a splash of water to prevent drying. Freeze up to 2 months; thaw overnight in the refrigerator.

📅 Make Ahead

Soak peas and rice up to 30 minutes ahead as written. Onion-pea mixture can be cooked 1 day ahead and refrigerated. Meatballs can be rolled up to 24 hours ahead; sear just before serving for best texture. Leftover polo reheats best steamed with a splash of water.

🍽️ Pairs Well With

  • Plain yogurt or yogurt with cucumber and herbs
  • Shirazi-style tomato-cucumber salad
  • Pickled vegetables
  • Fresh herbs and radishes

Regional Variations

  • Tehran-style home cookingOften includes a stronger saffron finish and a more pronounced tahdig, with onions cooked to a deeper golden color for sweetness.
  • Southern IranMay be seasoned more boldly with additional black pepper and turmeric, and served with sharper pickles or herb-heavy sides to contrast the richness.
family dinner weekend meal meal prep Nowruz-style table (as a rice option)
#persian#comfort-food#gluten-free#one-pot-rice#saffron#weekend-cooking

Ingredients

  • 360 gPersian basmati rice (about 2 cups; rinse until water runs mostly clear)
  • 2400 mlWater (for parboiling rice and peas; plus more as needed)
  • 22 gFine sea salt (about 4 tsp, divided (includes rice boiling water and seasoning))
  • 180 gBlack-eyed peas (dried) (about 1 cup; picked over and rinsed)
  • 60 mlOlive oil (4 tbsp, divided)
  • 300 gYellow onions (2 medium; thinly sliced)
  • 3 gGround turmeric (1 1/2 tsp, divided)
  • 0.25 gSaffron threads (about 1/2 tsp threads)
  • 45 mlHot water (3 tbsp, for blooming saffron)
  • 400 gGround beef or lamb (minced) (15–20% fat preferred for juicier meatballs)
  • 100 gYellow onion (1 small; grated finely, then squeezed to remove excess juice)
  • 6 gGarlic (2 cloves; minced)
  • 1 gGround black pepper (about 1/2 tsp)

🔄 Substitutions

  • Persian basmati rice→ Indian basmati rice
  • Black-eyed peas (dried)→ Canned black-eyed peas (drained and rinsed)
  • Ground beef or lamb (minced)→ Ground turkey (dark meat preferred)

Instructions

  1. 1

    Rinse the rice in several changes of cool water until it turns mostly clear. Cover with 900 ml water and dissolve 10 g salt into it; soak 30 minutes at room temperature. Meanwhile, rinse the dried black-eyed peas and cover with 700 ml water; soak 30 minutes to help them cook evenly and stay intact.

  2. 2

    Bloom the saffron: grind the saffron threads to a powder, then stir in 45 ml hot water. Cover and set aside 15 minutes; the liquid should turn deep orange-red. This concentrated saffron will be used for both the rice layers and finishing, giving aroma without needing a large quantity.

  3. 3

    Cook the black-eyed peas: bring 700 ml soaking water and peas to a gentle boil, then reduce to a steady simmer. Cook 20–30 minutes until tender but not mushy, skimming foam if needed. Drain well and set aside. If peas are very fresh, check at 18 minutes; overcooking will make them split during layering.

  4. 4

    Prepare the onion mixture: heat 45 ml olive oil in a skillet over medium heat. Add the sliced onions and cook 12–15 minutes, stirring often, until soft and golden. Add 1 1/2 tsp turmeric and cook 30 seconds to bloom. Stir in the drained peas and cook 2 minutes to coat; remove from heat and cool slightly.

  5. 5

    Parboil the rice: bring 1700 ml water to a rolling boil in a large nonstick pot. Add 12 g salt, then drain the soaked rice and add it to the boiling water. Boil 6–8 minutes, stirring gently once or twice, until the grains are elongated and the center is still slightly firm. Drain in a colander and rinse briefly with 250 ml cool water.

  6. 6

    Make the mini meatballs: in a bowl, combine minced meat, grated-and-squeezed onion, minced garlic, 3/4 tsp turmeric, 1 tsp salt, and 1/2 tsp black pepper. Knead 2–3 minutes until sticky and cohesive. With damp hands, roll into 2.5 cm meatballs (about 24–28 pieces), keeping sizes even for uniform cooking.

  7. 7

    Sear the meatballs: heat 1 tbsp olive oil in a wide skillet over medium-high heat. Add meatballs in a single layer and sear 6–8 minutes total, turning gently, until browned on most sides (they do not need to be fully cooked through). Transfer to a plate. If the pan gets dry, add 1–2 tsp water to prevent scorching.

  8. 8

    Set up for steaming and tahdig: rinse and dry the rice pot. Warm 1 tbsp olive oil in the pot over medium heat. Add 2–3 tbsp of parboiled rice and stir with 1 tbsp saffron water to create a saffron base for tahdig. Spread it evenly, then reduce heat to low so the bottom sets without burning.

  9. 9

    Layer the rice and peas: add one-third of the rice, then scatter half of the onion-pea mixture. Repeat with another third of rice and the remaining peas. Finish with the last third of rice, shaping a gentle mound. Using a chopstick or spoon handle, poke 5–6 holes to the bottom to vent steam and prevent sogginess.

  10. 10

    Steam the polo: drizzle 2 tbsp olive oil and 2 tbsp saffron water over the top. Cover the lid with a clean towel and place it tightly on the pot. Steam on medium heat for 10 minutes to build heat, then reduce to low and steam 40 minutes. The towel absorbs condensation for fluffier grains and crisper tahdig.

  11. 11

    Finish the meatballs gently: during the last 15 minutes of rice steaming, return the seared meatballs to the skillet over medium-low heat. Add 60 ml water, cover, and cook 10–12 minutes until cooked through (74°C/165°F internal). Uncover for 1 minute to evaporate excess moisture, keeping them glossy and juicy.

  12. 12

    Serve: turn off the rice heat and rest, covered, 10 minutes. Fluff the rice, lifting from the sides to keep layers distinct. Spoon a little extra saffron water over the serving platter if desired. Serve the black-eyed pea rice with the mini meatballs alongside, and include pieces of tahdig for crunch.

🪪 Recipe Passport

Origin: Persian Cuisine
Researched by: Zaffaron Kitchen
Published: March 14, 2026

Cultural Background

Black-eyed pea rice is a familiar home-style preparation in Iranian cooking, valued for its balance of legumes and fragrant rice. It is commonly served as a comforting family meal, and the small meatballs add a festive touch while keeping the dish practical for sharing at the table.

Regional Variations

Tehran-style home cooking: Often includes a stronger saffron finish and a more pronounced tahdig, with onions cooked to a deeper golden color for sweetness.
Southern Iran: May be seasoned more boldly with additional black pepper and turmeric, and served with sharper pickles or herb-heavy sides to contrast the richness.

Researched from multiple sources and validated by the Zaffaron editorial team. Every recipe is tested for accuracy, measurements, and cultural authenticity.

Share:

Nutrition per serving

780
Calories
33g
Protein
29g
Fat
96g
Carbs
9g
Fiber
980mg
Sodium

Pairs well with

If you enjoyed this recipe, here are a few related Zaffaron recipes to try next.

Does your family make this differently?

Every family has their own version. Maybe your grandmother adds a secret ingredient, or your aunt has a completely different technique. Preserve your family's version — with their name on it, forever.

You Might Also Like

Reviews

—
Rated 0.0 out of 5 stars
0 reviews

Cooked this recipe?

Tap the stars to rate it — that's all it takes. A few words are welcome but optional.

Please sign in to rate this recipe.
Rated 0.0 out of 5 stars

No ratings yet. Cooked this one? Be the first to rate it — it takes one tap.