惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
博客园_首页
博客园 - 【当耐特】
V
Visual Studio Blog
博客园 - 叶小钗
月光博客
月光博客
美团技术团队
J
Java Code Geeks
小众软件
小众软件
Y
Y Combinator Blog
博客园 - Franky
Martin Fowler
Martin Fowler
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
Microsoft Security Blog
Microsoft Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Ghost Signature: Cryptographic Receipts for AI Output (Ed...
Anton Fredri · 2026-05-12 · via DEV Community

TL;DR

I built a tiny API that lets your AI agent cryptographically sign every output with Ed25519, so anyone can verify "yes, this came from agent X at time Y, unmodified" — without trusting you, me, or any platform. Public verify endpoint, free 20 signs/month, no SDK. Try it on RapidAPI.


The "did AI write this?" arms race is the wrong question

Every week another startup launches an "AI detector". Every week another paper shows they're 60% accurate at best, and they flag human writing as AI all the time.

The whole approach is backwards. You can't reliably reverse-engineer authorship from text alone — the signal just isn't there once the words are on the page.

But you can solve the inverse: let the author prove authorship at the moment of generation. That's what cryptographic signatures have done for code (sigstore), for emails (DKIM), for software updates (Ed25519 everywhere) for years.

So I built it for AI output.


Ghost Signature

Three endpoints. That's the whole API.

  • POST /sign → sign a piece of content (private, your key)
  • GET /verify → verify a signature (public, anyone)
  • GET /jwks → published public keys (rotation-aware)

Your agent signs at generation time. Anyone — recipient, journalist, fact-checker, downstream model — hits /verify and gets a yes/no with the signing agent's ID and timestamp. No login required to verify.


Signing in 2 lines

import requests

sig = requests.post(
    "https://ghostsignature.p.rapidapi.com/sign",
    headers={"X-RapidAPI-Key": "YOUR_KEY"},
    json={"agent_id": "research-bot-1", "content": output_text}
).json()

# attach sig["signature"] + sig["kid"] to your output

Enter fullscreen mode Exit fullscreen mode

Response:

{
  "agent_id": "research-bot-1",
  "kid": "rb1-2026-05",
  "signature": "MEUCIQDx...",
  "signed_at": "2026-05-12T08:14:00Z",
  "alg": "Ed25519"
}

Enter fullscreen mode Exit fullscreen mode

Attach the three fields to your message — in metadata, a footer, an HTTP header, wherever.


Verifying from anywhere (no auth)

curl "https://ghostsignature.p.rapidapi.com/verify?\
agent_id=research-bot-1&\
kid=rb1-2026-05&\
signature=MEUCIQDx...&\
content=..."

Enter fullscreen mode Exit fullscreen mode

Response:

{
  "valid": true,
  "agent_id": "research-bot-1",
  "signed_at": "2026-05-12T08:14:00Z",
  "revoked": false
}

Enter fullscreen mode Exit fullscreen mode

If anyone changed a single character → valid: false. If you rotated keys and revoked the old one → revoked: true with the original signing time still intact (soft revocation — old signatures stay verifiable as historical, just flagged).


Why Ed25519 + JWKS + soft revocation

  • Ed25519 — fast, small signatures (64 bytes), no parameter footguns like ECDSA. Same scheme SSH and Signal use.
  • JWKS with kid — your agent can rotate keys monthly without breaking old signatures. Each signature carries the kid that signed it; verifier looks up the right public key automatically.
  • Soft revocation — when a key is compromised, you mark it revoked but old signatures still verify as historical. You don't lose the audit trail; you just flag everything signed after the suspected breach.

What it's actually good for

  • AI-generated journalism / reports — readers can verify "this paragraph came from our verified research agent, not edited"
  • Agent-to-agent trust — downstream agent verifies upstream agent's output before acting on it
  • Audit logs — sign every decision your agent makes, keep an immutable provenance trail
  • Disclosure compliance — EU AI Act + similar regs are heading toward "label AI output". A signature is the strongest possible label.

It does not stop someone from copy-pasting your text and removing the signature. That's the point — absence of signature means "unverified", presence means "provably from this agent". Same trust model as PGP-signed emails.


Pricing

  • Free — 20 signs/month (verify is always free + public)
  • PRO — $29/month, 50,000 signs
  • ULTRA — $99/month, 250,000 signs

All hard-limited. No surprise bills.


Try Ghost Signature on RapidAPI

Built solo as part of a 5-API micro-SaaS family (fyrnity.com/tools). Feedback welcome — especially from people running agents in production who've thought about provenance.