Below is a demo airdrop claim gated by PoR. The check is real — your browser asks the Sui blockchain whether the claiming address holds a valid Proof-of-Real credential. Bots get a wall. Humans walk through.
This page runs the same check your app would. Off-chain for UX, on-chain for enforcement — same credential, same registry.
const por = new PorClient(); // testnet defaults bundled if (!(await por.isVerified(address, Level.DeviceHuman))) throw new Error('claim denied — no proof of real');
credential::require_verified(&cred, /* min_level */ 0, &clock);
This page queries the address's owned objects for a RealHumanCredential — straight from a public fullnode, no backend.
The credential must meet the required assurance level and be unexpired. Soulbound — it can't be bought or moved to a farm wallet.
Humans claim with one passkey tap (gasless, seedless). A farm pays a real cost per credential — climbing with the assurance level you require. That's the point.
Gate a claim, a quest, a vote, or a signup in a few lines. We'll help you integrate — it takes an afternoon.