Chapter 03

Verification

Proving an account with a code in the bio or a sign-in, and what gets bound on chain.

Two ways to prove an account, one on-chain result.

Bio code (every platform)

  1. Open Claim, pick the platform, enter the handle, and sign in or connect the wallet that should receive fees.
  2. The identity service issues a short code (person-xxxxx, valid 24 h) bound to that person and wallet.
  3. Paste the code anywhere in your bio (channel description on YouTube, "about" on Twitch) and press Verify.
  4. The service fetches your public profile, confirms the code, and captures the platform's stable account id.
  5. It signs the attestation; you send attest from the wallet. You may delete the code from your bio right away.

Sign-in (where the platform supports it)

Where a platform offers OAuth through Privy (X, YouTube via Google, Farcaster; TikTok and Instagram behind app review), you sign in with the platform instead. The identity service reads the handle and stable id from Privy's server API, never from the browser, then signs the same attestation.

PlatformSign-inBio codeStable id used for binding
Xyesprofile descriptionnumeric user id
YouTubeyes (Google)channel descriptionchannel id
TikTokafter app reviewprofile bioopen_id
Instagramafter app reviewprofile bioig user id
Snapchatnopublic profile biousername
Twitchnochannel descriptionuser id
Kicknochannel biochannel id
Farcasteryesprofile biofid

What gets bound

The attestation is Attestation(bytes32 personKey, bytes32 platformUserId, address wallet, uint256 deadline, uint256 nonce) signed under the EIP-712 domain person.fun / 1 for the escrow contract.

  • personKey = keccak256(platform, handle) - the coin is launched against this.
  • platformUserId - a hash of the platform's stable account id. After binding, the coin follows the account, not the handle: renames are harmless, and a new owner of the old handle inherits nothing.
  • nonce must equal the escrow's current bind nonce for the person, so a stale attestation cannot be replayed.

Rebinding

Lost the wallet? Verify again from a new one. The escrow allows a rebind only when the platformUserId matches the one already bound (IdentityMismatch otherwise). Bound persons are never swept.