Start Attesting
Claim your creative intent with ARR
Why Attest?
In the age of AI, proving you made something is harder than ever. ARR gives you a way to claim your creative intent—not for legal enforcement, but for social recognition.
OWNERSHIP
Establish your creative claim. Intent is authorship in the age of AI.
TRANSPARENCY
Show what tools you used. Honesty builds trust.
PORTABILITY
Your attestation travels with your work. No platform lock-in.
What to Include
An attestation captures the essential context of your creative act. Here's what you can include:
Your identifier. Can be a URL, a hash, or a public key. See privacy options below.
What you meant to create. A brief description of your creative vision.
Example: "Album cover exploring solitude in digital spaces"
What you used to create it. Be specific about the tool and version.
Example: "midjourney/6.1" or "stable-diffusion/xl"
When the attestation expires. Default is 5 years. Maximum is 25 years.
Nothing is permanent without renewal. You can always renew before expiration.
How to Attest
Choose the method that works best for your workflow:
ARR is designed for volume: set up once, then attest single files, whole folders, or use a drag-and-drop inbox. Read the full guide: CLI Quickstart.
Drag & Drop (Hot Folder)
# One-time setup
arr init
arr watch
# Then drag files into ~/ARR-Inbox
# PNG/JPEG => .attested copies, other files => .arr sidecars
Using the CLI
# Install the CLI from npm
npm install -g @allrightsrespected/cli@latest
# Guided setup (saves config to ~/.arr/config.json)
arr init
# Optional: interactive menu
arr
# Attest one file
arr attest "/path/to/artwork.png"
# Bulk attest a folder (PNG/JPEG only by default)
arr attest "/path/to/folder" --recursive
# Include everything (sidecars for non-images)
arr attest "/path/to/folder" --recursive --all
# Verify an existing attestation
arr verify "/path/to/artwork.png"
Using the SDK
// Install the SDK
npm install @allrightsrespected/sdk
// Use the SDK
import {
signAttestation,
embedAttestationInMetadata,
writeSidecar
} from '@allrightsrespected/sdk';
// Create an attestation
const attestation = {
version: 'arr/0.1',
id: crypto.randomUUID(),
created: new Date().toISOString(),
creator: 'https://yoursite.com/@you',
intent: 'Poster design for climate campaign',
tool: 'midjourney/6.1',
revocable: true
};
// Sign it with your private key
const signed = signAttestation(attestation, privateKeyPem);
// Embed in PNG/JPEG metadata, otherwise write a sidecar file
const output = embedAttestationInMetadata(imageBuffer, signed);
await writeSidecar('./artwork.png', signed);
Privacy Options
You choose how much to reveal. ARR supports multiple levels of privacy:
IDENTIFIED
Link directly to your profile or website. Anyone can see who made this.
PSEUDONYMOUS
Use a hash-based identifier. Linkable across works, but not to your real identity.
ANONYMOUS
Use a unique key per work. Verifiable, but completely unlinkable.
ARR is a social protocol, not identity verification. You can attest anonymously. The signature proves control of a key, not who you are.
Example Attestation
Here's what a complete attestation looks like:
{
"attestation": {
"version": "arr/0.1",
"id": "550e8400-e29b-41d4-a716-446655440000",
"created": "2026-01-30T10:30:00Z",
"creator": "hash:sha256:7f3a9b2c4d5e6f...",
"intent": "Poster design for climate awareness campaign",
"tool": "midjourney/6.1",
"upstream": [],
"expires": "2031-01-30",
"revocable": true
},
"signature": "ed25519:kF2h9Jx3mN7pQrSt8vWxYz..."
}
This attestation is embedded directly in the file's metadata. It travels with the work wherever it goes.