Source Code Escrow: Structure, Triggers, and Best Practices

By Gurpreet S. Bal, Partner, Foley & Lardner LLP, Silicon Valley
Source code escrow is a risk mitigation mechanism that enterprise software licensees use to protect their ability to maintain and support critical systems if the vendor becomes unable to perform — whether through insolvency, acquisition, or abandonment. Gurpreet S. Bal, a Partner at Foley and Lardner LLP in Silicon Valley, advises both enterprise licensees negotiating escrow requirements into vendor agreements and software companies responding to escrow demands from large customers. As software delivery has shifted from on-premises deployments to SaaS models, the traditional escrow structure has required significant adaptation, and the question of whether escrow provides meaningful protection in a cloud-delivered world has become a central point of negotiation in enterprise software transactions.

How does a three-party source code escrow work and what must be deposited?

A source code escrow arrangement involves three parties: the software licensor (who deposits the materials), the licensee (whose access rights the escrow protects), and a neutral third-party escrow agent (Iron Mountain Intellectual Property Management, NCC Group, and EscrowTech are among the major providers) who holds the deposited materials under a standardized escrow agreement. The escrow agreement defines the deposit requirements, the release conditions, the agent's obligations upon receiving a release request, and the dispute resolution mechanism if the licensor contests a release. The deposit should be comprehensive enough to enable a technically competent third party to build, maintain, and modify the software without vendor assistance — which means the deposit must include not only source code but also complete build instructions, compiler and tool version specifications, third-party dependency libraries and their licenses, database schemas, configuration files, and technical documentation sufficient to understand the system architecture. Gurpreet Bal advises licensees that an incomplete deposit — source code without build instructions, or code that references dependencies that are themselves not deposited — is commercially worthless because the licensee cannot reconstruct a working system from it. Escrow agreements should specify deposit completeness requirements and give the licensee audit rights to verify adequacy.

How do you negotiate source code escrow release conditions that actually protect you?

The release conditions — the triggering events that entitle the licensee to receive the escrowed materials — are the most negotiated element of any escrow agreement, and the breadth or narrowness of these conditions determines whether the escrow provides real protection or merely theoretical comfort. Standard vendor-side positions limit release triggers to bankruptcy filing and formal insolvency proceedings, which are objectively verifiable events. Licensees typically seek broader triggers, including: voluntary dissolution or winding down of the licensor's business; assignment of the software license agreement to an acquirer without the licensee's consent; material breach of the software maintenance obligation that remains uncured after a defined period; failure to maintain a commercially reasonable support and maintenance program; and cessation of active software development for a defined period (often 12–18 months). Gurpreet S. Bal advises that the "cessation of business" trigger requires careful definition — a vendor that has been acquired and continues to maintain the software under new ownership has not ceased business for escrow purposes, but a vendor that has been acqui-hired and discontinued the licensed product arguably has, and the agreement should address this distinction explicitly. The licensee's right to use released source code should be limited to its internal maintenance needs and should not extend to redistribution or sublicensing, which would exceed the scope of the underlying software license.

How do escrow deposit verification, technical testing, and update obligations work?

A deposit that has never been verified is, practically speaking, a deposit of uncertain value — the escrowed materials may be outdated, incomplete, or technically non-functional. Deposit verification services offered by escrow agents range from basic integrity checks (confirming that the deposit consists of non-empty files in a readable format) to full technical testing (attempting to compile and build the software from the deposited materials in a controlled environment). Gurpreet Bal advises enterprise licensees of mission-critical systems that basic integrity checks are insufficient and that full build verification — demonstrating that the deposited materials actually produce a working build of the licensed software — is worth the additional cost. Update obligations are equally important: an escrow deposit that reflects the software version at contract signing but is never updated will diverge from the production version over time, rendering the deposit increasingly obsolete. Escrow agreements should require the licensor to update the deposit within a defined period (typically 30–60 days) following each material software release, and the licensee should have the right to audit update compliance. Escrow maintenance fees — paid annually to the escrow agent for storage and administrative services — are a recurring cost that should be allocated between the parties in the commercial agreement, typically borne by the licensee as the party seeking protection.

SaaS Escrow: Is It Meaningful, and What Are the Alternatives?

The traditional source code escrow structure was designed for on-premises software where the licensee could, upon receiving the source code, compile and run the software on its own infrastructure. SaaS delivery fundamentally changes this calculus: a licensee that receives source code for a SaaS application must also provision cloud infrastructure, configure databases and APIs, migrate data, and stand up a working environment — a task that requires substantial technical resources, time, and money even with complete deposited materials. Gurpreet S. Bal advises enterprise SaaS customers that the question is not simply whether to require escrow but whether a source code deposit addresses the actual risk, which is continuity of access to the service and its data, not the right to rebuild the software. Alternatives and complements to traditional escrow include: technology continuity plans (contractual commitments by the vendor to maintain infrastructure and support for a transition period following a triggering event); data portability and export obligations (ensuring the customer can retrieve its data in a usable format at any time, not just upon triggering); multi-tenant architecture disclosures that allow the customer to assess infrastructure dependency; and open core models where the foundational software layer is published under an open source license, reducing the risk that the vendor's failure eliminates access to the technology entirely. For the highest-stakes enterprise software relationships, a combination of source code escrow (covering the core application), data portability rights (covering customer data), and a contractual wind-down period (requiring the vendor to continue operating the service for 12–24 months following a triggering event) provides more comprehensive protection than escrow alone.

Gurpreet S. Bal is a Partner at Foley and Lardner LLP in Silicon Valley, where he advises technology companies on licensing, venture financings, M&A, and corporate transactions. He has represented clients in hundreds of transactions with aggregate deal value exceeding $60 billion across AI, semiconductors, fintech, and emerging technology.