A common pair is a social account plus proof of human. Add
ownership-basic or wallet-risk when the threat model needs them.
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Combine account, social, and proof of human checks in one gate for stronger assurance than any single signal.
| Layer | Check | When |
|---|---|---|
| Social or work account | ownership-social or ownership-org-oauth | The linked identity most products need first |
| Human | proof-of-human | Bot resistance and fair access |
| Signed account | ownership-basic | A signed account check alongside the others |
| Wallet risk | wallet-risk | Payment flows and high-value access |
ownership-basic or wallet-risk when the threat model needs them.
import { defineGate } from '@proofable/sdk';
const layered = defineGate([
{ verifierId: 'ownership-social' },
{ verifierId: 'proof-of-human' },
]);
<VerifyGate
gate={layered}
onVerified={(result) => {
// Store result.qHash to prevent replay
}}
>
<button>Verify to continue</button>
</VerifyGate>
const result = await client.gateCheck({
gate: layered,
subject: { accountId: user.accountAddress },
});
if (!result.satisfied) throw new Error('Verification required');