An in-game trade is a trade made with a non-player character within the course of a core series Pokémon game. They are usually for Pokémon that are difficult or impossible to obtain through other means, or for Pokémon unavailable at that point of the game. In later games, the traded Pokémon often has special moves, like Egg moves.
Prior to HeartGold and SoulSilver, the Trainer conducting the in-game trade will always specify a Pokémon they want to trade for. The Pokémon the player receives in the trade will have a fixed OT and nickname; in later games the ID numbers, held items, Natures, and IVs are fixed as well.
Like Pokémon traded externally, the traded Pokémon will be treated as an "outsider", and gain a boosted amount of experience points in battle. Until Generation V, all Pokémon have the same level as the Pokémon it was traded for (except in Pokémon XD).
If any of these Pokémon are viewed in Pokémon Stadium 2 (but not Pokémon Stadium), the OT will be "Trainer" instead, in title case rather than ALLCAPS. If any of these Pokémon are traded to a compatible game in another language (any European language game), the OT will be translated.
Several Pokémon have raised Contest stats, even FireRed and LeafGreen Pokémon whose raised Contest stats will only be visible when traded to Ruby, Sapphire or Emerald. These Pokémon all have a sheen of 10, one Contest stat raised by 30, and all other Contest stats raised by 5.
In Nimbasa City, after returning the Dropped Item to the owner and calling them 51 times, Curtis or Yancy will trade the player a different Pokémon each day following by these order, depending on the player's gender. Each Pokémon has its Hidden Ability and can be either male or female.
In Generation I, there are a few in-game trades which were programmed into the game but were never assigned to any NPC. The most relevant of these is a Butterfree for Beedrill trade, which appeared in every Generation I game across all language releases despite never being used. The nickname of the traded Beedrill went through a number of changes, starting out as "ピピん" in Red and Green, changing to "チクチク" in the Japanese Blue (and Japanese Yellow), being converted to "CHIKUCHIKU" in Red and Blue, and finally becoming "STINGER" in English releases of Yellow. Pokémon Yellow also introduced two more trades, both of which trade a Pokémon for another of exactly the same species.[1][2][3][4]
Since the Pokémon received in an in-game trade is the same level as the one traded prior to Generation V, it is sometimes possible to receive a Pokémon at a lower level than normally possible.
Machop evolves into Machoke at level 28 (though can be found as low as level 15 in Generation II's Rock Tunnel) and then Machamp by trading. By breeding a Cubone in Generation II and trading it to Yellow, Machamp can be obtained at level 5.
Diglett evolves into Dugtrio at Level 26. By breeding Lickitung in Generation II and trading it to Yellow, Dugtrio can be obtained at level 5, which in turn can be traded over into Crystal to get a level 5 Magneton.