I'll venture a guess that in any 100 domain transactions only 1 or 2 will involve a formal contract. This does not include the pro forma contracts that the various domain auction sites employ. You might want to glance at their pro forma contracts for further guidance.
The simplest approach, if there are matters of trust, is to use an escrow service.