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リファレンス

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

機能

🔐
ゼロPII

生のジェスチャー座標はブラウザから出ません。統計のみがサーバーに送られます。

🌐
W3C DID

did:key標準に準拠。あらゆるIDシステムと連携。

⛓️
オンチェーン証明

Aptos上のMoveコントラクト。当社サーバー不要で検証 — 完全分散型。

アクセシビリティ

運動障害を考慮。震えのある人もブロックされません。

高速

中央値800ms。フォールバック付きGonka AI — サービス停止時も動作。

📋
検証可能クレデンシャル

W3C VCフォーマット。Ed25519署名。30日で期限切れ、自動更新。

統合する準備はできましたか?

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