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

# Collectibles

> Retrieve EVM compatiable NFTs (ERC721 and ERC1155) that include token identifiers, token standard, chain information, balance, and basic token attributes.

export const SupportedChains = ({endpoint, title, excludeChains}) => {
  const dataState = useState(null);
  const data = dataState[0];
  const setData = dataState[1];
  useEffect(function () {
    var url = "https://api.sim.dune.com/v1/evm/supported-chains";
    fetch(url, {
      method: "GET"
    }).then(function (response) {
      return response.json();
    }).then(function (responseData) {
      setData(responseData);
    });
  }, [endpoint]);
  if (data === null) {
    return <div>Loading chain information...</div>;
  }
  if (!data.chains) {
    return <div>No chain data available</div>;
  }
  var supportedChains = [];
  var totalChains = data.chains.length;
  var excludedChainNames = excludeChains || [];
  for (var i = 0; i < data.chains.length; i++) {
    var chain = data.chains[i];
    if (excludedChainNames.indexOf(chain.name) !== -1) continue;
    if (endpoint === undefined) {
      supportedChains.push(chain);
    } else if (chain[endpoint] && chain[endpoint].supported) {
      supportedChains.push(chain);
    }
  }
  var count = supportedChains.length;
  var endpointName = endpoint ? endpoint.charAt(0).toUpperCase() + endpoint.slice(1).replace(/_/g, " ") : "All";
  var accordionTitle = title ? title + " (" + count + ")" : "Supported Chains (" + count + ")";
  return <Accordion title={accordionTitle}>
      <table>
        <thead>
          <tr>
            <th>name</th>
            <th>chain_id</th>
            <th>tags</th>
          </tr>
        </thead>
        <tbody>
          {supportedChains.map(function (chain) {
    return <tr key={chain.name}>
                <td><code>{chain.name}</code></td>
                <td><code>{chain.chain_id}</code></td>
                <td><code>{chain.tags ? chain.tags.join(", ") : ""}</code></td>
              </tr>;
  })}
        </tbody>
      </table>
    </Accordion>;
};

export const DefaultChainCount = ({endpoint}) => {
  const dataState = useState(null);
  const data = dataState[0];
  const setData = dataState[1];
  useEffect(function () {
    fetch("https://api.sim.dune.com/v1/evm/supported-chains", {
      method: "GET"
    }).then(function (response) {
      return response.json();
    }).then(function (responseData) {
      setData(responseData);
    });
  }, []);
  if (data === null) {
    return <>N</>;
  }
  if (!data.chains || !Array.isArray(data.chains)) {
    return <>N</>;
  }
  var uniqueDefaultChains = new Set();
  for (var i = 0; i < data.chains.length; i++) {
    var chain = data.chains[i];
    var hasDefaultTag = Array.isArray(chain.tags) && chain.tags.indexOf("default") !== -1;
    if (!hasDefaultTag) {
      continue;
    }
    if (endpoint !== undefined) {
      if (chain[endpoint] && chain[endpoint].supported === true) {
        uniqueDefaultChains.add(chain.name);
      }
    } else {
      uniqueDefaultChains.add(chain.name);
    }
  }
  var count = uniqueDefaultChains.size;
  return <>{count}</>;
};

<img src="https://mintcdn.com/sim-dune/kJVnzSzA9eavUZq6/images/type=collectibles.webp?fit=max&auto=format&n=kJVnzSzA9eavUZq6&q=85&s=6bcb14bbba83546ffb9b3d1f5dde8228" alt="Type=collectibles Web" width="1500" height="575" data-path="images/type=collectibles.webp" />

The Collectibles API provides information about NFTs (ERC721 and ERC1155 tokens) owned by a specific address on supported EVM blockchains, with built-in spam filtering.

<SupportedChains endpoint="collectibles" />

## Compute Unit Cost

The Collectibles endpoint’s CU cost equals the number of chains you include via the `chain_ids` query parameter. If you omit `chain_ids`, we use the endpoint’s chains tagged `default` (currently {<DefaultChainCount endpoint="collectibles" />} chains, subject to change). See the [Supported Chains](/evm/supported-chains#tags) page to learn about chain tags.

For example, `?chain_ids=1,8453,137` processes three chains and currently consumes three CUs. Omitting `chain_ids` uses the default set at request time and consumes {<DefaultChainCount endpoint="collectibles" />} CUs (equal to the size of that set).

<Note>
  See the [Compute Units](/compute-units) page for detailed information.
</Note>

## Spam Filtering

By default, spam filtering for collectibles is enabled. Use `filter_spam=false` to include spam collectibles in the response. You can omit the parameter or set `filter_spam=true` to keep spam filtering enabled.

We provide spam scores to explain how a collectible is classified as spam or not. The `is_spam` field is always included in each entry. Spam scores are *off* by default and require `show_spam_scores=true` to include `spam_score` and `explanations`.
Setting `show_spam_scores=true` does not disable filtering; use `filter_spam=false` if you want spam entries (and their scores) returned.
Scores are computed as a weighted average across signals.
These include whether the collection has been flagged by external providers, trade volume since launch, and the number of unique buyers and sellers.
See the table below for the full list.

<Accordion title="Spam Scoring Signals" icon="shield">
  | Feature                 | Description                                                                                                                                                             |
  | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | `trade_volume`          | This is the total number of trades since collection launch. Very low activity can indicate spam. Collections launched in the last 7 days are excluded from this signal. |
  | `unique_buyers`         | This is the count of distinct buyers. Low buyer diversity can indicate inorganic activity.                                                                              |
  | `unique_sellers`        | This is the count of distinct sellers. Low seller diversity can indicate inorganic activity.                                                                            |
  | `externally_flagged`    | Whether the collection has been flagged as spam by third-party providers (for example, Alchemy). `true` increases the spam likelihood.                                  |
  | `uri_non_ipfs`          | Whether metadata URIs are non-IPFS. Certain patterns can correlate with spam when combined with other signals.                                                          |
  | `suspicious_words`      | Whether names or symbols include suspicious terms commonly associated with scams.                                                                                       |
  | `url_shortener`         | Whether metadata URIs use link shorteners (for example, Bitly).                                                                                                         |
  | `manual_classification` | Manual override for classification (`spam` or `not spam`).                                                                                                              |
</Accordion>

These spam score features are included in the response's `explanations` field and may be omitted if signals are unavailable.

<Tip>
  For ERC20 token filtering based on liquidity data, see our [Token & Spam Filtering](/token-filtering) guide.
</Tip>


## OpenAPI

````yaml /openapi.json GET /v1/evm/collectibles/{address}
openapi: 3.0.3
info:
  title: Sim API
  description: >-
    The Sim API by Dune provides real-time blockchain data across EVM and SVM
    chains. Access token balances, transaction history, on-chain activity, DeFi
    positions, NFT collectibles, token information, and webhook subscriptions
    through a unified REST API.
  version: 1.0.0
  license:
    name: ''
  contact:
    name: Dune Support
    url: https://docs.sim.dune.com
    email: support@dune.com
servers:
  - url: https://api.sim.dune.com
security:
  - ApiKeyAuth: []
tags:
  - name: evm
    description: EVM-compatible blockchain endpoints.
  - name: svm
    description: Solana/SVM blockchain endpoints.
  - name: activity
    description: On-chain activity feed.
  - name: balances
    description: Token balances (EVM and SVM).
  - name: transactions
    description: Transaction history (EVM and SVM).
  - name: collectibles
    description: NFT and ERC721/ERC1155 holdings.
  - name: defi
    description: DeFi protocol positions.
  - name: supported-chains
    description: Supported blockchain networks.
  - name: token-info
    description: Token metadata and pricing.
  - name: token-holders
    description: Token holder distribution.
  - name: subscriptions
    description: >-
      Webhook subscription management for real-time on-chain event
      notifications.
paths:
  /v1/evm/collectibles/{address}:
    get:
      tags:
        - evm
        - collectibles
      summary: Get EVM Collectibles
      description: >-
        Retrieves a list of EVM compatible collectibles (NFTs) for a given
        wallet address.
      operationId: getEvmCollectibles
      parameters:
        - name: address
          in: path
          required: true
          description: The wallet address to get collectibles for.
          schema:
            type: string
            format: address
            pattern: ^0x[a-fA-F0-9]{40}$
            default: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
          example: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
        - name: chain_ids
          in: query
          required: false
          description: >-
            Filter by chain(s). Accepts numeric chain IDs and/or tags. Provide a
            single value (e.g. `?chain_ids=1` or `?chain_ids=mainnet`) or a
            comma-separated list (e.g. `?chain_ids=1,8543,testnet`). Chain names
            are not accepted. If this query parameter is omitted, results
            include collectibles from chains with the `default` tag. See the
            [Supported Chains Tags](/evm/supported-chains#tags) section.
          schema:
            type: string
        - name: offset
          in: query
          required: false
          description: >-
            Pagination cursor. Use the `next_offset` value from the previous
            response to get the next page. Omit to fetch the first page.
          schema:
            type: string
        - name: limit
          in: query
          required: false
          description: >-
            Maximum entries per page for collectibles. Default is 250 when not
            provided. Values above 2500 are reduced to 2500. If fewer entries
            exist than the limit, only the available entries are returned.
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 2500
            default: 250
        - name: filter_spam
          in: query
          required: false
          description: >-
            When true, hide collectibles identified as spam. Set to false to
            return all collectibles, including potential spam. See the [Spam
            Filtering](#spam-filtering) section for more details.
          schema:
            type: boolean
            default: true
        - name: show_spam_scores
          in: query
          required: false
          description: >-
            When true, include spam scoring details (`spam_score` and
            `explanations`) to explain filtering decisions.
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: A list of collectibles for the specified address.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectiblesResponse'
              examples:
                success:
                  value:
                    address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045'
                    entries:
                      - contract_address: '0x5d28dcf2fbbd3738c0ebe9de03eafcb4ec33015d'
                        token_standard: ERC1155
                        token_id: '1'
                        chain: ethereum
                        chain_id: 1
                        name: Beeplfg
                        description: Beeplfg
                        symbol: CRAP
                        image_url: >-
                          https://api.sim.dune.com/v1/evm/collectible/image/1/0x5d28dcf2fbbd3738c0ebe9de03eafcb4ec33015d/1
                        last_sale_price: '0'
                        metadata:
                          uri: >-
                            ipfs://QmcnkkMnfL7fugsyrZPEZhPGciLMoo9kwWt1cg4QHLLx3w/0
                          attributes:
                            - key: Color
                              value: 255, 43, 163
                            - key: Stance
                              value: Greased
                        is_spam: false
                        spam_score: 0
                        explanations:
                          - feature: trade_volume
                            value: 518
                            feature_score: 0
                            feature_weight: 0.25
                          - feature: unique_buyers
                            value: 145
                            feature_score: 0
                            feature_weight: 0.25
                          - feature: unique_sellers
                            value: 167
                            feature_score: 0
                            feature_weight: 0.25
                          - feature: externally_flagged
                            value: false
                            feature_score: 0
                            feature_weight: 0.25
                        balance: '8'
                        last_acquired: '2025-08-10T03:58:59Z'
                      - contract_address: '0x344299dd2af8f81246dcb7b3368c6b9b5ddad4f6'
                        token_standard: ERC1155
                        token_id: '1'
                        chain: bnb
                        chain_id: 56
                        name: launchspx org
                        balance: '1'
                        last_acquired: '2025-08-11T04:22:52Z'
                        is_spam: false
                      - contract_address: '0x3c020f2124b84bd079985c77f93d4a750512448c'
                        token_standard: ERC721
                        token_id: '5132'
                        chain: ethereum
                        chain_id: 1
                        name: 'Ethereum Puppet #5132'
                        description: 'Ethereum Puppet #5132'
                        symbol: PUPPET
                        image_url: >-
                          https://api.sim.dune.com/v1/evm/collectible/image/1/0x3c020f2124b84bd079985c77f93d4a750512448c/5132
                        last_sale_price: '0.00005'
                        metadata:
                          uri: https://www.ethereumpuppets.com/metadata/5132
                          attributes:
                            - key: Background
                              value: Mustard
                            - key: Shirt
                              value: Gambler
                        balance: '1'
                        last_acquired: '2025-08-09T23:07:47Z'
                        is_spam: false
                      - contract_address: '0xa18cf489cf710759f13ac6c8596823dba85354e2'
                        token_standard: ERC721
                        token_id: '24'
                        chain: optimism
                        chain_id: 10
                        balance: '1'
                        last_acquired: '2025-08-07T14:51:57Z'
                        is_spam: false
                    next_offset: opaque-pagination-token
                    request_time: '2025-08-13T09:40:53Z'
                    response_time: '2025-08-13T09:40:53Z'
        '400':
          description: Bad Request - Invalid address or validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collectibles_ErrorResponse'
              examples:
                badRequest:
                  value:
                    error: Invalid address format
        '401':
          description: Unauthorized - Invalid or missing API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayErrorResponse'
              examples:
                unauthorized:
                  value:
                    error: invalid API Key
        '404':
          description: Not Found - The requested chain is not supported.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collectibles_ErrorResponse'
              examples:
                chainNotSupported:
                  value:
                    error: 'Chain not supported: 999999'
        '429':
          description: Rate Limit Exceeded - Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayErrorResponse'
              examples:
                rateLimitExceeded:
                  value:
                    error: >-
                      Too many requests. Please contact sales@dune.com to
                      increase your limit.
        '500':
          description: Internal Server Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collectibles_ErrorResponse'
              examples:
                internalServerError:
                  value:
                    error: Failed to bootstrap
components:
  schemas:
    CollectiblesResponse:
      type: object
      properties:
        address:
          type: string
          format: address
          description: The wallet address for which collectibles are being reported.
        entries:
          type: array
          items:
            $ref: '#/components/schemas/CollectibleEntry'
          description: A list of collectible entries.
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/Warning'
          description: >-
            Array of warnings that occurred during request processing. Warnings
            indicate non-fatal issues (e.g., unsupported chain IDs) where the
            request can still be partially fulfilled.
        next_offset:
          type: string
          description: >-
            Use this value as the `offset` in your next request to continue
            pagination. Not included when there are no more entries.
        request_time:
          type: string
          format: date-time
          description: Timestamp of when the request was received.
        response_time:
          type: string
          format: date-time
          description: Timestamp of when the response was generated.
      required:
        - address
        - entries
        - request_time
        - response_time
    Collectibles_ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error message.
          example: invalid API Key
      required:
        - error
    GatewayErrorResponse:
      type: object
      description: >-
        Error response from the API gateway. Returned for authentication,
        permissions, rate-limiting, and quota errors.
      properties:
        error:
          type: string
          description: Error message.
      required:
        - error
    CollectibleEntry:
      type: object
      properties:
        contract_address:
          type: string
          format: address
          description: The contract address of the collectible.
        token_standard:
          type: string
          enum:
            - ERC721
            - ERC1155
          description: The token standard. Only ERC721 and ERC1155 are supported.
        token_id:
          type: string
          description: The token ID of the collectible.
        chain:
          type: string
          description: The blockchain name.
        chain_id:
          type: integer
          format: int32
          description: The numeric EVM chain ID.
        name:
          type: string
          description: The name of the collectible.
        symbol:
          type: string
          description: The symbol of the collectible.
        description:
          type: string
          description: Description of the collectible.
        image_url:
          type: string
          format: uri
          description: >-
            A URL that redirects to the image hosted by the collection or a CDN.
            Sim does not host images.
        last_sale_price:
          type: string
          description: The last sale price for this token ID, represented as a string.
        metadata:
          type: object
          description: >-
            Structured metadata for the token, resolved from the contract or its
            metadata URI. When present, it can include the original metadata URI
            and a list of normalized attributes. This object may be empty when
            no metadata is available.
          properties:
            uri:
              type: string
              description: Original metadata URI such as ipfs:// or an https URL.
            attributes:
              type: array
              items:
                type: object
                properties:
                  key:
                    type: string
                    description: Attribute name.
                  value:
                    type: string
                    description: Attribute value.
                  format:
                    type: string
                    description: >-
                      Optional hint for interpreting the value (date, number,
                      etc.).
                required:
                  - key
                  - value
        balance:
          type: string
          description: >-
            The balance of this specific token ID held by the address. For
            ERC721, this is typically '1'.
        last_acquired:
          type: string
          format: date-time
          description: Timestamp of when this token ID was last acquired by the address.
        is_spam:
          type: boolean
          description: Whether the collection is classified as spam.
        spam_score:
          type: integer
          format: int32
          minimum: 0
          maximum: 100
          description: >-
            0–100 confidence score that the collection is spam. Included only
            when `show_spam_scores=true`. May be omitted when scores are
            unavailable. See the [Spam Filtering](#spam-filtering) section for
            more details.
        explanations:
          type: array
          description: >-
            Signals contributing to the spam score. Included only when
            `show_spam_scores=true`. May be omitted when scores are unavailable.
          items:
            type: object
            properties:
              feature:
                type: string
                description: Signal used in scoring.
                enum:
                  - trade_volume
                  - unique_buyers
                  - unique_sellers
                  - externally_flagged
                  - uri_non_ipfs
                  - suspicious_words
                  - url_shortener
                  - manual_classification
              value:
                description: Observed value for the feature (type varies by feature).
                oneOf:
                  - type: integer
                    format: int32
                  - type: boolean
                  - type: string
              feature_score:
                type: integer
                format: int32
                minimum: 0
                maximum: 100
                description: 0–100 contribution of this feature to the spam score.
              feature_weight:
                type: number
                format: float
                minimum: 0
                maximum: 1
                description: Weight applied to this feature in the weighted average.
            required:
              - feature
      required:
        - contract_address
        - token_standard
        - token_id
        - chain
        - chain_id
        - balance
        - last_acquired
        - is_spam
    Warning:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Warning code identifier (e.g., 'UNSUPPORTED_CHAIN_IDS')
          example: UNSUPPORTED_CHAIN_IDS
        message:
          type: string
          description: Human-readable warning message
          example: >-
            Some requested chain_ids are not supported. Activity is returned
            only for supported chains.
        chain_ids:
          type: array
          items:
            type: integer
            format: int64
          description: >-
            List of chain IDs that triggered this warning (for chain-related
            warnings)
        docs_url:
          type: string
          description: URL to documentation with more information about the warning
          example: https://docs.sim.dune.com/evm/supported-chains
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Sim-Api-Key
      description: >-
        API key for authentication. Obtain your key from the Dune dashboard at
        sim.dune.com.

````