Don't trust us.Run the verifier.
Every Chainmail account gets a Solana wallet. Opt-in photo fingerprints are written as memos on-chain (devnet today), and an open-source verifier checks them without our servers.
Scams speak in your community's voice.
Impersonators copy founders, mods and support. Screenshots of “announcements” are edited and re-shared faster than they can be denied.
growth in crypto impersonation scams in 2025
Chainalysis, Jan 2026estimated stolen in crypto scams in 2025
Chainalysis, Jan 2026of web traffic in 2024 was automated
Imperva Bad Bot Report 2025 (vendor)Guesses, stripped data, and trust.
Discord is not private
Founder and investor talk sits on a server you do not control.
Screenshots lie
An edited screenshot looks the same as the real one.
Bots farm everything
Empty wallets join, spam and leave.
On-chain where it helps. Private where it matters.
Photo fingerprints go on-chain as memos anyone can read. Messages stay off-chain and end-to-end encrypted.
Wallet per account
Each account derives a Solana wallet.
Readable memos
chainmail:img memos are plain on-chain data.
Private coordination
Encrypted 1:1 and group messages.
No backend trust
The verifier needs no Chainmail server.
What ships today, and what is next.
On-chain photo memos
SPL Memo records each stamp. Devnet today; mainnet in development.
Open verifier
TypeScript, no backend. Frozen test vectors catch drift.
import { verifyPhoto, summarizePhoto } from "@chainmail/verifier";
const bytes = await Bun.file("IMG_2048.JPG").bytes();
const report = verifyPhoto(bytes);
console.log(summarizePhoto(report));
// → Chainmail-verified: these bytes match the original stamp.
Encrypted groups
Sender keys with XChaCha20-Poly1305.
Your phone
ed25519 · on device
3f9a…c1e0 7b2d…server sees ciphertext
Their phone
ed25519 · on device
Gated chats
Group admins can require members to hold an NFT or prove wallet control before they join. The server enforces it.
Example brand. Verified profiles are not live yet.
Four steps.
Sign up
Email or Google. A wallet is derived on the device.
Link Phantom
Optional. Use your own wallet instead.
Stamp and send
Photo memos go on-chain.
Verify
Anyone runs the open verifier.
Where a stamp helps.
Every result states its limits.
- The JPEG has not changed since it was stamped.
- The fingerprint matches a record on Solana, with its time. Devnet today; mainnet is in development.
- Anyone can repeat the check with open-source code.
- That the photo was taken in Chainmail. Imported photos can be stamped too.
- Who took the photo, or who sent it.
- That a camera made it rather than an AI model.
- That the scene was honest when the photo was taken.
See it on your flow.
Coming soon to the App Store. For teams, we set up a demo on your own photos.