diff --git a/docs/apps/guides/verify-onchain.mdx b/docs/apps/guides/verify-onchain.mdx index 4ed88e0d9..cd39f5f9d 100644 --- a/docs/apps/guides/verify-onchain.mdx +++ b/docs/apps/guides/verify-onchain.mdx @@ -109,7 +109,7 @@ Whatever your own contract stores or emits alongside a claim is public too. The Your policy is public and your claims are public, so anyone can pair the two. The Coinbase One example consumer declares `provider = "coinbase"` and the condition `coinbase_one_active eq true`, so every wallet in its `Claimed` log is publicly known to have held an active Coinbase One membership at claim time. An observer cannot tell which Coinbase account, but does learn that the wallet had one. -A narrower policy leaks more. Gating on `followers gte 10000` marks each claiming wallet as a large X account, while gating on `verified eq true` says much less. Your contract name and any action naming leak the same way. +The narrower your policy, the more a claim reveals. Gating on `followers gte 10000` marks each claiming wallet as a large X account, while gating on `verified eq true` says much less. The same applies to your contract name and any action naming. Because `identityHash` is scoped per contract, the same person claiming in two different contracts produces two unrelated hashes that observers cannot link. Within a single contract, every claim from that person shares one hash, which is exactly what makes the dedupe work.