Open Protocol

Proof of Personhood for Dating

An open protocol for identity verification, trust, and compatibility. Built for any dating platform, AI agent, or social app.

How do you prove someone is real?

AI-generated profiles and bots are flooding every dating platform. Each app solves identity verification independently — fragmented trust, duplicated effort, and users who must re-verify everywhere. XO Protocol changes this.

Three Layers of Dating Trust

A composable stack. Use any layer independently, or combine them all.

Layer 1

Proof of Personhood

Onchain SBTs verify real humans. Liveness detection, social attestations, and trust scores — portable across any platform.

Layer 2

Trust & Reputation

Community-derived reputation tiers and engagement scores. No behavioral breakdown exposed — just composite trust signals.

Layer 3

Compatibility Intelligence

AI-computed compatibility between verified users. Privacy-preserving scores without exposing personal data.

Six Endpoints, One Standard

Standard REST API endpoints that any dating platform can implement. XO provides the reference implementation.

Identity

Onchain proof of personhood via Soul Bound Token. Photo verification, social attestations, and trust score — portable across platforms.

Compatibility

AI-computed compatibility scores between users. No names, photos, or personal details — just how well two people match.

Reputation

Reputation tier and score based on community engagement. No activity details or behavioral breakdown exposed.

Engagement

Single composite engagement score derived from conversation quality. No communication style profiling or personality data.

Profile

User-authorized access to self-disclosed preferences and interests. No private data — only what the user chose to share.

Newsfeed

Browse a connection's publicly shared posts. Only content the user chose to publish, accessed with their authorization.

Integrate in Minutes

Standard OAuth 2.0 + REST. If you've used Stripe or Twilio, you already know how this works.

1User authorizes your app via OAuth consent page
2Exchange the code for an access token
3Search compatible connections
4Browse a connection's newsfeed
quickstart.js
// 1. User authorizes via OAuth
const authUrl = "https://xoxo.space/oauth/authorize"
  + "?client_id=your_client_id"
  + "&redirect_uri=https://yourapp.com/callback"
  + "&scope=identity,connections,reputation,"
  + "social_signals,profile,newsfeed"
  + "&state=random123"
  + "&response_type=code";

// 2. Exchange code for token
const token = await fetch(
  "https://protocol.xoxo.space/protocol/v1/auth/token",
  {
    method: "POST",
    headers: {
      "X-API-Key": "your-api-key",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      grant_type: "authorization_code",
      code: authCode,
      client_id: "your_client_id",
      client_secret: "your_secret",
      redirect_uri: "https://yourapp.com/callback",
    }),
  }
);

// 3. Search compatible connections
const matches = await fetch(
  "https://protocol.xoxo.space/protocol/v1/connections/search",
  {
    headers: {
      "X-API-Key": "your-api-key",
      Authorization: `Bearer ${token.access_token}`,
    },
  }
);

// 4. Browse a connection's newsfeed
const feed = await fetch(
  `https://protocol.xoxo.space/protocol/v1/connections/${tmpId}/newsfeed`,
  {
    headers: {
      "X-API-Key": "your-api-key",
      Authorization: `Bearer ${token.access_token}`,
    },
  }
);

Open Standard, Not a Walled Garden

XO Protocol is designed to be adopted by any dating platform. XO provides the first implementation, but the protocol belongs to the ecosystem.

Platform-Agnostic

Any dating app can implement XO Protocol endpoints. Users verify once, trust everywhere.

Credibly Neutral

No single platform controls the protocol. SBTs are onchain, scores are portable, and the spec is open.

Reference Implementation

XO's live API serves as proof that the protocol works. Fork it, extend it, or build your own.

Privacy by Design

Privacy is built into the protocol spec, not just one implementation. Every adopter inherits the same guarantees.

OAuth 2.0 + PKCE

Users explicitly authorize each app. Supports both confidential and public clients with PKCE.

Ephemeral IDs

Real user IDs are never exposed. Connections return tmp_id tokens that expire in 24 hours.

Scoped Access

Each token is limited to the scopes the user approved. No scope creep, no hidden data access.

Built for the AI Agent Era

The social passport for AI agents. Portable identity, trust, and compatibility — credibly neutral, user-authorized.

Proof of Personhood

Privacy-preserving identity verification via onchain Soul Bound Tokens. Portable proof of personhood for dating platforms and AI agents.

AI Dating Coaches

Build agents that give personalized advice based on real compatibility scores, not generic tips.

MCP Servers

Give AI agents a social passport. Connect XO's trust scores, compatibility, and reputation to Claude, GPT, or any AI via MCP.

Install as AI Agent Skill

Add XO Protocol to your AI agent in one command. Works with Claude, ChatGPT, and 40+ MCP-compatible clients.

SDKnpm install @xo-protocol/sdk
ClawHubclawhub install xo-protocol
GitHubgit clone https://github.com/xo-protocol/xo-protocol.git

Frequently Asked Questions

Get Your API Key

Fill out the form below and we'll get back to you.