> ## Documentation Index
> Fetch the complete documentation index at: https://docs.credprotocol.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Identity Attestations

> Get identity attestations for an Ethereum address

## Overview

Returns identity attestations and verification data for the specified Ethereum address, including ENS domains, Gitcoin Passport, POAPs, and other identity signals.

<Info>
  Identity data is useful for verifying the legitimacy of an address and can boost credit scores.
</Info>

## Authentication

This endpoint supports two authentication methods:

| Method       | Header                               | Cost        |
| ------------ | ------------------------------------ | ----------- |
| API Token    | `Authorization: Bearer YOUR_API_KEY` | 1 Cred Unit |
| x402 Payment | `X-PAYMENT: <signed_payment>`        | \$0.01 USDC |

<Tip>
  **x402 payments** allow instant, accountless access. Pay per request with USDC on Base — no signup required.
  [Try it live →](https://credprotocol.com/try)
</Tip>

## Path Parameters

<ParamField path="address" type="string" required>
  Ethereum address or ENS name (e.g., `vitalik.eth` or `0x742d35Cc6634C0532925a3b844Bc9e7595f0Ab17`)
</ParamField>

## Response

<ResponseField name="address" type="string">
  The resolved Ethereum address (checksummed)
</ResponseField>

<ResponseField name="ens" type="object">
  ENS (Ethereum Name Service) data
</ResponseField>

<ResponseField name="ens.primary_name" type="string">
  Primary ENS name set for this address
</ResponseField>

<ResponseField name="ens.owned_names" type="array">
  List of ENS names owned by this address
</ResponseField>

<ResponseField name="gitcoin_passport" type="object">
  Gitcoin Passport verification data
</ResponseField>

<ResponseField name="gitcoin_passport.score" type="number">
  Gitcoin Passport humanity score (0-100)
</ResponseField>

<ResponseField name="gitcoin_passport.stamps" type="array">
  List of verified stamps/credentials
</ResponseField>

<ResponseField name="poaps" type="object">
  POAP (Proof of Attendance Protocol) data
</ResponseField>

<ResponseField name="poaps.count" type="integer">
  Total number of POAPs owned
</ResponseField>

<ResponseField name="poaps.events" type="array">
  List of POAP events attended
</ResponseField>

<ResponseField name="social" type="object">
  Social profile links (if available)
</ResponseField>

<ResponseField name="cached" type="boolean">
  Whether the response was served from cache
</ResponseField>

## Data Sources

| Source           | Description                                |
| ---------------- | ------------------------------------------ |
| ENS              | Ethereum Name Service domains              |
| Gitcoin Passport | Sybil resistance and identity verification |
| POAPs            | Proof of Attendance Protocol tokens        |
| Lens Protocol    | Decentralized social profile               |
| Farcaster        | Web3 social network profile                |

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.credprotocol.com/api/v2/identity/address/vitalik.eth/attestations" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.credprotocol.com/api/v2/identity/address/vitalik.eth/attestations', {
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY'
    }
  });

  const identity = await response.json();
  console.log(`ENS: ${identity.ens.primary_name}`);
  console.log(`Passport Score: ${identity.gitcoin_passport.score}`);
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://api.credprotocol.com/api/v2/identity/address/vitalik.eth/attestations',
      headers={'Authorization': 'Bearer YOUR_API_KEY'}
  )

  identity = response.json()
  print(f"ENS: {identity['ens']['primary_name']}")
  print(f"Passport Score: {identity['gitcoin_passport']['score']}")
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
    "ens": {
      "primary_name": "vitalik.eth",
      "owned_names": ["vitalik.eth", "vbuterin.eth"],
      "avatar": "https://metadata.ens.domains/mainnet/avatar/vitalik.eth"
    },
    "gitcoin_passport": {
      "score": 42.5,
      "stamps": [
        {
          "provider": "Google",
          "verified": true
        },
        {
          "provider": "Twitter",
          "verified": true
        },
        {
          "provider": "GitHub",
          "verified": true
        }
      ]
    },
    "poaps": {
      "count": 156,
      "events": [
        {
          "name": "ETHDenver 2024",
          "date": "2024-02-29"
        },
        {
          "name": "Devcon VI",
          "date": "2022-10-11"
        }
      ]
    },
    "social": {
      "lens": "vitalik.lens",
      "farcaster": "vitalik.eth"
    },
    "cached": false,
    "timestamp": "2024-01-15T10:30:00Z"
  }
  ```

  ```json 404 theme={null}
  {
    "detail": "No identity data found for this address"
  }
  ```
</ResponseExample>

## Use Cases

<AccordionGroup>
  <Accordion title="Sybil Resistance">
    Use Gitcoin Passport scores to verify that an address represents a unique human, reducing the risk of sybil attacks in airdrops or governance.
  </Accordion>

  <Accordion title="User Verification">
    Display ENS names and social profiles to provide a more human-readable identity for wallet addresses in your application.
  </Accordion>

  <Accordion title="Community Engagement">
    Check POAP holdings to verify attendance at events or membership in communities.
  </Accordion>
</AccordionGroup>

## Performance

* **Response Time**: Typically 1-3 seconds
* **Caching**: Results cached for 5 minutes per address
