- 1 pound (450g) dried pinto beans
- Kosher salt
- 6 cups (1.4L) homemade or store-bought low-sodium chicken stock
- 2 bay leaves
- 2 sprigs epazote (optional; see notes)
- 12 ounces (340g) diced bacon (see notes)
- 1 medium white or yellow onion, diced (about 8 ounces; 225g)
- 2 serrano chiles or 1 jalapeño, minced (remove seeds and ribs if you prefer less heat)
- 3 medium cloves garlic, minced (about 1 tablespoon; 12g)
- 2 (14-ounce; 400g) cans diced fire-roasted tomatoes (see notes)
- Large handful chopped fresh cilantro leaves and fine stems
Step 1: Place beans in a large bowl and fill with enough cold water to cover by at least four inches. Add 2 tablespoons (18g) kosher salt and stir to dissolve. Let soak 8 to 12 hours. Drain and rinse.
Step 2: In a large Dutch oven, add beans, stock, bay leaves, 2 teaspoons (6g) kosher salt, and epazote (if using). Bring to a boil over high heat, reduce to a bare simmer, cover, and cook until beans are just tender, about 45 minutes.
Step 3: Meanwhile, heat bacon in a 12-inch stainless steel or cast iron skillet over medium-high heat. Cook, stirring constantly, until fat is rendered and bacon is just starting to brown around the edges, about 5 minutes.
Step 4: Add onion and chiles and cook, stirring, until softened and just starting to brown, about 4 minutes. Add garlic and cook, stirring, until fragrant, about 30 seconds.
Step 5: Add tomatoes (see note) and cook, stirring and scraping up browned bits from the bottom of the pan, until the liquid is thick and the mixture begins to sizzle, about 3 minutes.
Step 6: Remove lid from Dutch oven, add bacon-tomato mixture, and continue cooking, stirring occasionally, until beans are completely creamy and liquid has thickened into a rich, creamy broth, about 20 minutes.
Step 7: Season to taste with salt. Discard bay leaves, stir in cilantro, and serve. Beans can be stored in the refrigerator for up to 1 week.
In place of the canned fire-roasted tomatoes, you can use 1 1/2 pounds fresh Roma tomatoes. Char the tomatoes directly over a gas flame, on a grill, or with a torch to remove the skins. Split into quarters and cut out and discard the cores. Dice and use as directed in the recipe.