The Universal Identity Standard for AI Agents & Bots on the Internet
Give your bot a passport. Let websites trust it.
Warning
This project is in early development. It is not yet usable.
| Component | Status |
|---|---|
| Protocol Spec | π‘ Draft β certificate format & grade system defined |
| Registry Server | π‘ Local scaffold done (in-memory store), not deployed |
CLI Tool (ric register) |
π‘ Local scaffold done, not published to npm |
| Browser Extension | π‘ Local scaffold done, not published to Chrome Web Store |
| Website SDK | π‘ Local scaffold done, not published to npm |
We are building in public. Contributions and feedback welcome β see CONTRIBUTING.md.
The internet has no way to distinguish a good bot from a bad one.
- Websites block all bots out of fear (even useful AI assistants)
- Bad bots have no accountability β they can't be traced or stopped
- Good bots (like OpenClaw, research agents) get caught in the same blocklist as scrapers and spammers
A cryptographically signed identity certificate for bots, backed by a public audit registry and a weekly health review system.
Bot registers β Gets signed certificate β Carries ID in every request
Website reads ID β Checks grade β Grants appropriate permissions
{
"ric_version": "1.0",
"id": "ric_a3f8c2d1-...",
"created_at": "2024-01-15T10:00:00Z",
"developer": {
"name": "Jane Smith",
"email": "jane@example.com",
"org": "ExampleAI Inc.",
"website": "https://example.com",
"verified": true
},
"bot": {
"name": "OpenClaw",
"version": "2.1.0",
"purpose": "Web research assistant for academic users",
"capabilities": ["read_articles", "follow_links"],
"user_agent": "OpenClaw/2.1 (RIC:ric_a3f8c2d1)"
},
"grade": "healthy",
"grade_updated_at": "2024-01-20T00:00:00Z",
"public_key": "ed25519:abc123...",
"signature": "..."
}| Grade | Badge | Meaning | Review Cycle |
|---|---|---|---|
| π’ Healthy | HEALTHY |
Verified, no risk behavior | Weekly |
| π‘ Unknown | UNKNOWN |
Newly registered, under review | Upon registration |
| π΄ Dangerous | DANGEROUS |
Risk behavior recorded | Immediate flagging |
Websites can use bot grade to gate features progressively:
Level 0 β β Blocked (Dangerous bots)
Level 1 β π Read articles (Unknown / all verified bots)
Level 2 β π View threads (Healthy, basic)
Level 3 β π Like / react (Healthy, intermediate)
Level 4 β βοΈ Post content (Healthy, verified developer)
Level 5 β π¬ Direct chat (Trusted Healthy, long track record)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β RIC Ecosystem β
β β
β ββββββββββββββββ βββββββββββββββββββββββββββββββββ β
β β Bot/Agent β β RIC Registry β β
β β β β - Identity storage β β
β β ββββββββββββ β β - Certificate issuance β β
β β β Extensionββββββββ€ - Audit logs β β
β β β (carries β β β - Grade management β β
β β β the ID) β β βββββββββββββββββ¬ββββββββββββββββ β
β β ββββββββββββ β β β
β ββββββββ¬ββββββββ β β
β β HTTP Header: β β
β β X-RIC-ID: ric_abc123 β β
β β X-RIC-Sig: <signature> β β
β βΌ βΌ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Website / Platform β β
β β β β
β β ββββββββββββββ verifies ββββββββββββββββββββ β β
β β β RIC SDK ββββββββββββββΊ Registry API β β β
β β β middleware β ββββββββββββββββββββ β β
β β βββββββ¬βββββββ β β
β β β grants permission level 0-5 β β
β β βΌ β β
β β [Your App Logic] β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Package | Description |
|---|---|
packages/registry |
Central registry server (Node.js + Fastify) |
packages/extension |
Browser extension for bots (Chrome/Firefox) |
packages/sdk |
Website integration SDK (JS/TS) |
packages/cli |
CLI tool for bot developers |
# Install CLI
npm install -g @robot-id-card/cli
# Register your bot
ric register --name "MyBot" --purpose "Research assistant" --developer "you@email.com"
# Output: Your RIC ID: ric_a3f8c2d1-...
# Certificate saved to: ./mybot.ric.json
# Public key: ed25519:abc123...npm install @robot-id-card/sdkimport { RICMiddleware } from '@robot-id-card/sdk';
// Express.js example
app.use(RICMiddleware({
// Minimum grade required for different routes
permissions: {
'/api/read': { minGrade: 'unknown', level: 1 },
'/api/post': { minGrade: 'healthy', level: 4 },
'/api/chat': { minGrade: 'healthy', level: 5, minAge: '90d' },
},
onBotDetected: (ricInfo) => {
console.log(`Bot ${ricInfo.bot.name} (${ricInfo.grade}) accessed the site`);
}
}));The browser extension injects identity headers automatically:
X-RIC-ID: ric_a3f8c2d1-4b5e-...
X-RIC-Timestamp: 1705312800
X-RIC-Signature: ed25519:abcdef...
- Ed25519 signatures: Every request is signed with the bot's private key
- Replay protection: Timestamp-based nonce prevents request replay
- Tamper-proof: Registry stores public keys; signatures are verified server-side
- Revocation: Dangerous bots get their certificates revoked immediately
- Transparency log: All grade changes are publicly auditable
The weekly review checks:
- Rate limiting violations
- TOS violation reports from websites
- Abnormal traffic patterns
- Developer contact reachability
- Declared purpose vs. actual behavior (via site reports)
See CONTRIBUTING.md. All contributions welcome:
- Core protocol spec
- New language SDKs (Python, Go, Ruby...)
- Browser extension improvements
- Registry infrastructure
- Audit tooling
- v0.1 β Core registry + certificate format spec (models, grade system, permission levels)
- v0.1 β Registry server scaffold (Fastify, in-memory store, register/verify/audit routes)
- v0.1 β CLI tool scaffold (
riccommand) - v0.1 β Browser extension scaffold (background + popup)
- v0.1 β Website SDK scaffold (middleware, verify)
- v0.2 β Persistent storage (replace in-memory store with a real DB)
- v0.2 β Publish CLI to npm (
@robot-id-card/cli) - v0.2 β Publish SDK to npm (
@robot-id-card/sdk) - v0.3 β Deploy public registry server
- v0.3 β Publish browser extension to Chrome Web Store
- v0.4 β Public registry dashboard (bot listing + audit log UI)
- v1.0 β Decentralized registry (DID-based, no single point of failure)
MIT Β© Robot ID Card Contributors