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

# Wallet Identity - Domains

> The full, paginated .sol domain list for one wallet (a wallet can own 100k+). Domains are ordered shortest-first then alphabetical, so page 1 matches the domains preview from the single/multiple endpoints. Only wallets return domains.


<Tabs>
  <Tab title="Usage Note">
    <p><strong>The full, paginated <code>.sol</code> domain list for one wallet.</strong></p>
    <p>Where <code>single</code>/<code>multiple</code> return only a 20-domain preview, this endpoint returns <strong>every</strong> domain a wallet owns — a single wallet can hold 100k+ — so it is single-address and paginated. The response is <code>\{ address, total, offset, limit, domains }</code>, where <code>domains</code> is the requested page and <code>total</code> is the full count.</p>
    <p>Domains are ordered <strong>shortest-first then alphabetical</strong>, so <strong>page 1 (<code>offset=0</code>) equals the <code>domains</code> preview returned by the <code>single</code>/<code>multiple</code> endpoints</strong>. Domains are returned only for wallets — a CEX / protocol / token "owning" a <code>.sol</code> domain is SNS spam (anyone can point a domain's owner at any address), so those addresses return an empty list.</p>
  </Tab>

  <Tab title="Accessibility">
    <ul>
      <li>Lite</li>
      <li>Starter</li>
      <li>Premium</li>
      <li>Business</li>
      <li>Enterprise</li>
    </ul>
  </Tab>

  <Tab title="Chain Supported">
    <p><strong>Solana</strong></p>
  </Tab>
</Tabs>

<Accordion title="Response Field Definitions 🏷️" icon="fa-tags">
  <ul>
    <li><strong>address</strong> — the wallet the domains belong to.</li>
    <li><strong>total</strong> — the true number of <code>.sol</code> domains the wallet owns (across all pages).</li>
    <li><strong>offset / limit</strong> — the pagination window echoed back from the request.</li>
    <li><strong>domains</strong> — the requested page of domain names, ordered shortest-first then alphabetical.</li>
  </ul>
</Accordion>

<Accordion title="Use Cases 💡" icon="fa-lightbulb">
  <ul>
    <li>Enumerate every <code>.sol</code> domain a wallet holds for a profile, audit, or portfolio view.</li>
    <li>Build a domain-explorer or reverse-lookup that lists all names behind one owner.</li>
    <li>Verify a specific domain is (or isn't) among a wallet's holdings by paging the full set.</li>
  </ul>
</Accordion>

<Accordion title="How to Use 🛠️" icon="fa-book-open">
  <ul>
    <li><strong><code>address</code></strong> *(required)* — the wallet address to list domains for.</li>
    <li><strong><code>offset</code></strong> *(optional, default <code>0</code>)* — number of domains to skip.</li>
    <li><strong><code>limit</code></strong> *(optional, default <code>50</code>, max <code>100</code>)* — page size.</li>
    <li>Read <code>total</code>, then page forward with <code>offset += limit</code> until you've read <code>total</code> items.</li>
  </ul>
</Accordion>

<Accordion title="Best Practices ✅" icon="fa-check-circle">
  <ul>
    <li>Drive pagination from <code>total</code>, not from the length of a single page.</li>
    <li>Only need a preview? The <code>single</code> endpoint's <code>domains</code> array already gives the first 20 — no need to call this.</li>
    <li>Keep <code>limit</code> at or below 100; larger pages are rejected.</li>
  </ul>
</Accordion>

<Accordion title="Limitations ⚠️" icon="fa-exclamation-triangle">
  <ul>
    <li>Single wallet per request — this endpoint is not batched.</li>
    <li><code>limit</code> is capped at <strong>100</strong> per page.</li>
    <li>Non-wallet identities (exchange / protocol / token) return an empty <code>domains</code> list (SNS-spam guard).</li>
    <li>Solana only.</li>
  </ul>
</Accordion>

<br />


## OpenAPI

````yaml openapi/data/openapi_docs.json GET /identity/v1/domains
openapi: 3.1.0
info:
  version: 1.1.0
  title: Birdeye Data API
  description: >-
    Birdeye Data API is a full-spectrum blockchain and DEX data platform for
    teams that need production-grade crypto market intelligence across tokens,
    pairs, wallets, traders, protocols, and chains.


    From real-time prices, OHLCV, liquidity, and transaction flow to holder
    analytics, token and pair overviews, wallet portfolio and PnL, smart money,
    discovery, security, and blockchain-level utilities, Birdeye gives you a
    unified data layer for building serious crypto products at scale.


    Use it to power exchange interfaces, trading terminals, bots, market-making
    systems, quant research, alpha screeners, portfolio apps, wallet
    intelligence tools, alerting systems, analytics dashboards, and back-office
    data pipelines. Whether your users are retail traders, pro desks, analysts,
    or infrastructure teams, Birdeye helps you ship faster with broad market
    coverage and API surfaces that support both lightweight integrations and
    data-heavy workflows.


    To start, create an account at [bds.birdeye.so](https://bds.birdeye.so),
    generate an API key from the `Security` tab, and send it in the `X-API-KEY`
    header on every request.
servers:
  - url: https://public-api.birdeye.so
security:
  - apiKeyAuth: []
tags:
  - name: Price & OHLCV
  - name: Stats
  - name: Token/Market List
  - name: Transactions
  - name: Wallet, Networth & PnL
  - name: Balance & Transfer
  - name: Holder
  - name: Alltime & History
  - name: Blockchain
  - name: Account
  - name: Token
  - name: Transaction
  - name: Creation & Trending
  - name: Meme
  - name: Security
  - name: Search & Utils
  - name: Smart Money
  - name: Global Fees Paid
  - name: DEX & Protocol
  - name: Wallet Identity
paths:
  /identity/v1/domains:
    get:
      tags:
        - Wallet Identity
      summary: Wallet Identity - Domains
      description: >
        The full, paginated .sol domain list for one wallet (a wallet can own
        100k+). Domains are ordered shortest-first then alphabetical, so page 1
        matches the domains preview from the single/multiple endpoints. Only
        wallets return domains.
      operationId: get-identity-v1-domains
      parameters:
        - name: address
          description: The wallet address to list .sol domains for.
          in: query
          required: true
          schema:
            type: string
            example: DaP44wF8mKmYki1M5zguvXYAW5XF6sLQEzvdmvcizRqD
        - name: offset
          description: Number of domains to skip. Defaults to 0.
          in: query
          schema:
            type: integer
            minimum: 0
            default: 0
            example: 0
        - name: limit
          description: Page size. Defaults to 50, maximum 100.
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 50
            example: 100
      responses:
        '200':
          $ref: '#/components/responses/identityDomainsResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
components:
  responses:
    '400':
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Bad request
    '401':
      description: Unauthorized. API key is missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Unauthorized
    '403':
      description: Forbidden. Request is blacklisted or not whitelisted
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Access Denied
    '429':
      description: Too Many Requests. Rate limit reached
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Too many requests
    '500':
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Internal Server Error
    identityDomainsResponse:
      description: Successful response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/IdentityDomainsResponse'
          examples:
            Example:
              value:
                success: true
                data:
                  address: DaP44wF8mKmYki1M5zguvXYAW5XF6sLQEzvdmvcizRqD
                  total: 2192
                  offset: 0
                  limit: 100
                  domains:
                    - dap4.sol
                    - uapx.sol
                    - ufox.sol
                    - blxme.sol
                    - bruca.sol
                    - draes.sol
                    - jjust.sol
                    - mufon.sol
                    - tpusa.sol
                    - uapac.sol
  schemas:
    IdentityDomainsResponse:
      type: object
      required:
        - success
        - data
      properties:
        success:
          type: boolean
        data:
          type: object
          required:
            - address
            - total
            - offset
            - limit
            - domains
          properties:
            address:
              type: string
              description: The wallet the domains belong to.
            total:
              type: integer
              description: True number of .sol domains the wallet owns across all pages.
            offset:
              type: integer
              description: The pagination offset echoed back from the request.
            limit:
              type: integer
              description: The page size echoed back from the request.
            domains:
              type: array
              items:
                type: string
              description: >-
                The requested page of domain names, ordered shortest-first then
                alphabetical. Page 1 (offset=0) matches the domains preview from
                the single/multiple endpoints.
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY
      description: API key for authentication

````