Let’s talk about friends and trade 😀
(for the safety of respectable players I altered the pictures showing their names and my trainer code)

Niantic rolled out the function on 21st of June, 2018 at 9PM-ish (CET), first only available for lv40 players.
After a brief shitstorm they updated their information telling players they will roll the system out for other players shortly after. They gave a timetable which we all disregarded as they over-achieved their mentioned goals pretty soon (according to this I coulnd’t have been able to use it until this morning but I was able to use the function after 11PM CET Thursday. Meanwhile everyone above lv10 can use it, hoorah 🙂

So…. first of all:
How to get friends?
You need your code and provide another with it or enter the code of the other person.

How to obtain your/your friend’s code?
Go to your profile, tab (or swipe from right to left) to friends, choose “Add Friend”: you will find your code at the bottom and you can input a friend’s code above that.
Easy. Your friend needs to approve the friendship. Congratz! You’re friends!

You start as the basic level for friendship: Friend.
You will see the following information about your friend:
– name, level and EXP to next level
– buddy
– last Pokémon caught (hatch counts as caught)
– numbers of: Battles won, Walking Distance, Pokémon caught
* You can always remove friends
* You can have up to 200 friends (for now?)

What are friendship levels?
You start as a “Friend”.
There are 4 levels to reach starting from your base level “Friend”: Good friend, Great friend, Ultra friend, Best friend.
Each friendship level gives you a certain bonus.
As a “Friend” you can exchange gifts, you will see the latest catch/hatch activity of your friend and you can trade Pokémon.
Lv2: Good Friend gives you the bonus *Trade all Pokémon except Mythical.
Lv3: Great Friend. Requirement to be friends for 6 days. *Stardust discount for trades, Attack bonus for battles/raids and 1 extra ball for raid catches
Lv4: Ultra Friend. Requirement to be friends for 29 days. *Stardust discount for trades, Attack bonus for battles/raids and 2 extra balls for raid catches
Lv5: Best Friend. Requirement to be friends for 89 days. *Stardust discount for trades, Attack bonus for battles/raids and 4 extra balls for raid catches

The order of friends is always determined by the highest to lowest friend level.
Except if you receive gifts. Friends who sent you gifts will always appear at the top of your friend list. Anything below is shown as high to low.

How to improve friendship level?
1. send gifts. Gifts can be obtained at any Pokéstop or gym. Be patient you might not get one immediately.
* You can get more than 1/day gifts from the same stop/gym – you just need to wait 5 minutes between attempts of using the stop/gym
* You can have up to 5 gifts in your inventory before sending them to friends
* You can receive 20 gifts/day
* Opened gift contents can be viewed in Notification menu
* Received items will be shown in your Journal
* NOTE: If you have an egg slot open, you might receive a special 7KM egg with your gift which contains an Alola Pokémon.

2. raid together. Raiding together improves your friendship level (possible once per day per person)

3. trade Pokémon. This is divided into “normal” trades and “special”. Normal trades are things like Pidgeys, whatever. Special are considered to be first-entries in PokéDex, Shinys, Legendaries.
A normal trade costs 100 Stardust/Person, a special varies by kind. A new Dex Entry costs 20k Stardust/Person (based on lv 2 “Good Friend” Friendship), a legendary is 1 million Stardust/Person (based on “Friend” level). Niantic said that legendary trades will be 40k at “Best Friend” level. We will see 🙂
You can check this list for further (at the moment guessed) numbers.

How to trade Pokémon?
First you need to be within a 100 meter radius with your friend.
Search for your friend in your friends list, click on them, choose “Trade” and wait for the other side to do the same. If both are in the trade menu, you can choose the Pokémon you wish to trade.
Agree to the stardust cost, the other person needs to do the same. Now wait for the animation and *tada* trade done.
* You can trade normal Pokémon as often as you like per day
* You can trade one special Pokémon per day (I think that’s also per friend, didn’t test yet)
* Stardust costs will be reduced by friendship level
* All values of a Pokémon will be resetted through trade (a 100% Pokémon can turn out to be a 20% after being traded and vice versa), its gender will stay the same
* Traded Pokémon can be renamed
* You can not trade a Pokémon received through trade
* Traded Pokémon will show the original catch/hatch date and the previous owner’s name.

Example: I traded a Mug 91 to another person who didn’t have the entry yet. Costs: 20k stardust each side. The 91 ended up a 67 Mug on the other side, I received also a 91 Pokémon that ended up 40-50 (I fed it to improve my 100 lol). Mug shows it previously belonged to me, when it was traded and when it was originally caught. I am not sure if it kept the skills, but gender-wise it stayed the same.

Have fun and enjoy 🙂