Preheat oven to 350F (175C) and line muffin tin with cupcake liners (or lightly grease and flour).
In large bowl, whisk together sugar, flour, cocoa powder, baking powder, baking soda, and salt.
Stir in canola oil and milk, stirring until combined.
Add eggs, one at a time, stirring after each addition.
Stir in vanilla extract.
Add hot water and stir until the mixture is evenly combined (it will be a thin batter. When you first add the water the batter will separate a bit, stir until it is even in texture. Be careful with the hot water as it may splatter as it is stirred). Batter will be very thin, don't panic!
Fill prepared muffin tin cavities just over ⅔ of the way full* and bake at 350F (175C) for 18-22 minutes (use the toothpick test to check).
Allow cupcakes to cool completely before frosting.
Chocolate Buttercream Frosting
In electric mixer cream butter
Add sugar, one cup at a time until completely combined
Stir in cocoa powder and then vanilla extract. Pause to scrape down the sides of the bowl with a spatula.
Add milk, 1 Tbsp at a time and beating on medium-high speed after each addition for about 15 seconds until desired icing consistency is reached (the less milk you use, the stiffer the frosting will be).
Pipe icing on completely cooled cupcakes and add sprinkles (if desired).
Serve and enjoy.
*Do NOT overfill your cupcake liners or your cupcakes will sink in on themselves after baking. This recipe makes a bit more batter than the standard 24 cupcakes, if you don't care to make more than 24 and have excess batter, either discard it or make additional cupcakes but overfilling your liners is one of the surest ways to ruin your cupcakes.To make this as a cake, lightly but thoroughly grease and flour 2 8" cake pans, divide the batter evenly between the pans and then bake on 350 for 25-35 minutes (check with toothpick at 25 minutes)