1
Insert full legal entity names and registered addresses
Use each company's registered corporate name exactly as it appears in the relevant corporate registry, along with the jurisdiction of incorporation and principal business address.
💡 Cross-reference each party's corporate registry filing before execution — a mismatch between the contract name and the actual registered entity can complicate enforcement.
2
Define the scope in Schedule A before anything else
List every specific deliverable, platform, API, dataset, or resource each party is committing to provide, along with delivery dates or milestones. If it is not in Schedule A, it is not in scope.
💡 Use version numbers and API endpoint names rather than product names — software product names change; version numbers create an unambiguous record.
3
Allocate background and foreground IP in Schedule B
List the specific IP assets each party is contributing to the alliance (background IP) and state explicitly whether jointly created foreground IP is owned 50/50, assigned to one party, or held in a separate licensing structure.
💡 If one party is contributing significantly more IP, consider a royalty-bearing license back to the contributing party rather than equal co-ownership — equal ownership means either party can sublicense without consent.
4
Negotiate and enter the revenue share formula
Agree on whether the share applies to gross revenue, net revenue, or gross profit, define each term precisely, and set the payment schedule and quarterly reporting format.
💡 Add a right-to-audit clause with a 10-business-day notice window — without it, you have no mechanism to verify the revenue calculations you rely on.
5
Draft the exclusivity clause with a specific competitor definition
If exclusivity is agreed, attach a Schedule C defining 'Competing Software Platform' by functionality, product category, or named competitors. Review it annually as the market evolves.
💡 Narrow exclusivity to the specific product category or geographic market of the alliance — broad exclusivity clauses invite disputes and are more likely to be voided by courts.
6
Set the liability cap to a commercially realistic amount
Use the higher of a fixed dollar amount or the trailing 12-month revenue share as the cap. Confirm both parties' insurance coverage aligns with the cap before signing.
💡 Ensure the cap for IP indemnification claims is higher than the general liability cap — IP infringement claims in software routinely exceed standard liability ceilings.
7
Choose arbitration or litigation and name the seat
Select binding arbitration (AAA, JAMS, or ICC) for privacy and speed, or litigation in a specific court if precedent and injunctive relief are priorities. Name the city as the seat regardless of which you choose.
💡 For cross-border alliances between a US and EU company, ICC arbitration in a neutral city (e.g., New York or London) is the most commonly accepted compromise.
8
Execute before any data exchange or development work begins
Both authorized signatories must sign before any confidential information is shared or any joint development activity starts. Post-commencement signatures create gaps in confidentiality and IP protection.
💡 Use a timestamped e-signature platform so the execution date is independently verifiable — this is especially important if an IP dispute arises later about when contributions were made.