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

# Get wallets by environment

> Retrieve wallets for a specified environment



## OpenAPI

````yaml https://app.dynamic.xyz/api-docs/public-api.yaml get /environments/{environmentId}/wallets
openapi: 3.0.1
info:
  title: Dashboard API
  description: Dashboard API documentation
  version: 1.0.0
servers:
  - url: https://app.dynamicauth.com/api/v0
  - url: https://app.dynamic.xyz/api/v0
  - url: http://localhost:3333/api/v0
security: []
tags:
  - name: Analytics
    description: Query usage analytics and event counts for your environment.
  - name: SDK
    description: SDK-facing endpoints consumed by embedded Dynamic clients.
  - name: Server
    description: Server-side SDK endpoints authenticated by environment API tokens.
  - name: Organizations
    description: >-
      Manage organizations — the top-level container for all environments and
      projects.
  - name: Projects
    description: Manage projects that group related environments under an organization.
  - name: Environments
    description: >-
      Manage environments (live and sandbox) where your authentication
      configuration lives.
  - name: Users
    description: List, search, and manage authenticated users within an environment.
  - name: Invites
    description: >-
      Manage invitation links that grant specific external users access to your
      environment.
  - name: Tokens
    description: >-
      Create and manage API tokens used to authenticate requests to the Dynamic
      API.
  - name: Origins
    description: >-
      Configure allowed origins (CORS) for SDK and API access to your
      environment.
  - name: Allowlists
    description: >-
      Manage allowlists to control which wallet addresses or email addresses can
      access your environment.
  - name: Wallets
    description: View and manage wallets linked to users in your environment.
  - name: Members
    description: Manage team members and their roles within an organization.
  - name: Sessions
    description: View and revoke active user sessions within an environment.
  - name: Settings
    description: Read and update environment-level configuration settings.
  - name: Exchanges
    description: >-
      Configure exchange integrations (Coinbase, Binance, etc.) for fiat on-ramp
      within your environment.
  - name: Yield
    description: List yield vaults registered for your environment.
  - name: Providers
    description: >-
      List, enable, disable, and configure authentication providers (OAuth,
      email, wallet, SMS, etc.) for your environment.
  - name: Captcha
    description: >-
      Configure captcha verification (provider, site key, secret key) for your
      environment.
  - name: Gates
    description: >-
      Define access gates that restrict environment entry to users who meet
      specific criteria.
  - name: Chains
    description: >-
      Manage the blockchain networks available for wallet connection in your
      environment.
  - name: Exports
    description: Export user and wallet data from your environment as downloadable files.
  - name: Events
    description: Browse the event log of actions performed within your environment.
  - name: Webhooks
    description: >-
      Create and manage webhooks to receive real-time events (user.created,
      wallet.linked, etc.) at your endpoint.
  - name: Custom Fields
    description: >-
      Define and manage custom metadata fields collected from users at sign-up
      or login.
  - name: MfaSettings
    description: >-
      Configure multi-factor authentication (MFA) policies for your
      organization.
  - name: Mfa
    description: Manage MFA enrollment and verification for individual users.
  - name: CustomHostnames
    description: >-
      Configure custom hostnames for white-labeling the Dynamic authentication
      experience.
  - name: TestAccount
    description: >-
      Manage test accounts used for automated testing and QA within an
      environment.
  - name: NameServices
    description: >-
      Configure name service integrations (ENS, Unstoppable Domains, etc.) for
      human-readable wallet addresses.
  - name: GlobalWallets
    description: >-
      Manage global wallets shared across multiple environments in an
      organization.
  - name: GlobalWalletConnections
    description: Configure which environments can access and use global wallets.
  - name: GlobalWalletAccessControl
    description: Control which users and roles can access and operate global wallets.
  - name: UserApiTokens
    description: >-
      Create and manage user-scoped API tokens for programmatic access on behalf
      of a user.
  - name: Waas
    description: Wallet-as-a-Service endpoints for creating and managing embedded wallets.
  - name: WalletConnect
    description: Configure WalletConnect integration settings for your environment.
  - name: Checkout
    description: >-
      Accept crypto payments and deposits from any wallet. Settle in any token
      you choose.
  - name: Flow
    description: >-
      Accept crypto payments, deposits, and withdrawals. Amount and destination
      are fixed server-side at create; the post-create lifecycle is driven with
      a capability session token.
  - name: FlowAnalytics
    description: >-
      Query aggregated analytics and paginated transaction lists for the Flow
      product.
  - name: Gasless
    description: >-
      Query billing summaries and paginated transaction lists for sponsored
      (gasless) transactions.
  - name: Custom Networks
    description: >-
      Add and manage custom EVM-compatible networks beyond the built-in chain
      list.
  - name: Chainalysis
    description: >-
      Configure Chainalysis integration for blockchain address screening and
      risk assessment.
  - name: Visits
    description: Track and query user visit activity within your environment.
  - name: ExternalJwt
    description: >-
      Configure external JWT providers so existing auth tokens can be used with
      Dynamic.
  - name: SDK Views
    description: >-
      Manage SDK view configurations that customize the appearance of Dynamic
      modals and flows.
  - name: DeeplinkUrls
    description: Configure deep link URLs for mobile app integration with the Dynamic SDK.
  - name: OrganizationSettings
    description: >-
      Read and update organization-level settings such as approval workflow
      configuration.
  - name: AdminActions
    description: >-
      Manage admin action requests that require approval from another
      administrator.
  - name: ClientGrant
    description: |
      OAuth 2.0 Device Authorization Grant flow (RFC 8628) used by first-party
      Dynamic clients (CLI, MCP server, demo apps, IDE plugins) to obtain a
      revocable, 30-day client JWT without ever seeing the user's dashboard
      session token.
  - name: AuthorizedClients
    description: |
      Manage first-party clients (CLI / MCP / demo / IDE plugins) authorized
      to act as a dashboard user. Surfaced under Profile → Authorized Clients.
  - name: Kyb
    description: >-
      Verify a business's identity via AI Prise passthrough and check KYB tier
      status.
  - name: BusinessAccounts
    description: >-
      Administer the business accounts (multi-operator wallet containers) that
      end users create in an environment.
  - name: ScreeningPolicies
    description: >
      Author per-provider address screening policies that map TRM and
      Chainalysis

      signals to block, alert, or allow, plus per-address exceptions. The

      sanctions floor sits underneath every policy and is not configurable.
paths:
  /environments/{environmentId}/wallets:
    get:
      tags:
        - Wallets
      summary: Get wallets by environment
      description: Retrieve wallets for a specified environment
      operationId: getWalletsByEnvironmentId
      parameters:
        - $ref: '#/components/parameters/environmentId'
        - in: query
          name: limit
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 50
          description: Maximum number of wallets to return
        - in: query
          name: offset
          required: false
          schema:
            type: integer
            minimum: 0
            default: 0
          description: Number of wallets to skip
      responses:
        '200':
          description: Successful response with wallets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - bearerAuth: []
components:
  parameters:
    environmentId:
      in: path
      name: environmentId
      required: true
      description: ID of the environment
      schema:
        $ref: '#/components/schemas/uuid'
  schemas:
    WalletsResponse:
      type: object
      required:
        - wallets
        - count
      properties:
        wallets:
          description: List of detailed wallet objects matching the query
          type: array
          items:
            $ref: '#/components/schemas/WalletDetail'
        count:
          type: integer
          description: Total number of wallets matching the filter
        limit:
          type: integer
          description: Maximum number of wallets returned
        offset:
          type: integer
          description: Number of wallets skipped
    uuid:
      type: string
      pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      minLength: 36
      maxLength: 36
      example: 95b11417-f18f-457f-8804-68e361f9164f
    WalletDetail:
      type: object
      required:
        - id
        - userId
        - name
        - chain
        - publicKey
        - lowerPublicKey
        - provider
        - updatedAt
        - createdAt
        - projectEnvironmentId
      properties:
        id:
          $ref: '#/components/schemas/uuid'
        userId:
          $ref: '#/components/schemas/uuid'
        name:
          $ref: '#/components/schemas/NonEmptyString'
        chain:
          $ref: '#/components/schemas/ChainEnum'
        publicKey:
          $ref: '#/components/schemas/WalletPublicKey'
        lowerPublicKey:
          $ref: '#/components/schemas/WalletPublicKey'
        walletBookName:
          $ref: '#/components/schemas/NonEmptyStringWith255MaxLength'
        provider:
          $ref: '#/components/schemas/WalletProviderEnum'
        walletAdditionalAddresses:
          description: >-
            List of additional addresses derived from or associated with this
            wallet
          type: array
          items:
            $ref: '#/components/schemas/WalletAdditionalAddress'
        signerWalletId:
          $ref: '#/components/schemas/uuid'
        lastSelectedAt:
          description: >-
            ISO 8601 timestamp of when the user last selected this wallet as
            active
          type: string
          format: date-time
          nullable: true
        updatedAt:
          description: ISO 8601 timestamp of when the wallet was last updated
          type: string
          format: date-time
        createdAt:
          description: ISO 8601 timestamp of when the wallet was created
          type: string
          format: date-time
        deletedAt:
          description: >-
            ISO 8601 timestamp of when the wallet was soft-deleted, or null if
            active
          type: string
          format: date-time
          nullable: true
        turnkeyHDWalletId:
          $ref: '#/components/schemas/uuid'
        signInEnabled:
          description: Whether this wallet can be used to sign in to the application
          type: boolean
          nullable: true
        projectEnvironmentId:
          $ref: '#/components/schemas/uuid'
        entryPointVersion:
          description: >-
            ERC-4337 entry point contract version for account abstraction
            wallets
          type: string
          nullable: true
        kernelVersion:
          description: ZeroDev Kernel smart account contract version
          type: string
          nullable: true
        ecdsaProviderType:
          description: ECDSA validator type used for account abstraction signing
          type: string
          nullable: true
        deletedUserId:
          $ref: '#/components/schemas/uuid'
        hardwareWallet:
          description: >-
            Hardware wallet metadata (device type, model) if the wallet is
            hardware-backed
          type: object
          nullable: true
        waasWallet:
          $ref: '#/components/schemas/WaasWallet'
        delegatedAccessWalletApiKeys:
          description: List of delegated access API keys associated with this wallet
          type: array
          items:
            $ref: '#/components/schemas/DelegatedAccessWalletApiKey'
    BadRequest:
      type: object
      properties:
        error:
          description: Human-readable error message
          type: string
        code:
          description: >-
            Machine-readable reason for the 400, set only by endpoints that
            distinguish rejections.
          type: string
          example: exchange_currency_unsupported
    Unauthorized:
      type: object
      properties:
        error:
          description: Human-readable error message describing the authentication failure
          type: string
          example: No jwt provided!
    Forbidden:
      type: object
      properties:
        error:
          description: Human-readable error message
          type: string
          example: Access Forbidden
        code:
          description: >-
            Machine-readable reason for the 403, set only by endpoints that
            distinguish rejections. Flow endpoints use sanctions_blocked,
            session_token_invalid and risk_blocked.
          type: string
          example: sanctions_blocked
    InternalServerError:
      type: object
      properties:
        error:
          description: Human-readable error message
          type: string
          example: Internal Server Error
    NonEmptyString:
      type: string
      pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'|]+(?<=\S)$
      example: An example name
    ChainEnum:
      type: string
      enum:
        - ETH
        - EVM
        - FLOW
        - SOL
        - ALGO
        - STARK
        - COSMOS
        - BTC
        - ECLIPSE
        - SUI
        - SPARK
        - TRON
        - APTOS
        - TON
        - STELLAR
        - ALEO
        - TEMPO
        - MIDNIGHT
    WalletPublicKey:
      type: string
      pattern: ^[A-Za-z0-9_-]{18,100}$
      description: >-
        Valid blockchain wallet address, must be an alphanumeric string
        (underscores allowed for chains like Midnight, hyphens allowed for
        chains using base64url-encoded addresses like TON)
      example: '0xbF394748301603f18d953C90F0b087CBEC0E1834'
      maxLength: 255
    NonEmptyStringWith255MaxLength:
      type: string
      pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'|]+(?<=\S)$
      maxLength: 255
      example: An example name
    WalletProviderEnum:
      type: string
      enum:
        - browserExtension
        - custodialService
        - walletConnect
        - qrCode
        - deepLink
        - embeddedWallet
        - smartContractWallet
    WalletAdditionalAddress:
      type: object
      description: An additional address associated with a wallet.
      required:
        - address
        - type
      properties:
        address:
          type: string
          description: An address associated with a wallet.
        publicKey:
          type: string
          description: The public key associated with the address.
        type:
          $ref: '#/components/schemas/WalletAddressType'
        network:
          type: string
          description: >-
            Network this address is encoded for (e.g. 'mainnet' | 'testnet' |
            'preview'). Present when a wallet exposes an address per network.
    WaasWallet:
      type: object
      required:
        - accountAddress
        - chainName
        - derivationPath
        - thresholdSignatureScheme
        - walletId
      properties:
        accountAddress:
          type: string
          description: The account address of the wallet
        chainName:
          $ref: '#/components/schemas/WaasChainEnum'
        walletId:
          $ref: '#/components/schemas/uuid'
        thresholdSignatureScheme:
          $ref: '#/components/schemas/ThresholdSignatureScheme'
        derivationPath:
          type: string
          description: The derivation path used for the wallet
        keyShares:
          description: >-
            List of key share objects describing how wallet key material is
            distributed
          type: array
          items:
            $ref: '#/components/schemas/WalletKeyShareInfo'
    DelegatedAccessWalletApiKey:
      type: object
      required:
        - encryptionPublicKey
        - scopes
        - createdAt
        - updatedAt
      properties:
        encryptionPublicKey:
          $ref: '#/components/schemas/DelegatedAccessEncryptionPublicKey'
        scopes:
          description: List of permission scopes granted to this delegated access API key
          type: array
          items:
            type: string
        expiresAt:
          description: >-
            ISO 8601 timestamp of when the delegated access API key expires, or
            null if it does not expire
          type: string
          format: date-time
          nullable: true
        createdAt:
          description: ISO 8601 timestamp of when the delegated access API key was created
          type: string
          format: date-time
        updatedAt:
          description: >-
            ISO 8601 timestamp of when the delegated access API key was last
            updated
          type: string
          format: date-time
        deletedAt:
          description: >-
            ISO 8601 timestamp of when the delegated access API key was deleted,
            or null if active
          type: string
          format: date-time
          nullable: true
    WalletAddressType:
      type: string
      enum:
        - ordinals
        - payment
        - cosmos
        - evm
        - stellar
        - ton
        - midnight_unshielded
        - midnight_dust
        - midnight_shielded
    WaasChainEnum:
      type: string
      enum:
        - EVM
        - MIDNIGHT
        - SVM
        - SUI
        - BTC
        - TON
        - STELLAR
        - TEMPO
        - ALEO
        - TRON
    ThresholdSignatureScheme:
      type: string
      enum:
        - TWO_OF_TWO
        - TWO_OF_THREE
        - THREE_OF_FIVE
    WalletKeyShareInfo:
      type: object
      required:
        - id
        - backupLocation
        - passwordEncrypted
      properties:
        id:
          $ref: '#/components/schemas/uuid'
        backupLocation:
          description: >-
            Where this key share is stored (e.g. "user", "dynamic",
            "googleDrive", "iCloud")
          type: string
        passwordEncrypted:
          description: >-
            Whether this key share is additionally encrypted with a
            user-provided password
          type: boolean
        walletShareDeveloperKeyEncrypted:
          description: >-
            Whether this key share is encrypted with the developer's encryption
            public key
          type: boolean
        externalKeyShareId:
          $ref: '#/components/schemas/uuid'
        keygenId:
          description: Identifier of the key generation ceremony that produced this share
          type: string
    DelegatedAccessEncryptionPublicKey:
      type: object
      required:
        - id
        - projectEnvironmentId
        - kid
        - alg
        - publicKeyPemB64
        - status
        - type
        - createdAt
        - updatedAt
      properties:
        id:
          $ref: '#/components/schemas/uuid'
        projectEnvironmentId:
          $ref: '#/components/schemas/uuid'
        kid:
          type: string
          description: >-
            Short identifier referenced in webhook envelopes so the developer
            knows which private key to use
          maxLength: 64
        alg:
          type: string
          enum:
            - RSA-OAEP-256
            - HYBRID-RSA-AES-256
          description: Algorithm for how this key is used
        publicKeyPemB64:
          type: string
          description: Developer's public key material, PEM encoded then base64'd
          maxLength: 4096
        status:
          type: string
          enum:
            - pending
            - active
            - revoked
          description: Lifecycle status of this key
        type:
          $ref: '#/components/schemas/WaasDelegatedAccessEncryptionPublicKeyType'
        expiresAt:
          type: string
          format: date-time
          nullable: true
          description: Optional expiry for planned rotations
        revokedAt:
          type: string
          format: date-time
          nullable: true
          description: Timestamp when the key was revoked
        createdAt:
          description: ISO 8601 timestamp of when the encryption public key was created
          type: string
          format: date-time
        updatedAt:
          description: >-
            ISO 8601 timestamp of when the encryption public key was last
            updated
          type: string
          format: date-time
    WaasDelegatedAccessEncryptionPublicKeyType:
      type: string
      enum:
        - dynamic
        - external
  responses:
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BadRequest'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Unauthorized'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Forbidden'
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalServerError'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.