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

# searchAssets

> Search and filter Solana NFTs, compressed NFTs, and tokens using flexible criteria including ownership, creators, collections, and custom attributes

## Request Parameters

<ParamField body="ownerAddress" type="string" required>
  The Solana wallet address to retrieve owned digital assets for filtering search results.
</ParamField>

<ParamField body="tokenType" type="string" required>
  Filter for specific Solana token types including compressed NFTs (cNFTs), regular NFTs,
  programmable NFTs (pNFTs), or fungible SPL tokens for targeted asset discovery.

  * `fungible`
  * `nonFungible`
  * `regularNft`
  * `compressedNft`
  * `all`
</ParamField>

<ParamField body="page" type="number">
  The page of results to return.
</ParamField>

<ParamField body="authorityAddress" type="string">
  The authority address criteria for filtering Solana digital assets based on program authority,
  useful for finding assets controlled by specific protocols or update authorities.
</ParamField>

<ParamField body="limit" type="number">
  The maximum number of assets to return.
</ParamField>

<ParamField body="sortBy" type="object">
  The sorting options for the response.
</ParamField>

<ParamField body="sortBy.sortBy" type="string">
  The criteria by which the assets will be sorted.

  * `created`
  * `recent_action`
  * `updated`
  * `none`
</ParamField>

<ParamField body="sortBy.sortDirection" type="string">
  The sorting direction.

  * `asc`
  * `desc`
</ParamField>

<ParamField body="compressed" type="boolean">
  Filter for compressed Solana NFTs (cNFTs) that use state compression technology
  for reduced storage costs and improved scalability.
</ParamField>

<ParamField body="compressible" type="boolean">
  Filter for Solana assets that are eligible for compression but have not yet
  been compressed into the state compression format.
</ParamField>

<ParamField body="delegate" type="number">
  Delegate criteria for the asset search.
</ParamField>

<ParamField body="creatorAddress" type="string">
  Creator wallet address criteria for finding Solana NFTs created by specific artists,
  projects, or creators for attribution and royalty tracking.
</ParamField>

<ParamField body="creatorVerified" type="boolean">
  Whether a creator is verified.
</ParamField>

<ParamField body="grouping" type="array">
  Collection grouping array for filtering Solana NFTs by their collection membership
  (e.g. `["collection", "<collectionKey>"]`) to find related assets.
</ParamField>

<ParamField body="tree" type="string">
  Merkle tree address for filtering compressed NFTs (cNFTs) by their collection tree.
  This parameter is Helius-specific and not part of the official DAS specification.
</ParamField>

<ParamField body="supply" type="number">
  Supply criteria for the asset search.
</ParamField>

<ParamField body="supplyMint" type="string">
  Supply mint criteria for the asset search.
</ParamField>

<ParamField body="frozen" type="boolean">
  Whether an asset is frozen.
</ParamField>

<ParamField body="burnt" type="boolean">
  Whether an asset is burnt.
</ParamField>

<ParamField body="isAgent" type="boolean">
  Filter assets that have an Agent Identity (MPL Core AgentIdentity external plugin).
</ParamField>

<ParamField body="agentToken" type="string">
  Filter by base58 agent token mint address from the Agent Registry program.
</ParamField>

<ParamField body="assetSigner" type="string">
  Filter by base58 asset-signer PDA (MPL Core).
</ParamField>

<ParamField body="interface" type="string">
  The Solana token standard interface type to filter for specific NFT implementations
  including programmable NFTs, legacy NFTs, fungible tokens, and MPL Core assets, collections, or groups (MIP-11).

  * `V1_NFT`
  * `V1_PRINT`
  * `LEGACY_NFT`
  * `V2_NFT`
  * `FungibleAsset`
  * `FungibleToken`
  * `Custom`
  * `Identity`
  * `Executable`
  * `ProgrammableNFT`
  * `MplCoreAsset`
  * `MplBubblegumV2`
  * `MplCoreCollection`
  * `MplCoreGroup`
</ParamField>

<ParamField body="royaltyTargetType" type="string">
  Royalty target type criteria.
</ParamField>

<ParamField body="royaltyTarget" type="number">
  Royalty target criteria.
</ParamField>

<ParamField body="royaltyAmount" type="number">
  Royalty amount criteria.
</ParamField>

<ParamField body="ownerType" type="number">
  Ownership model criteria.
</ParamField>

<ParamField body="before" type="string">
  A cursor for paginating backward.
</ParamField>

<ParamField body="after" type="string">
  A cursor for paginating forward.
</ParamField>

<ParamField body="options" type="object">
  Advanced display options for customizing the Solana asset search response.
</ParamField>

<ParamField body="options.showUnverifiedCollections" type="boolean" default="false">
  Show unverified collections instead of skipping them.
</ParamField>

<ParamField body="options.showCollectionMetadata" type="boolean" default="false">
  Show metadata for the collection.
</ParamField>

<ParamField body="options.showGrandTotal" type="boolean" default="false">
  Show total number of matching assets (slower request).
</ParamField>

<ParamField body="options.showNativeBalance" type="boolean" default="false">
  Show the native (SOL) balance of the owner.
</ParamField>

<ParamField body="options.showInscription" type="boolean" default="false">
  Display inscription details.
</ParamField>

<ParamField body="options.showZeroBalance" type="boolean" default="false">
  Display assets with zero balance.
</ParamField>


## OpenAPI

````yaml /openapi/das-api/searchAssets.yaml POST /
openapi: 3.1.0
info:
  title: Solana NFT Discovery & Search API
  version: 1.0.0
  description: >
    Advanced Solana Digital Asset Standard (DAS) API for searching and
    discovering NFTs, tokens, and other digital assets across the Solana
    ecosystem with powerful filtering capabilities.

    This comprehensive search API provides the foundation for NFT marketplaces,
    portfolio applications, and analytics platforms

    to discover and filter digital assets based on multiple criteria including
    collections, creators, compression status,

    and ownership - with support for both traditional and compressed NFTs across
    the entire Solana ecosystem.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://mainnet.helius-rpc.com
    description: Mainnet RPC endpoint
  - url: https://devnet.helius-rpc.com
    description: Devnet RPC endpoint
security: []
paths:
  /:
    post:
      tags:
        - RPC
      summary: searchAssets
      description: >
        Search and discover Solana digital assets with comprehensive filtering
        options.

        This powerful discovery API enables applications to find NFTs,
        compressed NFTs, fungible tokens,

        and other digital assets using multiple criteria including ownership,
        creators, collections,

        compression status, and metadata attributes. Perfect for marketplaces,
        portfolio

        trackers, and analytics platforms needing advanced asset discovery
        capabilities

        across the Solana ecosystem.


        Key capabilities:

        - Multi-criteria search across all Solana NFT standards (traditional,
        compressed, programmable)

        - Collection-based filtering for NFT projects and communities

        - Creator and ownership-based queries for attribution and portfolio
        analysis

        - Compression status filtering to identify cost-efficient assets

        - Metadata attribute search for trait-based discovery

        - Complete pagination support for large result sets
      operationId: rpc
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - jsonrpc
                - id
                - method
                - params
              properties:
                jsonrpc:
                  type: string
                  enum:
                    - '2.0'
                  description: The version of the JSON-RPC protocol.
                  default: '2.0'
                id:
                  type: string
                  description: An ID to identify the request.
                  default: '1'
                method:
                  type: string
                  enum:
                    - searchAssets
                  description: The name of the JSON-RPC method to invoke.
                  default: searchAssets
                params:
                  type: object
                  description: Parameters for the `searchAssets` method.
                  default:
                    ownerAddress: 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY
                    tokenType: all
                  required:
                    - ownerAddress
                    - tokenType
                  properties:
                    ownerAddress:
                      type: string
                      description: >-
                        The Solana wallet address to retrieve owned digital
                        assets for filtering search results.
                      example: 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY
                    tokenType:
                      type: string
                      enum:
                        - fungible
                        - nonFungible
                        - regularNft
                        - compressedNft
                        - all
                      description: >
                        Filter for specific Solana token types including
                        compressed NFTs (cNFTs), regular NFTs,

                        programmable NFTs (pNFTs), or fungible SPL tokens for
                        targeted asset discovery.
                      example: all
                    page:
                      type: integer
                      description: The page of results to return.
                      example: 1
                    authorityAddress:
                      type: string
                      description: >
                        The authority address criteria for filtering Solana
                        digital assets based on program authority,

                        useful for finding assets controlled by specific
                        protocols or update authorities.
                      example: string
                    limit:
                      type: integer
                      description: The maximum number of assets to return.
                      example: 100
                    sortBy:
                      type: object
                      description: The sorting options for the response.
                      properties:
                        sortBy:
                          type: string
                          description: The criteria by which the assets will be sorted.
                          enum:
                            - created
                            - recent_action
                            - updated
                            - none
                        sortDirection:
                          type: string
                          description: The sorting direction.
                          enum:
                            - asc
                            - desc
                    compressed:
                      type: boolean
                      description: >
                        Filter for compressed Solana NFTs (cNFTs) that use state
                        compression technology

                        for reduced storage costs and improved scalability.
                      example: true
                    compressible:
                      type: boolean
                      description: >
                        Filter for Solana assets that are eligible for
                        compression but have not yet

                        been compressed into the state compression format.
                      example: false
                    delegate:
                      type: integer
                      description: Delegate criteria for the asset search.
                    creatorAddress:
                      type: string
                      description: >
                        Creator wallet address criteria for finding Solana NFTs
                        created by specific artists,

                        projects, or creators for attribution and royalty
                        tracking.
                      example: string
                    creatorVerified:
                      type: boolean
                      description: Whether a creator is verified.
                      example: true
                    grouping:
                      type: array
                      items:
                        type: string
                      description: >
                        Collection grouping array for filtering Solana NFTs by
                        their collection membership

                        (e.g. ["collection", "<collectionKey>"]) to find related
                        assets.
                      example:
                        - collection
                        - DRiP2Pn2K6fuMLKQmt5rZWyHiUZ6WK3GChEySUpHSS4x
                    tree:
                      type: string
                      description: >
                        Merkle tree address for filtering compressed NFTs
                        (cNFTs) by their collection tree.

                        This parameter is Helius-specific and not part of the
                        official DAS specification.
                      example: mwfDfWTYkyPYcZWPHCQyYMZKwg7SxDxWRAhGkBcNqqL
                    supply:
                      type: integer
                      description: Supply criteria for the asset search.
                      example: 0
                    supplyMint:
                      type: string
                      description: Supply mint criteria for the asset search.
                    frozen:
                      type: boolean
                      description: Whether an asset is frozen.
                      example: false
                    burnt:
                      type: boolean
                      description: Whether an asset is burnt.
                      example: false
                    isAgent:
                      type: boolean
                      description: >-
                        Filter assets that have an Agent Identity (MPL Core
                        AgentIdentity external plugin).
                    agentToken:
                      type: string
                      description: >-
                        Filter by base58 agent token mint address from the Agent
                        Registry program.
                    assetSigner:
                      type: string
                      description: Filter by base58 asset-signer PDA (MPL Core).
                    interface:
                      type: string
                      description: >
                        The Solana token standard interface type to filter for
                        specific NFT implementations

                        including programmable NFTs, legacy NFTs, fungible
                        tokens, and MPL Core assets, collections, or groups
                        (MIP-11).
                      enum:
                        - V1_NFT
                        - V1_PRINT
                        - LEGACY_NFT
                        - V2_NFT
                        - FungibleAsset
                        - FungibleToken
                        - Custom
                        - Identity
                        - Executable
                        - ProgrammableNFT
                        - MplCoreAsset
                        - MplBubblegumV2
                        - MplCoreCollection
                        - MplCoreGroup
                      example: Custom
                    royaltyTargetType:
                      type: string
                      description: Royalty target type criteria.
                      example: creators
                    royaltyTarget:
                      type: integer
                      description: Royalty target criteria.
                      example: 0
                    royaltyAmount:
                      type: integer
                      description: Royalty amount criteria.
                      example: 0
                    ownerType:
                      type: integer
                      description: Ownership model criteria.
                      example: 1
                    before:
                      type: string
                      description: A cursor for paginating backward.
                      example: string
                    after:
                      type: string
                      description: A cursor for paginating forward.
                      example: string
                    options:
                      type: object
                      description: >-
                        Advanced display options for customizing the Solana
                        asset search response.
                      properties:
                        showUnverifiedCollections:
                          type: boolean
                          default: false
                          description: >-
                            Show unverified collections instead of skipping
                            them.
                        showCollectionMetadata:
                          type: boolean
                          default: false
                          description: Show metadata for the collection.
                        showGrandTotal:
                          type: boolean
                          default: false
                          description: >-
                            Show total number of matching assets (slower
                            request).
                        showNativeBalance:
                          type: boolean
                          default: false
                          description: Show the native (SOL) balance of the owner.
                        showZeroBalance:
                          type: boolean
                          default: false
                          description: Display assets with zero balance.
              example:
                jsonrpc: '2.0'
                id: my-id
                method: searchAssets
                params:
                  ownerAddress: 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY
                  tokenType: all
                  limit: 50
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  assets:
                    type: object
                    properties:
                      last_indexed_slot:
                        type: integer
                        description: >-
                          All data up to and including this slot is guaranteed
                          to have been indexed.
                        example: 365750752
                      total:
                        type: integer
                        description: >-
                          The total number of Solana NFTs and digital assets
                          matching the search criteria.
                        example: 80
                      limit:
                        type: integer
                        description: The maximum number of assets requested.
                        example: 50
                      page:
                        type: integer
                        description: The current page of results.
                        example: 1
                      items:
                        type: array
                        description: An array of assets.
                        items:
                          type: object
                          properties:
                            interface:
                              type: string
                              description: >-
                                The Solana token standard implementation type of
                                the digital asset.
                              enum:
                                - V1_NFT
                                - V1_PRINT
                                - LEGACY_NFT
                                - V2_NFT
                                - FungibleAsset
                                - FungibleToken
                                - Custom
                                - Identity
                                - Executable
                                - ProgrammableNFT
                                - MplCoreAsset
                                - MplCoreCollection
                                - MplCoreGroup
                            is_agent:
                              type: boolean
                              description: >-
                                Whether this asset has an Agent Identity (MPL
                                Core AgentIdentity external plugin). Omitted
                                when false.
                            agent_token:
                              type: string
                              description: >-
                                Base58-encoded agent token mint from the Agent
                                Registry program. Omitted when not registered.
                            asset_signer:
                              type: string
                              description: >-
                                Base58-encoded asset-signer PDA for MPL Core.
                                Omitted when not applicable.
                            plugins:
                              type: object
                              description: >-
                                MPL Core plugins, including optional MIP-11
                                `groups` membership.
                              additionalProperties: true
                            id:
                              type: string
                              description: >-
                                The unique mint address identifier of the Solana
                                digital asset.
                            ownership:
                              type: object
                              description: >-
                                Ownership details of the Solana digital asset
                                including current owner and model.
                            content:
                              type: object
                              description: >-
                                The content and metadata of the Solana digital
                                asset including URI, attributes, and media.
                    example:
                      total: 80
                      limit: 50
                      page: 1
                      items:
                        - interface: V1_NFT
                          id: SomeNftMintKey12345
                          ownership:
                            owner: 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY
                            ownership_model: single
                          content:
                            json_uri: https://example.com/metadata/12345.json
                  nativeBalance:
                    type: object
                    description: >-
                      The native SOL balance of the Solana wallet account in
                      lamports and USD value.
                    properties:
                      lamports:
                        type: integer
                        description: The number of lamports in the account.
                      price_per_sol:
                        type: number
                        description: The current price of SOL.
                      total_price:
                        type: number
                        description: The total SOL value in this account.
        '400':
          description: >-
            Bad Request. The server could not understand the request due to
            invalid syntax.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                        example: -32602
                      message:
                        type: string
                        example: Invalid request parameters.
                  id:
                    type: string
                    example: '1'
        '401':
          description: >-
            Unauthorized. The client must authenticate itself to get the
            requested response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                        example: -32001
                      message:
                        type: string
                        example: Authentication failed. Missing or invalid API key.
                  id:
                    type: string
                    example: '1'
        '403':
          description: Forbidden. The client does not have access rights to the content.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                        example: -32003
                      message:
                        type: string
                        example: You do not have permission to access this resource.
                  id:
                    type: string
                    example: '1'
        '404':
          description: Not Found. The server can not find the requested resource.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                        example: -32004
                      message:
                        type: string
                        example: No assets found matching the search criteria.
                  id:
                    type: string
                    example: '1'
        '429':
          description: >-
            Too Many Requests. The user has sent too many requests in a given
            amount of time.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                        example: -32029
                      message:
                        type: string
                        example: Rate limit exceeded. Please try again later.
                  id:
                    type: string
                    example: '1'
        '500':
          description: >-
            Internal Server Error. The server has encountered a situation it
            doesn't know how to handle.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                        example: -32000
                      message:
                        type: string
                        example: An unexpected error occurred on the server.
                  id:
                    type: string
                    example: '1'
      security:
        - ApiKeyQuery: []
components:
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: >-
        Your Helius API key. You can get one for free in the
        [dashboard](https://dashboard.helius.dev/api-keys).

````