docs: add Base Verify Onchain guide#1728
Conversation
✅ Heimdall Review Status
|
08bb4ee to
8b9cef7
Compare
| **Base Verify Onchain enforces both directly in your contract.** The Base Verify backend signs a short-lived [EIP-712](https://eips.ethereum.org/EIPS/eip-712) verification that your contract checks in the same transaction as a deposit, trade, mint, or reward. No backend at claim time, and your contract never learns who the user is: | ||
|
|
||
| - **Sybil resistance** comes from the `identityHash`. The same real-world identity always produces the same hash for your contract, regardless of which wallet it uses, so your contract counts each real person once. | ||
| - **Quality gating** comes from your contract's policy. You declare a `provider` and `conditions` (for example, X followers ≥ 10,000 or an active Coinbase One membership); Base checks the user's real credential against them and only signs when they pass. |
There was a problem hiding this comment.
Quality Gating doesnt feel like the right term. I would lean towards something like "Policy Gating"
There was a problem hiding this comment.
Good call
Renamed it to "Policy gating" throughout (title, description, and the concept bullet), tying it to the contract's declared policy.
d00e2b2 to
dcdc04c
Compare
|
Review Error for kushagras481 @ 2026-07-22 00:32:52 UTC |
|
|
||
| **Base Verify Onchain lets your smart contract enforce "one real person, once" and gate on real-world traits, like an active Coinbase One membership. The check runs in your contract, so you don't run a verification backend.** Base signs a short-lived verification your contract checks in the same transaction as a claim, deposit, or vote. | ||
|
|
||
| Live on Base Sepolia (testnet-only for now) while we gather feedback. Try the [live demo](https://base-verify-onchain-demo.vercel.app/), then send feedback through the [interest form](https://forms.gle/WTcuWyKkvUV6gGik6). |
There was a problem hiding this comment.
usually we put callouts like this in a component for more visual emphasis
There was a problem hiding this comment.
Good call
Wrapped the Base Sepolia / feedback line in a <Note> callout.
33c63a4 to
419d311
Compare
| - **Sybil resistance** comes from the `identityHash`. The same real-world identity always produces the same hash for your contract, regardless of which wallet it uses, so your contract counts each real person once. | ||
| - **Quality gating** comes from your contract's policy. You declare a `provider` and `conditions` (for example, X followers ≥ 10,000 or an active Coinbase One membership); Base checks the user's real credential against them and only signs when they pass. | ||
|
|
||
| **Example use cases:** |
There was a problem hiding this comment.
I don't think this is relevant. We already talk about the use cases in the previous bulletpoints. I'd remove this "Example use cases" section entirely
There was a problem hiding this comment.
Good call
Removed the "Example use cases" section entirely.
|
|
||
| ### Verification | ||
|
|
||
| A short-lived object signed by Base that your contract checks through the `SignerRegistry`. It is signed as EIP-712 typed data and contains: |
There was a problem hiding this comment.
Can you please hyperlink to these contracts if they're open sourced somewhere?
There was a problem hiding this comment.
The contracts aren't open-sourced on a public repo yet, so there's nowhere public to link. The deployed SignerRegistry is viewable (verified source) via the Basescan address already linked in the table. I'll add source links once the contracts repo is public.
| description: "Enforce Sybil resistance and quality gating inside any Base contract. Base signs a short-lived verification your contract checks in the same transaction as a claim, deposit, or vote, so one real identity counts once and only wallets that meet your bar can participate." | ||
| --- | ||
|
|
||
| ## TL;DR |
There was a problem hiding this comment.
Please call this something else not TL;DR, "Introduction" or "Summary"
There was a problem hiding this comment.
Done
Renamed the section to "Summary".
|
|
||
| **Base Verify Onchain lets your smart contract enforce "one real person, once" and gate on real-world traits, like an active Coinbase One membership. The check runs in your contract, so you don't run a verification backend.** Base signs a short-lived verification your contract checks in the same transaction as a claim, deposit, or vote. | ||
|
|
||
| Live on Base Sepolia (testnet-only for now) while we gather feedback. Try the [live demo](https://base-verify-onchain-demo.vercel.app/), then send feedback through the [interest form](https://forms.gle/WTcuWyKkvUV6gGik6). |
|
|
||
| ### Eligibility is enforced by Base | ||
|
|
||
| Conditions are read from your contract onchain, never taken from the user. Base evaluates them against the user's real stored credential and only signs when they pass, so a user cannot strip or fake a condition to get a verification they are not entitled to. |
There was a problem hiding this comment.
What does "Base evaluates them" and "enforced by Base" mean? Is it Base Chain? or something else? Can you please be more precise? I think it's best to talk about the underlying mechanism
There was a problem hiding this comment.
Good catch
"Base Verify" here means the Base Verify backend, the off-chain signer service, not Base Chain. Reworded the section to say so and to spell out the mechanism: it reads your contract's policy onchain via eth_call, evaluates it against the user's stored credential, and signs only when they pass.
583c7ca to
1d85700
Compare
Add an Apps guide for Base Verify Onchain, which extends Base Verify's Sybil resistance and policy gating to enforcement inside a smart contract. Base Verify signs a short-lived EIP-712 verification the contract checks via the SignerRegistry and dedupes on identityHash. Covers the summary/integration steps, core concepts, the claim flow, a consumer contract example, the POST /v1/onchain_verifications API, supported providers/conditions, and the security model. Registers the page in docs.json under Apps > Guides.
1d85700 to
09b5c67
Compare
What changed? Why?
Adds a new Base Account guide,
Verify Users Onchain, covering Base Verify Onchain: the extension of Base Verify to enforcement inside a smart contract. It carries Base Verify's two use cases onchain:identityHash(one real identity, one claim, across wallets), which the consumer contract dedupes on.provider+conditions, e.g. X followers >= 10,000 or an active Coinbase One membership), which Base checks against the user's real credential before signing.Base signs a short-lived EIP-712 verification that the contract checks through the
SignerRegistry, with no backend at claim time and without learning who the user is.The guide covers:
identityHash, policy (provider + conditions), and how eligibility is enforced by BaseBaseVerifyConsumerplus the frontend SIWE + fetch + claim stepsPOST /v1/onchain_verificationsAPI reference and error handlingIt pairs with the existing
Verify Social Accountsguide (offchain) and is registered next to it indocs.json.Notes to reviewers
84532); the guide states this and uses the deployed Base SepoliaSignerRegistryand example consumer addresses.docs/base-account/guides/verify-onchain.mdx; navigation entry added todocs/docs.json.How has it been tested?
docs.jsonvalidated as JSON. Content and code examples were cross-checked against the shippedSignerRegistry/BaseVerifyConsumercontracts and the backendonchain_verificationsendpoint.