The source said language in the memorandum was still being finalised and Iran was sticking to its position that the deal must also end fighting in Lebanon, where Israel has been battling against the Iran-backed Hezbollah militia.
The aim was to finalise the wording by Saturday so the agreement could be signed by US Vice-President JD Vance and Iran's parliament speaker Mohammed Baqer Qalibaf.
No venue had been established but Geneva was emerging as the likeliest.
Trump said on Thursday he was calling off new strikes on Iran because the deal was now ready.
"We just made a great settlement of the war with Iran," Trump told reporters in the White House on Thursday.
But the terms of the deal as described on Friday by Iranian officials appear to offer Tehran much of what it has demanded, with Trump appearing to win little of what he has sought, beyond the reopening of the Strait of Hormuz, which Iran shut after he ordered attacks in February.
A senior Iranian source told Reuters on Friday that the draft would waive sanctions on Iran's oil, unfreeze billions of dollars of its funds, and require a cessation of hostilities on all fronts, including in Lebanon.
Nuclear issues would be set aside for later talks.
Washington wants a deal to ensure that Iran never develops a nuclear weapon; Iran says it is not seeking one.
The waiving of sanctions, unfreezing of Iranian assets and halt to Israeli attacks on Lebanon are essential Iranian demands.
The source made no mention of what Iran might offer in return.
There was no immediate response from the United States.
Trump's announcement of a deal - hours after he threatened again to hit Iran "very hard" on Thursday night - prompted global shares to rally and oil prices to slip on Friday.
Throughout the war, which began on February 28 with US and Israeli strikes on Iran, Trump has made similar declarations that a deal was at hand, only for no deal to emerge.
But markets took comfort that his latest words signalled the end of a particularly tense few days of escalation, which began with Iran and Israel trading fire for the first time since an April ceasefire, and continued through two days of US strikes on Iran and Iranian return fire at US regional bases.
"The strait will officially open as soon as we sign, which could be soon, very soon, maybe over the weekend in Europe," Trump said, adding that Vance would attend the deal signing.
Asked if Iranian Supreme Leader Ayatollah Mojtaba Khamenei had approved the deal, Trump said, "I understand the answer is yes."
Iranian media reported foreign ministry spokesman Esmaeil Baghaei as saying on Thursday large parts of the agreement had been finalised, but Iran would not compromise on its red lines.
Tension remained high around the Strait of Hormuz, with US forces shooting down two Iranian one-way attack drones after Tehran attempted to strike commercial ships transiting the vital waterway, a US official said on Thursday.
Iran's military stopped a tanker from transiting the strait, state media said, reporting the sound of explosions early on Friday.
The conflict has become a political headache for the White House, with polls showing Trump's approval ratings sinking amid voter anger over high petrol prices before congressional elections in November.
Curbs on fighting in Lebanon could be difficult to accept for Israel, which started the war alongside the United States in February but has not been included in peace negotiations.
Prime Minister Benjamin Netanyahu's office said in a statement that Israel was not a party to any memorandum of understanding with Iran.