In a large bowl, combine the ground beef, soaked bread, Pecorino Romano, eggs, parsley, salt, and pepper. Mix gently until everything is just combined. Be careful not to overwork the meat — this helps keep the meatballs tender.
Roll the mixture into meatballs slightly smaller than a baseball and place them on a tray.
In a large heavy pot or Dutch oven, heat a generous layer of olive oil over medium heat.
Working in batches, fry the meatballs until golden brown on all sides. Transfer them to a plate and set aside.
In the same pot, add the chopped onion and cook over medium heat until soft and lightly golden, about 8–10 minutes.
Stir in the tomato paste and cook for 2 minutes to deepen the flavor.
Pour in the red wine and scrape up any browned bits from the bottom of the pot. Let the wine simmer for 1–2 minutes.
Add the passata and stir to combine. Season with salt and pepper.
Gently return the meatballs to the sauce and add the fresh basil.
Partially cover the pot and let everything simmer on low heat for about 2½ hours, stirring occasionally.
Serve the meatballs with pasta or on their own, finished with extra Pecorino Romano.