A French national arrested in Paris last week had an "unprecedented" amount of weapons and was planning an act of "extreme violence", officials say.
Prosecutors have charged 34-year-old Reda Kriket over an alleged plot to carry out an attack.
In his apartment, police found five assault rifles, seven handguns and the same type of explosive used in the attacks in Paris and Brussels.
Kriket has been linked to the suspected ringleader of the Paris attacks.
The possible target of the alleged plan was not identified, but Paris prosecutor Francois Molins said the attack was imminent.
In Kriket's flat in the Paris suburb of Argenteuil, officials also found chemicals, false passports, brand-new mobile phones and two computers with information about bomb-making and jihadist groups, Mr Molins added.
The arsenal also included the TATP explosive that was used in suicide bombs set off in Paris and Brussels by militants linked to so-called Islamic State (IS).
"Everything suggests that the discovery of this cache avoided an act of extreme violence by a terrorist network," Mr Molins told a news conference.
Kriket has been charged with participating in a terrorist group, possessing and transporting arms and explosives, and holding fake documents, the prosecutor said.
Officials believe he spent time in Syria in 2014 and 2015 and made several trips between France, Belgium and the Netherlands.
Last July, he was sentenced in absentia to 10 years in prison by a Belgian court for recruiting Islamist fighters for Syria. Investigations showed he played a key financing role with money from robberies and stolen goods.
Abdelhamid Abaaoud, believed to have been the ringleader of last year's Paris attacks, was also absent for the trial.
In questioning by French investigators, Kriket said he was not a terrorist but gave up little information, Mr Molins said.
Three other men are being held in suspicion of involvement in the same alleged plan.
One is 32-year-old Frenchman Anis Bahri, who is believed to have travelled to Syria with Kriket. He is being held in the Dutch city of Rotterdam at the request of the French police and is resisting extradition to France, the prosecutor said.
The other two have been identified as Algerian nationals Abderahmane Ameroud, 38, and Rabah M., 34. They have been charged in Belgium and will face a hearing on 7 April.