> ## Documentation Index
> Fetch the complete documentation index at: https://base-a060aa97-docs-kb-gaps-devrel-821-privacy-identity-cust.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Base Verify API

> Use Base Verify APIs and contracts to prove verified account ownership, prevent duplicate participation, and enforce eligibility policies.

Base Verify lets users prove that they control verified accounts without exposing their credentials to your application. Use it to add Sybil resistance, prevent duplicate participation across wallets, and gate actions on verified traits.

## Choose an Integration

<CardGroup cols={2}>
  <Card title="Verify Social Accounts" icon="user-check" href="/sdks/base-verify/verify-social-accounts">
    Check verified account ownership and traits in your application backend.
  </Card>

  <Card title="Verify Users Onchain" icon="shield-check" href="/sdks/base-verify/verify-users-onchain">
    Enforce identity deduplication and eligibility policies directly in a smart contract.
  </Card>
</CardGroup>

## How the Integrations Differ

| | Verify Social Accounts | Verify Users Onchain |
| - | - | - |
| Enforcement | Your application backend | Your smart contract |
| Base surface | Base Verify REST API | Base Verify REST API and onchain contracts |
| Result | Verification token and traits | Signed `identityHash`, expiration, and signature |
| Best for | Gated application experiences, rewards, and backend-controlled claims | Contract-level claims, deposits, mints, votes, and other onchain actions |
| Application backend | Required | Not required at claim time |

Both integrations use a wallet-signed SIWE message as proof that the requester controls the wallet. Base Verify evaluates the requested provider or policy and returns only the verification data needed for the selected flow.

## Identity Attestation on Base Mainnet

Base Verify and Coinbase Verifications are separate products. Use this table to check which identity methods you can use on Base Mainnet today.

| Method | What your app receives | Base Mainnet status |
| - | - | - |
| [Verify Social Accounts](/sdks/base-verify/verify-social-accounts) | A verification token and traits returned to your backend. Nothing is written onchain. | Available. Requires an [API key](/sdks/base-verify/verify-social-accounts#prerequisites). |
| [Verify Users Onchain](/sdks/base-verify/verify-users-onchain) | A short-lived signed verification that your contract checks. | Not deployed on Base Mainnet. Runs on Base Sepolia only. |
| [Coinbase Verifications](https://github.com/coinbase/verifications) | [Ethereum Attestation Service (EAS)](/specifications/base-protocol/execution/predeploys#eas) attestations issued by Coinbase to a wallet address: Verified Account, Verified Country, and Verified Coinbase One. | Live on Base Mainnet. Contract addresses and schema IDs are listed in the [Coinbase Verifications repository](https://github.com/coinbase/verifications#contracts). |

Coinbase Verifications attestations are public onchain records tied to the recipient address. Base Verify returns a hashed identity instead, and the onchain `identityHash` differs for every contract, so identities cannot be correlated across apps.

<Note>
  Coinbase states that Coinbase Verifications attestations are informational and should not be relied on for legal, compliance, or contractual purposes. See the [Coinbase Verifications repository](https://github.com/coinbase/verifications) for the full terms.
</Note>

## Related Resources

<CardGroup cols={2}>
  <Card title="Authenticate Users" icon="key" href="https://docs.cdp.coinbase.com/coinbase-wallet/guides/authenticate-users">
    Connect Coinbase Wallet and authenticate users.
  </Card>

  <Card title="Sign and Verify Typed Data" icon="signature" href="https://docs.cdp.coinbase.com/coinbase-wallet/guides/sign-and-verify-typed-data">
    Collect and validate wallet signatures in your application.
  </Card>
</CardGroup>
