Selling oil for dollar and for dollar only is the only thing, that is keeping that currency from hyperinflating.
I hear this all the time, but I don't understand it.
There's a free exchange market between dollars and Euros. So if Iran sells oil for dollars and immediately exchanges those for Euros, how is that any different from Iran selling oil for Euros directly? (Apart from the currency exchange costs, of course).
Simple.
All countries have to hold certain amounts of dollars on their accounts, as they will always need it to buy Oil. Because they are holding it, they need to buy it from time to time, which creates demand for dollar. And demand rises dollar price and keeps it from falling and keeps it in the market.
With Euro-based oil exchange, nobody would need dollar at all, so no country would hold it, so nobody (outside USA) would buy it, so it would have a small fraction of today's value. Hyperinflation.