  In many online systems, individuals provide services for each other; the
recipient of the service obtains a benefit but the provider of the service
incurs a cost. If benefit exceeds cost, provision of the service increases
social welfare and should therefore be encouraged -- but the individuals
providing the service gain no (immediate) benefit from providing the service
and hence have an incentive to withhold service. Hence there is scope for
designing a system that improves welfare by encouraging exchange. To operate
successfully within the confines of the online environment, such a system
should be distributed, practicable, and consistent with individual incentives.
This paper proposes and analyzes a simple such system that relies on the
exchange of {\em tokens}; the emphasis is on the design of a protocol (number
of tokens and suggested strategies). We provide estimates for the efficiency of
such protocols and show that choosing the right protocol will lead to almost
full efficiency if agents are sufficiently patient. However, choosing the wrong
protocols may lead to an enormous loss of efficiency.
