Why I built Veridenz to verify photos using Nostr

It has never been easier to edit a photo. AI can remove objects, replace backgrounds, generate new scenes, and make convincing changes in seconds.

That technology can be useful, but it creates a problem when an image is meant to document something that happened. How can anyone know the file has not been altered since it was taken?

That question led me to build Veridenz, an iPhone app that creates cryptographic witnesses for photos. I wanted a practical way to confirm that a file had remained unchanged without pretending the app could prove that everything shown in the image was true.

Veridenz is not trying to prove reality

People may ask whether Veridenz proves a photograph is “real.” The honest answer is no, because no app can reliably make that promise.

Someone could stage a scene, photograph misleading information, or point the camera at an AI-generated image displayed on another screen. Those are human problems rather than cryptographic ones.

Veridenz answers a narrower question: Has this exact image file changed since it was originally witnessed? Keeping the claim limited makes the result useful without promising something the technology cannot deliver.

How Veridenz works

When you take a photo with Veridenz, the app creates a cryptographic hash of the image. Think of that hash as a fingerprint generated from the contents of the file.

Even a tiny change to the photo should produce a different result. Veridenz signs the hash using a dedicated cryptographic identity, creating a witness that includes the signature, timestamp, and related information.

The app then publishes that witness to Nostr relays, creating an independently retrievable record that the witness existed at roughly that time. The timestamp is part of the signed event, so it cannot be changed later without invalidating the signature.

The original image remains stored inside Veridenz on your iPhone unless you choose to export or share it. The app publishes the cryptographic witness rather than the photo, allowing the record to be public while the image remains private.

Your photos stay separate from Apple Photos

Photos captured with Veridenz do not automatically appear in Apple’s Photos library. They remain inside the app instead of being mixed with vacation pictures, screenshots, memes, and everything else in your camera roll.

I wanted Veridenz to behave more like a private documentation vault than an ordinary camera app. Images related to property damage, completed work, contracts, deliveries, or insurance claims can stay together in one dedicated place.

This separation also gives users more control over sensitive photos. An image only enters the personal Photos library when the user deliberately exports or shares it.

Why Veridenz uses Nostr

Most people know Nostr as a decentralized social networking protocol, but social media is only one possible use. At its core, Nostr provides a way to publish cryptographically signed events to independent relays.

Veridenz publishes its witnesses to those relays rather than placing them in a private database that I control. Multiple relays can retain the same event, reducing the app’s dependence on one company or server remaining online.

The record can also be checked independently without relying on Veridenz to confirm its own work. A verification system is more convincing when the developer does not control the only copy of the witness.

Why you do not need a Nostr account

Veridenz should make sense even to someone who has never heard of Nostr. Users do not need to create an account, understand what an npub is, install another Nostr app, or manage keys themselves.

Nostr operates behind the scenes as part of the infrastructure. The experience remains focused on capturing a photo, creating a witness, and checking the file later.

Why Veridenz uses a separate identity

Existing Nostr users may wonder why Veridenz does not use their primary account. I do not think connecting a public or social identity to private documentation offers much benefit for most people.

A photo witness does not need access to a user’s profile, followers, messages, or reputation. Veridenz therefore creates a dedicated identity used only for signing witnesses.

Keeping the identities separate reduces risk. Someone who has used the same Nostr key across several apps for years could lose far more than access to Veridenz if that key were ever exposed.

A separate identity also improves privacy by avoiding an automatic connection between Veridenz activity and a public Nostr profile. That link does not exist unless the user deliberately reveals it elsewhere.

Where the private key lives

Veridenz generates its signing identity on the device and stores the private key in Apple’s Keychain. The key is not included in a published witness or uploaded to a server that I operate.

When iCloud Keychain is available, the identity may also become available on the user’s other trusted Apple devices. This avoids asking people to copy private keys into notes, screenshots, or other potentially unsafe places.

Most users should never need to see or handle the key. They receive the benefits of signed Nostr events without turning key management into another responsibility.

What verification actually proves

To verify a witnessed photo, the user selects the original image and its exported Veridenz proof file. The app recalculates the image hash, checks the cryptographic signature, and looks for the corresponding witness on Nostr.

When everything matches, Veridenz can confirm that the selected file is identical to the one originally witnessed. A modified file should produce a different hash and fail verification.

That result does not prove the scene was genuine, every statement about the image was accurate, or the photograph will be accepted as legal evidence. Veridenz confirms that the underlying file matches the earlier witness, and nothing more.

Who I built it for

I did not build Veridenz only for investigators or attorneys. I was thinking about ordinary situations where stronger documentation could become useful later.

Contractors could document completed work, while landlords and tenants could record the condition of an apartment. Homeowners might capture insurance damage, delivery workers could document drop-offs, and online sellers could photograph valuable items before shipping them.

The same idea could apply to vehicle damage, receipts, signed documents, repairs, and valuable belongings. These situations do not require expensive forensic software, but they can benefit from evidence that an image file has not changed.

Privacy came first

From the beginning, I wanted Veridenz to avoid becoming another cloud photo service. It does not need to collect or archive private images to create a useful record.

The original photo remains with the user, while its cryptographic witness is published to Nostr. This limits the personal data Veridenz handles and avoids creating a central library filled with sensitive images.

As AI makes image manipulation easier, people may increasingly want a practical way to show that a file has remained unchanged. Veridenz cannot answer every question about digital authenticity, but it can answer one important question with mathematics instead of trust.

That is what I built it to do, and I believe the narrow promise is part of its value. Veridenz does not claim to prove reality; it provides a way to verify that a witnessed photo file has not changed.

Download Veridenz on the App Store

Support independent tech journalism

NERDS.xyz is independently owned and operated. If you enjoy my coverage of Linux, AI, hardware, cybersecurity, and tech culture, consider supporting the site on Ko-fi.

Support NERDS.xyz
Written by

Brian Fagioli

Technology journalist and founder of NERDS.xyz

Brian Fagioli is a technology journalist and founder of NERDS.xyz. A former BetaNews writer, he has spent over a decade covering Linux, hardware, software, cybersecurity, and AI with a no nonsense approach for real nerds.

Leave a Comment