Someone sends you a contract. It is twelve pages of dense clauses, you are not a lawyer, and there is an AI on your screen that could explain the whole thing in thirty seconds. So you upload it. This is one of the most reasonable impulses in modern work — and contracts happen to be the one category of document where it carries a risk most people never consider.
The short answer
For a template or a contract you drafted yourself with no counterparty details filled in, uploading it is fine. For a signed or received agreement involving a real counterparty, the answer is no, not as-is — and the reason is not that the AI is untrustworthy. It is that the contract itself very likely prohibits it.
The clause you may be about to breach
Open the agreement and look for the confidentiality section. In most commercial contracts, NDAs, employment agreements and settlement terms, you will find language restricting disclosure of the agreement, and often its very existence, to anyone outside a defined circle. That circle is usually limited to employees, professional advisers and regulators with a need to know. Three consequences follow, and none of them depend on the AI provider behaving badly:
- Uploading is disclosure. Sending a copy to an external service is a transfer to a third party. It does not matter that the recipient is a machine; the obligation is about where the document goes, not who reads it.
- The AI provider is not your adviser. The carve-out for professional advisers covers your lawyer and your accountant, who owe you duties of their own. A software vendor you clicked through terms with is not in that category.
- The breach is complete on upload. There is no harm threshold to cross and no leak required. The disclosure itself is the breach, which is why nothing appears to go wrong when you do it.
This is the part that makes contracts different from other sensitive documents. With a medical letter or a client file you are weighing a privacy risk. With a contract you may be breaching the very agreement you uploaded it to understand, and the counterparty would only need the fact of the upload, not any consequence of it.
What a contract actually exposes
Set the clause aside for a moment and look at the content. A signed agreement is unusually dense in exactly the data you would never deliberately publish:
- Legal identities. Registered company names, entity numbers, and the jurisdictions they are incorporated in — enough to identify both sides of a deal precisely.
- Named individuals. Signatories, their job titles, and often their direct email addresses and phone numbers in the notices clause.
- Commercial terms. Rates, discounts, minimum commitments and termination fees, which are frequently the most competitively sensitive numbers a business holds.
- Banking details. Account numbers, IBANs and remittance instructions sitting in the payment schedule or an annex.
- Addresses and dates. Registered offices, service addresses and execution dates, which together are more than enough to identify the parties even with the names removed.
Why “I turned off training” doesn't settle it
Disabling chat history or opting out of model training is worth doing, and it is genuinely irrelevant here. Those settings govern what the provider does with your data after it arrives. The contractual problem happened at the moment of transmission: a copy of a confidential agreement left your control and now sits on infrastructure you do not govern, subject to that provider's retention policies, jurisdiction and legal obligations. A promise about downstream handling does not undo an upstream disclosure — and if you ever had to explain this to the counterparty, the distinction between “they stored it” and “I sent it” is not one that helps you.
You can keep the terms and drop the identities
Here is the useful realisation, and it is specific to contracts: almost nothing you want from the AI depends on knowing who the parties are. You want to understand obligations, spot unusual clauses, compare a payment schedule against what you were promised, or find out what happens if you terminate early. All of that is reasoning about structure, and structure survives anonymization completely intact.
| What the AI genuinely needs | What it never needs |
|---|---|
| The clauses, defined terms and cross-references | The parties' registered legal names |
| Payment structure, triggers and termination mechanics | Bank accounts, IBANs and remittance details |
| Dates, durations, notice periods and deadlines | Signatory names, titles and service addresses |
The way to get one without the other is reversible anonymization: every identifying value is replaced with a stable placeholder code such as [P0ABCD] for a person or [O1WXYZ] for an organisation, so the agreement still reads as a coherent legal document and the model can reason about it normally. Because the same value always maps to the same code, a clause referring to the buyer in section 4 and the buyer in section 19 stays recognisably the same party across a long conversation.
A workflow that holds up
The sequence that lets you use any AI on a real agreement without making a disclosure looks like this:
- Anonymize on your own machine. Run the contract through a detector that finds names, entities, addresses, bank details and dates, and swap each one for a reversible code before anything is sent.
- Review what it found. Detection proposes, you decide. One missed counterparty name is the entire failure, and this is the step that lets you stand behind the result afterwards.
- Ask your questions normally. Summarise the obligations, flag the unusual clauses, compare against a previous version — the anonymized text supports all of it.
- Decode the answer locally. Turn the codes back into the real names on your device, so the final output reads as though you had never anonymized anything.
This is what promptShield is built to do, and it runs entirely offline — detection, replacement and the code registry all stay on your machine, so neither the contract nor the map back to the real values is ever transmitted. You can confirm that by disconnecting from the internet and watching it work anyway.
Frequently asked questions
What if the contract has no confidentiality clause?
Then the contractual bar may not apply, but two things still do. The agreement almost certainly contains personal data — signatory names, direct email addresses, service addresses — which brings data-protection duties into play whatever the contract says. And confidentiality is frequently owed somewhere else: an NDA covering the negotiation, an employer policy, or a professional duty. The absence of a clause is not permission.
Is it safer to paste a single clause instead of the whole contract?
Marginally, but the risk is driven by identifiers rather than length. A single clause often names both parties, and the notices or payment clauses are usually the most identifying passages in the entire document. If the extract still carries the names, company numbers or bank details, you have made the same disclosure in fewer words.
I have already uploaded a contract. What should I do now?
You cannot retract it, so treat it as an incident rather than something to bury. Note what was sent and when, delete the conversation, and check whether the agreement imposes any notification duty for a disclosure. Tell whoever owns the counterparty relationship, because they are the person who will be asked about it if it ever surfaces. Then change the workflow so the next contract is anonymized before it leaves your machine.
How can I use AI on a contract without disclosing it?
Replace the identifying details before the text leaves your machine, then restore them afterwards. Because each party keeps one stable code, the model reasons about the same entities throughout — that is reversible redaction, and scanned pages need OCR first.
The bottom line
Is it safe to upload your contract to ChatGPT? Legally, that question is usually answered inside the contract itself, and the answer is usually no. But the reason people upload contracts is entirely legitimate: these documents are hard to read and AI is genuinely good at explaining them. You do not have to give that up. Strip the identities before the document leaves your machine, and the analysis you wanted is still available — without a disclosure you would have to explain later.
promptShield is free to try and runs on Windows and macOS. Download it here, or read the broader case for never pasting confidential documents into an AI.