I am making this simple recap for tax residents of France.
I am not a tax specialist, just an honest individual who tries to declare his income to the best of his ability.
This is my view only, it may not apply to everyone as every situation is different.
This is my understanding and own interpretation, I cannot be held liable if you follow this and it is not accurate.
It goes without saying, but you don’t need to be a French citizen or work for a French company to pay your taxes in France. As long as you live in France, you have your tax duties in this country.
If you are employed at a French entity that grants you stock-options, the year that you exercise your stock option, if the plan is not qualified (which is my case), you have nothing to declare, as it is treated and taxed as salary on your pay slip.
Secondly, when you sell stocks, and your broker, like Revolut Trading, Trading212 etc does not give French tax authorities any recap of your stock trades, then you have to declare it yourself using the form 2074, know as the green form. The online declaration is limited to 9 sell-offs of stocks. If you have more, then you will need to declare using the paper form, and attach an Excel sheet detailing your gains (I made a template if anyone is interested can PM). Note that, for your cost of acquisition, you must use the weighted average price per share.
The total value of your gains that will be taxed is in line 945 “total of gains”. You will be taxed at the flat tax (30%). Note that the reduction of tax when you used to hold your stocks for more than 2 years, is no more present in the current flat tax scheme. In other words, there is no more tax incentive for holding stocks for more than 2 years.
To declare your dividends of US (foreign) origin, you use the form 2047, know as the red form (not to mistake with the 2074 above). For US dividends, normally your broker (I know that Revolut and T212 do this) already deducts the 15% released to the US tax authorities. Example: let’s say that you received the equivalent of a gross 100€ of dividends. You should receive 85€ on your account, your net dividend. In the online tax declaration, in form 2047, check the box “Des revenus des valeurs et capitaux mobiliers imposables en France.” Then fill row 203 with the net value (85€ in my example), row 204 with 17,7% (for US), row 205 is automatically calculated (15€ in my example), and put 15€ in row 206.
In theory, when you receive dividends, if your “revenu fiscal de référence” is above 75k€ for a couple, you must, before the 15th day of the following month, fill-in the 2778-DIV-SD form and send it to your local tax office with a check worth 21% of your perceived dividends, as an advance you are making to the tax authorities. And do this every time you receive dividends. To be honest, my advice is that you can skip this and just declare your dividends of foreign origin once a year, you should be fine with this approach.
For gains on crypto is another story, you need to fill form 2086 and you will be taxed at 30% flat tax.
Finally, and this is extremely important, as most countries now exchange between themselves fiscal info about their residents, you must declare all your foreign accounts and foreign crypto accounts. This can be very tedious but nonetheless mandatory, the fine of not doing so can be important. To do this, it is the Appendix 3916 (for foreign accounts) and 3916 bis (for crypto accounts). No need to inform the amount that is sitting on these accounts, just the existence of the accounts, with basic info such as open date, close date (if you closed the account during the year), account number etc.
Finally, this article is a bit old, however gives some good use cases: Déclarer les gains d’un compte-titres ouvert à l’étranger (MAJ 2020) | Améliorer sa culture financière pour mieux gérer son argent