APTOGON
ManifestDevelopersDonateVerify
⚑

For Developers

Add human verification to your app. REST API + WebSocket, compatible with any stack. Powers APTOGON Chat β€” the first human-only real-time messaging platform.

POST https://homosapience.org/api/verify/expression

Quick Start

Minimal integration β€” 3 steps

1Collect gesture events
// Collect pointer/touch events in browser (no SDK needed)
const events = []
canvas.addEventListener('pointermove', e => {
  events.push({
    x: e.offsetX / canvas.width,    // normalised 0–1
    y: e.offsetY / canvas.height,
    pressure: e.pressure || 0.5,
    timestamp_ms: Date.now(),
  })
})
2Send for verification
// No API key required β€” open API
const res = await fetch('https://homosapience.org/api/verify/expression', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ events, session_id: crypto.randomUUID() })
})
const { passed, did, confidence, expression_proof, tx_hash } = await res.json()
3Use HumanCredential + access Chat
if (passed) {
  // did = "did:key:z6Mk..." β€” anonymous W3C identifier
  // expression_proof β€” hash recorded on Aptos blockchain
  // confidence β€” 0.0–1.0 (threshold 0.78, typically 0.82–0.95)
  localStorage.setItem('hsi_did', did)

  // Optional: request HSI Bond β€” Gold Members vouch for this human
  // known_dids: DIDs of people who personally know this user (increases approval chance)
  await fetch('https://homosapience.org/api/bond/request', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      requester_did: did,
      expression_proof,
      confidence,
      known_dids: ['did:key:z6Mk...', 'did:key:z6Mk...'],  // optional
    })
  })

  // Access APTOGON Chat β€” human-only real-time messaging
  // WebSocket: wss://homosapience.org/api/chat/ws/agora
  const ws = new WebSocket('wss://homosapience.org/api/chat/ws/agora')
  ws.onmessage = e => console.log('Message:', JSON.parse(e.data))
}

API Reference

POST/api/verify/expression

Gesture verification. Returns HumanCredential.

Params: events[] Β· session_idReturns: passed Β· confidence Β· did Β· expression_proof Β· tx_hash
GET/api/verify/status

Verification status by DID.

Params: did (query)Returns: is_human Β· valid_until Β· bond_count
POST/api/bond/request

Create a bond request β€” 3 Gold Members will vouch for the new human.

Params: requester_did Β· expression_proof Β· confidenceReturns: request_id Β· status Β· approvals Β· needed
GET/api/bond/status/{id}

Poll bond request status. Poll every 2–5s until status = approved.

Params: request_id (path)Returns: status Β· approvals Β· needed Β· tx_hash
POST/api/bond/approve

Guarantor approves a bond request (Ed25519 signature required).

Params: request_id Β· approver_did Β· signature Β· timestampReturns: status Β· approvals Β· tx_hash (on threshold)
GET/api/chat/messages

Fetch recent messages from a chat room (public rooms require no auth)

Params: room (string), limit (int, default 50)Returns: Array of {id, sender_short, content, timestamp, trust_label, reactions}
POST/api/chat/upload

Upload a file to a room (max 10 MB). File is stored 5 days then auto-deleted.

Params: multipart/form-data: file, room, sender_shortReturns: {url, name, size, type, expires_at}
WS/api/chat/ws/{room}

WebSocket β€” real-time room stream. Connect and receive/send JSON messages.

Params: room: room id (e.g. "agora"). No auth required for public rooms.Returns: Bidirectional: {content, sender_short, trust_label, timestamp, reactions}
GET/api/verify/debug

Last verification attempts (for debugging).

Params: last=20 (query)Returns: attempts[] with gesture pattern and AI result

Features

πŸ”
Zero PII

Raw gesture coordinates never leave the browser. Only statistics go to the server.

🌐
W3C DID

Compatible with the did:key standard. Works with any identity system.

⛓️
On-chain proof

ExpressionProof hash recorded on Aptos testnet. Move contract in progress β€” mainnet coming soon.

β™Ώ
Accessibility

Accounts for motor impairments. People with tremors are never blocked.

⚑
Fast

Median 800ms. Gonka AI with fallback β€” works even when service is unavailable.

πŸ“‹
Verifiable Credential

W3C VC format. Signed with Ed25519. Expires in 30 days, auto-renewed.

Ready to integrate?

API is open β€” no key required. Contact us for enterprise integration.