Peel the onions and slice them into thick, even rounds. Separate the slices carefully into individual rings.
In a large bowl, whisk together the flour, cornstarch, baking powder, salt, black pepper, paprika, garlic powder, and onion powder.
In a separate bowl, whisk together the egg and buttermilk until well combined.
Gradually add the dry mixture to the wet mixture, whisking until you have a smooth, thick batter.
Dip each onion ring into the batter, making sure it is completely coated. Allow excess batter to drip back into the bowl.
Heat the vegetable oil in a deep, heavy-bottomed pot to approximately 350°F (175°C).
Carefully place the coated onion rings into the hot oil in small batches. Avoid overcrowding the pot.
Fry for about 2–3 minutes per side, or until the onion rings are crisp and golden brown.
Using tongs, carefully transfer the cooked onion rings to a wire rack or paper towel-lined plate to drain excess oil.
Serve immediately while hot and crispy with ketchup, ranch dressing, barbecue sauce, or your favorite dipping sauce.