  We investigate a market without money in which agents can offer certain goods
(or multiple copies of an agent-specific good) in exchange for goods of other
agents. The exchange must be balanced in the sense that each agent should
receive a quantity of good(s) equal to the one she transfers to others. In
addition, each agent has strict preferences over the agents from which she will
receive goods, and there is an upper bound on the volume of each transaction
and a weight reflecting its social importance or its cardinal utility for the
two agents. We propose a simple variant of the Top Trading Cycles mechanism
that finds a Pareto optimal balanced exchange. We then offer necessary and
sufficient conditions for a balanced exchange to be Pareto optimal and exploit
these to obtain a recognition procedure. This procedure can detect whether a
given exchange is Pareto optimal and, if not, improve it to become Pareto
optimal in polynomial time. Last, we show how to obtain a Pareto optimal
balanced exchange of maximum weight in two special cases.
