Loot trading has some quirks to it, sadly those quirks are not explained anywhere in the game. Or out of game for that matter, we had to figure all this out as a community because the dev team couldn’t be asked to explain it to us.
In general, you cannot trade with people from a different realm and you cannot trade soulbound items.
When in instanced group content, soulbound loot drops can be traded, even across realms, for a limited time after they drop. Only soulbound items though - if someone loots a trash BoE, that won’t be tradeable cross-realm Equipping an item makes it non-tradeable, but an item can be traded multiple times as long as no one equips it. This means people can pass it around to run individual sims for it, for example.
A piece of loot from an instance boss cannot be traded to a player that has previously defeated the boss in question within the lockout. So if a person kills a heroic raid boss in a pug on Wednesday and then joins a guild run on Friday, they can’t receive traded items from that same boss.
A person looting the item cannot trade it if it is a higher item level than what they currently have. It does not matter if the piece is an actual upgrade, what secondaries or corruptions it has etc, only Item Level counts for determining whether a piece is tradeable. There are some quirks to this however. The game tracks your highest Item Level for a slot and memorizes it, so you don’t have to have the piece actually equipped. You can have it in the bank or even vendor or scrap it and the game will remember your ilvl for that slot. So say I get 460 pants on my heroic clear. Then the next day we go on a normal clear and I get 445 socketed corrupted pants that are better for me to wear than the 460. I can throw the 460 pants in the scrapper and wear the 445, but when the next pair of 460 pants drops for me, they will be tradeable because the game remembers I was wearing 460 at one point.
There is another quirk within that quirk. The game tracks slots and item classes separately. This has ramifications for weapons and for classes that can use multiple types of weapons. Main hands, off -hands and two-handed weapons are all tracked separately. Say I play my Druid and have a 460 staff equipped. During a normal clear, a 445 one-hander drops. That won’t be tradeable even though my weapon is technically higher - the game checks one-handers specifically so if I didn’t drop a 445 one-hander before, my staff won’t count. Same scenario with an off-hand. So most caster classes have to loot three individual items before they can be sure every weapon-like object they get in the future is tradeable.
AND there’s another quirk on top of that with rings and trinkets. The two slots you have for that are tracked independently. Say I have a 445 and a 430 ring. During Heroic, I drop a 460 ring. I decide to replace my 445 because the 430 has a socket and better secondaries for my class. So I have a 460 and 430. Next boss, another 460 ring drops. The secondaries are terrible for me so I don’t want it, but it won’t be tradeable because even though I have a 460 ring already, the game checks my other ring slot, sees a 430 and considers the 460 an ilvl upgrade over that. The workaround for that is that whenever you get a new, higher ilvl ring or trinket, you should physically put it in both slots - put it in slot 1, then remove it and put it in slot 2, then you can do whatever with it - keep it, scrap it, vendor it, delete it ,etc. That way the trading ilvl system remembers your highest ilvl piece for both slots.
Whew, that’s everything. Don’t you just love how much easier and more intuitive forced personal loot is over what we had previously?