When I first heard that trading was finally making its way to Pokémon GO (along with a friend system), I rolled my eyes. “Oh boy, here we go,” I thought, believing that this would spell the doom of the game, given how many potential problems trading in a game like GO would bring.

And yet, it seems as if the reason it’s taken so long for trading to get here, almost two years, is because Niantic had to carefully craft a system designed not to break the game. And that does appear to be what they’ve achieved, though the system isn’t live quite yet.

I am pretty amazed with the system Niantic has crafted here, one that relies heavily on playing with real-life friends, and it’s something that seems like it will be hard to “black market” so to speak, with players attempting to sell valuable Pokémon, which was always one of my concerns.

So, what’s going on with trading? Here are the important points you should know:

Everything revolves around “friendship level.” The more you play with a specific friend, the more that level will increase, unlocking important aspects of trading. It should take you 90 full days at least to reach “best friends” level where everything is unlocked, meaning that you absolutely cannot do this with randoms (unless you actually become friends).

Again, all of this is local. You have to trade local. You have to fight gyms and raid locally. This has to be a person you are literally hanging out with in real life. I suppose there are still some safety concerns with this system, but again, it’s not meeting some dude in an alley for a Legendary trade. The system is designed to avoid causal trading as much as possible.

While you can trade any Pokémon except mythics even if you’re a level 1 “good friend,” the catch is that it will cost an enormous amount of Stardust to do so. Trading say, a legendary when you’ve barely become friends with someone can cost you upwards of 1 million Stardust. The better friends you are, the heavier the Stardust discount becomes, which is a huge motivating factor in becoming best friends with another player. You can only trade one legendary, shiny or Pokémon you don’t have in a “special trade” once per day.

The final piece of the puzzle here is HP/IV randomization. This is bound to be controversial, but part of trading is that the IV of the Pokémon in question is randomized. The goal here is to get people to fill in Pokedex holes or get shinies, but not be able to trade powerhouses, which you will want to hang on to for yourself. The better friends you are with someone, the better chance you have at a non-terrible IV, but it’s likely that say, trading a perfect 100 will almost always get you a worse one at the end, so you clearly don’t want to do that. This is kind of a bummer, but I understand the rationale for it. It does make trading not super useful for many higher level players, however, who are really only focused on high IVs. That said, the friend system which gives you gym and raid bonuses for playing with good buddies benefits them all the same.

While obviously I need to try this system out for myself, I really like what I’m hearing for the most part here. This is a thoughtful implementation of a system that I thought had a very high chance of totally ruining the game. But it doesn’t sound like it will do that, and instead stay true to the mission of GO, encouraging play between friends and keeping players outside, not lurking in forums for valuable trades.

This should probably be live by the end of the week, and we’ll know more about it then.