Everything two characters exchange happens between their bodies, in a place, where a third person could be watching. Press E on somebody and a small menu opens with what you can do with them: learn their name, read them, trade with them, whisper to them, or put them in irons. Coin changes hands the same way.
How it works
Press E on another player and the interaction menu opens. It names them the way you know them, a chat id and a description if they are a stranger, the name you recorded if they are not, and it offers what is actually available: knowing them, reading their description, trading, whispering, gesturing, binding, blindfolding and reporting. The server checks the distance itself, so standing across the room does not work merely because the menu drew the row.
A trade is a window both of you are looking at. You each put in items and gold, you each confirm, and changing anything after a confirmation clears both confirmations. A price you state is binding: put a value on what you are offering and neither side can confirm until the gold covers it. Leaving the price off is how you make a gift, and gifts are perfectly legal here.
Not everything can be traded yet. Base items and gold move. Unique, enchanted, tempered, custom-named, worn, quest and bound items do not, and anything the server cannot identify with certainty is refused rather than guessed at.
/pay is the short way to hand over coin without opening a window. It moves server-held gold to somebody standing next to you.
/frisk is asking to look. You ask, they accept or decline, and if they accept you see what they are wearing and carrying and can take none of it. Two cases change that. A bound player can be searched without being asked, and so can anyone searched by a member of a hold's guard agency, and in both of those cases the searcher can take what they find (see Bound & Blindfold, and Crime, Bounty, and the Guard).
Commands (/help player)
/player [name or id] opens the interaction menu for a nearby player, or reopens your active trade.
/trade accept accepts a pending incoming trade request.
/trade decline declines one.
/pay <chat id> <amount> hands gold to a nearby player.
/frisk <chat id> asks to look through a nearby player's worn equipment and carried items.
/frisk accept [request id] allows a pending frisk request.
/frisk decline [request id] declines one.
/duel accept accepts a pending staff duel offer, and /duel decline declines it.
The target has to be in the same cell and very close. Use the chat id shown beside nearby speakers.