1
Identify both parties by their full legal names
Enter the assignor's and assignee's registered legal entity names, jurisdictions of incorporation, and principal addresses. For individuals, use full legal names as they appear on government ID.
💡 Cross-reference the assignor's name against any copyright registration for the software — a mismatch in the chain of title can invalidate the assignment.
2
Define the software precisely in Exhibit A
Prepare Exhibit A listing the software name, version number, repository URL or hash, functional description, and all associated documentation. Reference this exhibit throughout the agreement rather than describing the software in the body.
💡 Include a SHA-256 hash or Git commit ID of the codebase at the point of assignment to create an immutable record of exactly what was transferred.
3
Draft the reservation of rights clause with exact scope
Specify precisely what the assignor retains — for example, a non-exclusive, royalty-free, internal-use-only license, or rights to named underlying libraries listed in Exhibit B. State whether the reservation is sublicensable, geographically limited, or time-limited.
💡 If the reserved rights include underlying libraries used in multiple client projects, list each library by name and version in Exhibit B to prevent future scope disputes.
4
Conduct an open-source audit before signing
Scan the codebase for open-source components using a tool such as FOSSA, Black Duck, or Scancode. Disclose all findings in Exhibit C as required by the representations and warranties clause.
💡 GPL and AGPL components are assignment deal-breakers for most buyers — resolve them before signing rather than disclosing them as an exhibit and hoping the assignee accepts.
5
Set consideration and payment milestones
Enter the total assignment price, currency, and payment schedule. Tie milestone payments to specific deliverables — source code handover, documentation delivery, or escrow release — rather than calendar dates alone.
💡 For assignments over $50,000, consider a source code escrow arrangement to protect the assignee if the assignor becomes unreachable or insolvent before full delivery.
6
Include the moral rights waiver for international use
Add the moral rights waiver clause if either party is located in or the software will be used in Canada, the UK, the EU, or Australia. Confirm the waiver language meets the specific statutory requirements of the applicable jurisdiction.
💡 In Canada, moral rights can only be waived — not assigned — so the waiver must be explicit and in writing to be effective under the Copyright Act.
7
Execute before transferring any credentials or repositories
Both parties must sign the agreement before the assignor hands over source code repositories, API keys, or deployment credentials. Post-transfer execution creates a fresh-consideration issue and may leave the assignee holding IP without a perfected assignment.
💡 Use a timestamped electronic signature platform to capture execution date precisely — this matters if either party later disputes when the assignment took effect.
8
Record the assignment with the relevant IP registry
File the assignment with the US Copyright Office (Form CA or cover sheet), CIPO in Canada, or the UKIPO as applicable. For patent rights, record with the USPTO or relevant national patent office within 3 months of execution to preserve priority against subsequent transferees.
💡 Recording at the Copyright Office costs $105 per assignment as of 2026 and creates a public record that protects against a fraudulent second assignment to another party.