Catalogue audit: Sample catalogue

Sample. This is a real report from Bakau's audit, run over a small catalogue we assembled from public-domain photographs on Wikimedia Commons. The copies, crops and metadata were made by us to show what an audit finds; every name in the metadata is fictional. The photographers are credited under 'Where these images come from'.

Archive audits · This report as CSV · As JSON, with proofs · Try it on your own images

Generated 2026-10-06T00:49:48+00:00 · report format 1 · 18 images. Evidence from the files themselves, not a finding about who owns them, and not legal advice.

Summary

18images read
8groups of the same picture
2images with an identical file elsewhere
14images with a variant elsewhere
2images with no copy here
0unreadable files

Attribution coverage

Of 18 readable images:

Fields read: EXIF Artist and Copyright; IPTC By-line, Credit, Source and Copyright Notice; XMP dc:creator, dc:rights, photoshop:Credit and Source, xmpRights:UsageTerms and WebStatement, and the PLUS image creator, copyright owner and licensor names. Credit and Source say who supplied a picture, not who made it, so they are reported but never counted as a creator.

Flags

FlagImagesGroups
Could not be read as an image00
Too little detail to compare for variants (exact copies only)00
No creator named in the metadata61
No copyright or rights statement in the metadata71
Different creators named01
Different rights holders stated01
Attribution present on some copies, missing on others–2

Groups of the same picture

GroupFilesCreators namedRights holders statedFlags
G0001
  • masters/photo-01.jpg
  • web/photo-01-banner.jpg
How they were matched
  • web/photo-01-banner.jpg to masters/photo-01.jpg: matching keypoints (423), 100% of the aligned overlap agreeing; covers 49% of the first
Sample Photographer A (c) 2024 Sample Agency Attribution present on some copies, missing on others
G0002
  • masters/photo-02.jpg
  • exports/final_FINAL_photo-02.jpg
1 set(s) of identical files
How they were matched
  • exports/final_FINAL_photo-02.jpg to masters/photo-02.jpg: the same file
Sample Photographer B (c) 2024 Sample Agency
G0003
  • masters/photo-03.jpg
  • social/photo-03-flipped.jpg
How they were matched
  • social/photo-03-flipped.jpg to masters/photo-03.jpg: matching keypoints (1645), 100% of the aligned overlap agreeing, mirrored; covers 99% of the first
Sample Photographer A; Sample Photographer C (c) 2024 Sample Agency Different creators named
G0004
  • masters/photo-04.jpg
  • press/photo-04-caption.jpg
How they were matched
  • press/photo-04-caption.jpg to masters/photo-04.jpg: matching keypoints (834), 88% of the aligned overlap agreeing, rotated 90.0°; covers 99% of the first
Sample Photographer B (c) 2024 Sample Agency; (c) 2021 Another Sample Archive Different rights holders stated
G0005
  • masters/photo-05.jpg
  • web/photo-05-detail.jpg
How they were matched
  • web/photo-05-detail.jpg to masters/photo-05.jpg: matching keypoints (319), 100% of the aligned overlap agreeing, scale 0.8; covers 20% of the first
none none No creator named in the metadata
No copyright or rights statement in the metadata
G0006
  • masters/photo-07.jpg
  • web/thumbs/photo-07-thumb.jpg
How they were matched
  • web/thumbs/photo-07-thumb.jpg to masters/photo-07.jpg: perceptual hashes 2 bit(s) apart
Sample Photographer C (c) 2024 Sample Agency Attribution present on some copies, missing on others
G0007
  • masters/photo-08.jpg
  • press/photo-08-border.jpg
How they were matched
  • press/photo-08-border.jpg to masters/photo-08.jpg: matching keypoints (1023), 99% of the aligned overlap agreeing, scale 1.094; covers 100% of the first
Sample Photographer A (c) 2024 Sample Agency
G0008
  • masters/photo-09.jpg
  • print/photo-09-grey.jpg
How they were matched
  • print/photo-09-grey.jpg to masters/photo-09.jpg: perceptual hashes 0 bit(s) apart
Sample Photographer C (c) 2024 Sample Agency

Flagged images

Every image with a flag other than "too little detail". The full list, flagged or not, is in report.csv.

FileGroupCreators namedRights statedFlags
web/photo-01-banner.jpg G0001 No creator named in the metadata
No copyright or rights statement in the metadata
social/photo-03-flipped.jpg G0003 Sample Photographer C No copyright or rights statement in the metadata
press/photo-04-caption.jpg G0004 (c) 2021 Another Sample Archive No creator named in the metadata
masters/photo-05.jpg G0005 No creator named in the metadata
No copyright or rights statement in the metadata
web/photo-05-detail.jpg G0005 No creator named in the metadata
No copyright or rights statement in the metadata
masters/photo-06.jpg No creator named in the metadata
No copyright or rights statement in the metadata
web/thumbs/photo-07-thumb.jpg G0006 No creator named in the metadata
No copyright or rights statement in the metadata
press/photo-08-border.jpg G0007 Sample Photographer A No copyright or rights statement in the metadata

Provenance record

Every image's record in report.json is a leaf of a Merkle tree. Its root commits to all of them at once: change any record, add one or remove one, and the root no longer matches.

Merkle root (SHA-256, tree version 2, 18 leaves):
b706e7f77cff74aed324b11b24175ea9eadf8b0261bd963980865dd748d4da85

Filed through opentimestamps: out\anchors\b706e7f77cff74ae.ots-pending.json (filing saved as anchor.json).

Each asset in report.json carries its leaf hash and an inclusion proof against this root. A leaf is SHA-256 of 0x00 + the asset record as canonical JSON (sorted keys, no spaces, UTF-8), without leaf_sha256, proof, group and relation.

Where these images come from

OriginalSourceAuthorLicence
masters/photo-01.jpg"Hand-made art and design” sign (Unsplash).jpgPeter Miranda petermirandaCC0 1.0
masters/photo-02.jpg"Hello beautiful” sign on building (Unsplash).jpgIan Schneider goianCC0 1.0
masters/photo-03.jpg"Make art not war” mural (Unsplash pJu2NCjopwQ).jpgRandy Tarampi randytarampiCC0 1.0
masters/photo-04.jpg"My Life Through A Lens" 2016-07-06 (Unsplash).jpg"My Life Through A Lens" bamagalCC0 1.0
masters/photo-05.jpg"Together, we create!” on brick wall (Unsplash).jpg"My Life Through A Lens" bamagalCC0 1.0
masters/photo-06.jpg"wink” (Unsplash).jpgmarc liu notmarcliuCC0 1.0
masters/photo-07.jpg'Friendship alleys' in Yazd, Iran. (Unsplash).jpgSander van Dijk sandervdCC0 1.0
masters/photo-08.jpg(NOT A) Drone view of golden gate bridge (Unsplash).jpgChris Leipelt cleipeltCC0 1.0
masters/photo-09.jpg042217 (Unsplash).jpgOmair Khan omairkCC0 1.0
masters/photo-10.jpg06 (Unsplash).jpgAlvin Mahmudov alvinmahmudovCC0 1.0

Method and its limits

Your images stayed where they were. Each file was read, turned into digital fingerprints in memory, and let go. No image, thumbnail or copy was written, and nothing was sent anywhere except the 32-byte Merkle root, to the timestamping service.

Exact duplicates are files with equal ISCC codes, which include a hash of every byte: the same file, perhaps under another name.

Variants are the same picture in a different file: resized, re-encoded, cropped, rotated, mirrored, given a border or a caption, or re-saved with other metadata. Two methods find them. A perceptual hash of the whole image (or its centre square) within 2 of 64 bits, with a private grid of per-region hashes not contradicting it, catches resized and re-encoded copies. For the rest, a learned copy-detection descriptor (SSCD) proposes pairs that look like copies, and each pair is then checked geometrically: distinctive points are matched between the two images, a single scale-rotation-shift is fitted to them, and once one image is laid over the other, most of the area they share must agree. "How they were matched" under each group gives that evidence. Groups chain: if A matches B and B matches C, all three are one group.

This finds copies, not look-alikes. Two photographs of the same scene are different pictures and are usually not grouped, though two frames of a still scene taken moments apart can be, since they barely differ. Very small crops (under about a sixth of the picture), heavy retouching, perspective changes and collages can be missed. Images with too little detail (a plain backdrop, a blank scan) are matched as exact duplicates only.

Metadata can be wrong. It is copied with files, left over from templates and edited by anyone; this report quotes it as found and checks none of it. "Different creators named" means the names differ once case, punctuation and containment are set aside: two spellings of one name are flagged, and a person should look.

Evidence, not ownership. Nothing here says who owns an image or whether it may be licensed. Missing metadata does not mean an image is free to use, and present metadata does not prove a right. This is not legal advice.