Sell ad space that buyers can check.
Sign your pages, and each ad slot carries a short signed record of your site and what you declared about AI. Buyers who want human-made pages can check what you declared instead of guessing.
What a signed page gives you.

- Your site, on the record
- Each record names your site and the exact page, from your C2PAC2PA: The Coalition for Content Provenance and Authenticity: the group that publishes the open standard for content labels. label. Buyers check its signature, so they know whose page their ad runs on.
- Your AI declaration, signed
- The record carries what you declared about AI use. Buyers read your signed word, not a guess.
- Deals built on the label
- Buyers can name the label in their own buying rules and private deals. That lets them single out your signed pages and value them on that basis.
- For buyers
- Buyers check the record on their own servers against our published keys, then apply their own policy. They see whose page it is, and what the publisher declared, before they bid.
The label says what the signer declared. It does not prove a person wrote the page.
Keep human work from being taken for AI.

- Some buyers avoid pages made with AI. If a buyer sorts pages with an AI detectorAI detector: A model that guesses whether content was made by AI and returns a probability, not proof., it gets a guess, and a wrong guess can drop your page from a deal or lower its bid.
- Detectors do get it wrong. OpenAI's own detector flagged 9% of human text as AI. OpenAI withdrew it for low accuracy.
- Your signed record gives the buyer provenanceContent provenance: The record of where a piece of content came from and how it changed, carried with the content itself. instead of a guess: what you declared, signed and tied to your site.
Source: OpenAI, January 2023, withdrawn July 2023.
What runs today.
- Prebid module
- Merged into Prebid.jsPrebid: Widely used open-source code that runs the ad auction before the page loads its ads., the code most websites use to sell ads. During the auction it looks the page up in a signed dataset at the edge, never at our origin serversOrigin server: The server where your site's pages are built and stored before a CDN delivers them.. It is fail-openFail open: If signing is down, the page is served unsigned instead of failing, so readers never see an error.: if the record is missing or stale, the auction goes on as usual.
- The record
- Four fields under
imp.ext.c2pain the OpenRTBOpenRTB: The IAB Tech Lab protocol that ad exchanges and buyers use to bid on each ad slot in real time. request, at most 1 KiB. No article text, no user data, no score. - Publishers
- Pages carry the record once the publisher enrolls with our team.
- In pilot
- Private deals for signed pages.
- Standards
- The record is a proposed IAB OpenRTB community extension. It is not a ratified standard.
Try a buyer policy on sample inventory.
The sandbox runs in your dashboard with made-up pages. No media was bought or delivered. No spend occurred.
- Fixed example inventory
- Five made-up offers, each in a different state.
- Buyer-controlled policy
- Require the label, prefer it, or ignore it.
- Simulated lifecycle
- The usual buying steps, with no real purchase.
| Buyer policy | Signed offers | Unproven or fake offers | Offer picked |
|---|---|---|---|
| Require the label | Stay in | Left out | Northfield Sports Daily, signed |
| Prefer it | Stay in | Stay in | Northfield Sports Daily, signed |
| Ignore it | Stay in, not checked | Stay in, not checked | Syndicated Reseller Offer, the fake |
No login? Walk through the Authorized Supply demo in your browser.
For engineers
Show the technical detailThe module behavior and the exact OpenRTB fields it adds.
The module attaches imp.ext.c2pa to each eligible impression in the OpenRTB request. The whole object is at most 1,024 bytes. GPID and source.ext.schain keep their normal meaning.
- Before the auction. The publisher signs the page at publication. We validate the C2PA label and issue a signed attestation for that page.
- In the auction. Prebid.js looks the page up in a signed edge dataset. Prebid Server and partners use a signed dataset installed on their own servers. No call reaches our origin during the auction.
- At the buyer. SSPs and DSPs keep the object byte for byte. They may verify the JWS locally against our published keys and their own trust policy.
Every path fails open. A missing, stale, revoked, expired or malformed record removes only the verified label or deal eligibility; the ordinary auction goes on. Endpoints are in the API documentation.
"imp": [{
"id": "1",
"ext": {
"gpid": "/1234/home/top",
"c2pa": {
"v": 1,
"id": "epa_01",
"ref": "https://api.encypher.com/api/v1/proof/YsZqel3X...",
"att": "eyJhbGciOiJFUzI1NiIs..."
}
}
}]Shortened. The full JWS is at most 960 characters.
v- Protocol major version, the integer 1. Version 1 rejects unknown fields.
id- A short attestation identifier, up to 32 characters. It also joins outcomes to exposures in reports.
ref- A link, up to 96 characters, to the provenance record anyone can fetch. A link alone is not trust.
att- A compact ES256 JWS, up to 960 characters. Its signed claims carry the issuer, the exact publisher domain, the URL, content and manifest digests, the expiry and the publisher's declaration. Nothing outside the signature counts.
The record carries no manifest body, certificate chain, article text, user ID, cookie or score. The publisher's human_declared label is only what the publisher declared. It is not proof that a person wrote the page.
The official C2PA Conforming Products List records Encypher as a conformant generator product at assurance Level 1, with generation and validation coverage across 20 media types (conformance dated May 26, 2026). Encypher's claim-signing and timestamp authorities appear on the official C2PA Trust Lists.
See our trust record.
Create. Mark. Endure.
Bring signed pages to your auctions. Tell us which side of the trade you work on, and we will show you the path that fits.