The rial has reached a series of record-lows in recent weeks, and stood at 58,650 to the dollar at the close of business on Monday, driven mostly by speculation that the United States would pull out of the nuclear deal with Iran next month.
After an emergency session of the government on Monday night, Vice-President Eshagh Jahangiri said the rate would be capped at 42,000 rials to the dollar and foreign exchange offices would be brought under the control of the central bank.
"Unfortunately in recent days, incidents have happened in the rate of foreign currency which have caused concern for the people," he said in comments on the state broadcaster.
He blamed "non-economic, unjustified and unpredictable factors" for driving the rial's collapse, given that its exports were performing strongly.
"There should not be such incidents in an economy that always has a surplus of foreign currency. Some say interference by foreign hands is disrupting the economic climate and some say domestic machinations are spurring these things in order to destabilise the climate in the country," added Jahangiri.
US President Donald Trump has threatened to walk away from the nuclear deal and reimpose sanctions on Iran next month unless new restrictions are placed on its missile and atomic programmes.
Analysts say that has encouraged Iranians to horde dollars in the hope of selling them for a profit when the currency collapses further.
Jahangiri said currency sold beyond the set rate would be considered "contraband".
"Just like the smuggling of drugs, no one has the right to buy or sell it... If any other exchange rate is formed in the market, the judiciary and security forces will deal with it," he warned.
The rial stood at around 40,000 to the dollar in October, when Trump said he would no longer certify Iran's compliance with the nuclear deal, and has been falling steadily since.
No exchange rate was fixed for the euro or sterling which have also seen massive gains against the rial in recent months.