KolTheia photo note
C2PA soft-binding algorithm com.ottxp.koltheia.photonote.1 · type: fingerprint · media: image
What it is
KolTheia seals photos when they are captured: the device signs the file, and every sealed file carries C2PA Content Credentials. Credentials prove the exact file, so they break on any change and are often stripped when a photo is shared. The photo note lets a changed copy (recompressed, resized, cropped, turned, photographed at a slant, or partly drawn over) be traced back to the sealed capture it came from, so its credential record can be recovered.
The note is a fingerprint: nothing is added to the picture. It is made by KolTheia when the photo is sealed and kept on KolTheia’s server with the capture’s record. The photo itself is not kept.
How the note is made
The sealed photo is scaled so its long side is 960 pixels. Two things are recorded:
- Distinctive points. ORB keypoints (positions and 32-byte binary descriptors) found after local contrast equalisation (CLAHE). Up to three of the strongest are kept in each cell of a 12 × 16 grid, at most 360 in all, so that any part of the picture that survives in a copy still holds several.
- Squares. 240 cells of a 12 × 20 grid, chosen by a secret per-capture pattern; for each, its brightness and colour as a 3 × 3 pattern and a sharpness value.
A note is under 20 KB. It is never published: not in the C2PA credential, not in KolTheia’s public log.
How a copy is matched
- The copy is scaled the same way, and its own ORB points are found (as is, and mirrored).
- For each stored note, points are paired by descriptor (nearest neighbour with a 0.8 ratio test). Each point of the copy may stand for only one stored point.
- Two geometric fits are tried: a turn-and-resize fit (RANSAC) and a full perspective fit (homography, MAGSAC++). A fit is accepted only if enough pairs agree with it (15 for the turn-and-resize fit, 10 for the perspective fit), those pairs are spread over at least 3 of the 16 regions of the original picture, and the fitted shape is plausible (not folded, not seen edge-on, not shrunk to a dot or blown up more than twelve times).
- The copy is put back into the original’s geometry and its squares are compared with the stored ones, after fitting a smooth brightness and colour change (so recompression and filters are told apart from content that was added or removed).
Measured on standard test pictures with drawn-over strokes (KolTheia’s published bench): unrelated pictures were never matched; a copy photographed at a slant was matched in 20 of 24 cases; with half of the picture drawn over, 12 to 20 of 24 depending on the angle; with nine tenths drawn over, none.
Resolution API
Base address: https://koltheia.ottxp.com/api/softbinding/v1, following the C2PA Soft Binding API.
GET /services/supportedAlgorithms— listscom.ottxp.koltheia.photonote.1.POST /matches/byContent— send the image as the request body (image/*); optionalalgandmaxResults(1–50). Returnsmatches, each with amanifestId(a KolTheia proof code) and asimilarityScore: the share of paired points that agree with the fit, from 0 to 100. KolTheia itself calls a match loose below 70, because a bent copy and a different photo of the same scene can then look alike. The image is read, compared and discarded; nothing from it is kept.GET /manifests/{manifestId}— the capture’s C2PA credential record (application/c2pa), as signed into the sealed file. Kept for photos sealed from 29 October 2026; it contains no thumbnail and no pixels./matches/byBindingis not supported: this fingerprint is matched by content only.
A match is a lead for a person to check, not proof that the copy is unchanged. To see what was changed, open the matched proof code on KolTheia’s Verify page with the copy.
Limits
- Photos only. Videos use a different note that is not part of this algorithm.
- With most of the picture covered or removed, too little is left to match.
- A different photo of the same scene (for example the next shot of a burst) can be matched; the score then falls in the loose range.
- A coarse, blocky picture can be rebuilt from a note’s squares, which is why notes are never published.
Contact: koltheia@ottxp.com.