Iranian President Hassan Rouhani said the drafting of an agreement would begin immediately, after marathon talks in the Swiss city of Lausanne.
The text of a binding agreement "is to finish by June 30th" Rouhani added in a tweet sent minutes before a joint statement between Iran and the P5+1 group of leading nations was to be made in Lausanne.
After eight days of talks, US Secretary of State John Kerry tweeted it was a "big day" and that the global powers and Iran "now have parameters to resolve major issues on nuclear program. Back to work soon on a final deal".
His comments were echoed by European powers.
EU foreign policy Chief Federica Mogherini hailed "good news" at the talks and said that Iran's capacity to enrich uranium would be "reduced".
The German foreign ministry said an "understanding had just been reached on key points" of an accord.
Iranian Foreign Minister Mohammad Javad Zarif, who is negotiating in Lausanne, also said on Twitter: "Found solutions".
The aim before this round of talks began was to agree the main contours of a deal to be finalised by June 30 that reduces in scale Iran's nuclear programme in return for relief from painful sanctions.
Global powers had refused an immediate end to all sanctions, preferring instead a phased suspension to enable them to be put back in place if Iran violates the deal.
The issue of suspending UN sanctions is particularly tricky -- Iran is also subject to US and EU measures -- with discord among the powers about the mechanism for a "snap-back" if needed.
US President Barack Obama also needs a deal which he can sell to hostile Republicans in Congress, who remain sceptical of Iran's pledges and are threatening to push for new sanctions from April 14.