APTOGON
ManifestDevelopersDonateVerify

Для разработчиков

Add human verification to your app with a drop-in snippet. Create a key in the console, embed the verifier, and confirm each session server-side with your secret key.

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

Быстрый старт

Минимальная интеграция — 3 шага

1Get your API keys
// In the APTOGON console (/console): create a key, then verify your domain.
// pk_live_…  — publishable key, safe to ship in the browser
// sk_live_…  — secret key, server-side only (shown once at creation)
2Drop in the verifier (browser)
<!-- Declarative: renders a "Verify you're human" button -->
<script src="https://homosapience.org/embed/v1/aptogon.js"
        data-aptogon-key="pk_live_…"></script>
<div data-aptogon-verify data-on-success="onHuman"></div>

<script>
  // …or call it programmatically (opens the APTOGON signer popup):
  async function verify() {
    const { token, trust_band } = await window.Aptogon.verify({
      publishableKey: 'pk_live_…',
    })
    // send `token` to your backend to confirm it
    await fetch('/my/confirm', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ token }),
    })
  }
</script>
3Confirm server-side (secret key)
// On YOUR server — never expose sk_live_ to the browser
const res = await fetch('https://homosapience.org/api/embed/verify', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer sk_live_…',
  },
  body: JSON.stringify({ token }),
})
const { human, did_hash, trust_band } = await res.json()
if (human) {
  // verified, unique human — trust_band ∈ low | medium | community | high
  // did_hash is anonymous (no link to the user's real identity)
}

API Reference

POST/api/embed/challenge

Start a verification — returns a one-time nonce for your publishable key + origin. aptogon.js calls this for you; you rarely call it directly.

Params: publishable_key · originReturns: nonce · expires_in
POST/api/embed/assert

The signer popup proves the user controls a verified DID and returns a short-lived token. Handled by aptogon.js inside the popup.

Params: publishable_key · nonce · did · signatureReturns: token · trust_band
POST/api/embed/verify

Server-to-server: redeem the token with your SECRET key to confirm a verified human. This is the billable call — never expose sk_live_ in the browser.

Params: Authorization: Bearer sk_live_… · tokenReturns: human · did_hash · trust_band · issued_at
GET/api/verify/status

Look up the verification status of a DID.

Params: did (query)Returns: is_human · valid_until · bond_count

Возможности

🔐
Zero PII

Сырые координаты жеста не покидают браузер. На сервер — только статистика.

🌐
W3C DID

Совместим со стандартом did:key. Работает с любой системой идентификации.

⛓️
On-chain proof

ExpressionProof-хеш записывается в Aptos testnet. Move-контракт в разработке — mainnet скоро.

Доступность

Учитывает моторные нарушения. Люди с тремором никогда не блокируются.

Быстро

Медиана 800ms. Gonka AI с fallback — верификация работает даже при недоступности сервиса.

📋
Verifiable Credential

W3C VC формат. Подписан Ed25519. Expires в 30 дней, обновляется автоматически.

Готов интегрировать?

Create a key in the console to get started. Contact us for higher quotas or enterprise integration.