Dynamic Environments API

The Environments API from Dynamic — 4 operation(s) for environments.

OpenAPI Specification

dynamic-xyz-environments-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Dashboard Allowlists Environments 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
tags:
- name: Environments
paths:
  /environments/{environmentId}:
    get:
      summary: Find an environment by ID
      operationId: getEnvironmentById
      tags:
      - Environments
      parameters:
      - $ref: '#/components/parameters/environmentId'
      responses:
        '200':
          description: Environment response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectEnvironment'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: Not found
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - bearerAuth: []
    put:
      operationId: updateProjectSettings
      tags:
      - Environments
      summary: Updates the environment settings
      parameters:
      - $ref: '#/components/parameters/environmentId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectSettings'
      responses:
        '200':
          description: Project settings response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectSettings'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - bearerAuth: []
  /environments/{environmentId}/statistics/visitors:
    get:
      operationId: getVisitorsCountByEnvironmentId
      tags:
      - Environments
      summary: Get the unique number of visitors for an environment by environment ID
      parameters:
      - $ref: '#/components/parameters/environmentId'
      responses:
        '200':
          description: Environment Unique Visitor Count Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentVisitorsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - bearerAuth: []
  /environments/{environmentId}/keys:
    get:
      operationId: getKeysForEnvironment
      tags:
      - Environments
      summary: Get keys for an environment given environmentId
      parameters:
      - $ref: '#/components/parameters/environmentId'
      responses:
        '200':
          description: Environment Key response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeyResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: Key not found
        '500':
          description: Error response
      security:
      - bearerAuth: []
  /projects/{projectId}/environments:
    get:
      operationId: getEnvironmentsByProjectId
      tags:
      - Environments
      summary: Get Live and Sandbox environments by projectId
      parameters:
      - $ref: '#/components/parameters/projectId'
      responses:
        '200':
          description: Project environments response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - bearerAuth: []
components:
  schemas:
    SdkViewSectionType:
      type: string
      enum:
      - email
      - emailAndPhone
      - phone
      - separator
      - social
      - text
      - wallet
      - passkey
    UnprocessableEntity:
      type: object
      properties:
        error:
          type: string
          example: Resources already exists for this Object
        code:
          $ref: '#/components/schemas/UnprocessableEntityErrorCode'
        payload:
          $ref: '#/components/schemas/UnprocessableEntityErrorPayload'
      required:
      - error
    NetworkConfiguration:
      type: object
      properties:
        lcdUrl:
          type: string
          example: https://lcd.osmosis.zone
          description: A light client, compared to a full node, tracks only pieces of certain information on a blockchain. Light clients do not track the entire state of a blockchain and also do not contain every transaction/block of a chain.
        chainName:
          type: string
          description: '[Deprecated] use `name` property instead'
          example: Ethereum Mainnet
        key:
          type: string
          example: ethereum
        name:
          type: string
          example: Ethereum Mainnet
        shortName:
          type: string
          example: ETH
        isTestnet:
          type: boolean
          example: false
        chain:
          type: string
          example: ETH
        chainId:
          type: string
          example: '1'
        nameService:
          $ref: '#/components/schemas/NameService'
        networkId:
          type: string
          example: '1'
        iconUrls:
          type: array
          items:
            type: string
        nativeCurrency:
          $ref: '#/components/schemas/NativeCurrency'
        rpcUrls:
          type: array
          items:
            type: string
            example: https://mainnet.infura.io/v3/
        privateCustomerRpcUrls:
          type: array
          description: Contains the client private RPC urls
          items:
            type: string
            example: https://mainnet.infura.io/v3/
        blockExplorerUrls:
          type: array
          items:
            type: string
            example: https://etherscan.io/
        vanityName:
          type: string
          example: Ethereum
        bech32Prefix:
          type: string
          example: cosmos
        genesisHash:
          type: string
          example: 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
        cluster:
          type: string
          example: mainnet, devnet, etc
      required:
      - name
      - shortName
      - chain
      - chainId
      - networkId
      - iconUrls
      - nativeCurrency
      - rpcUrls
      - blockExplorerUrls
    SignInProviderEnum:
      type: string
      description: The 'turnkey' value is deprecated and will be removed in a future version.
      enum:
      - dynamic
      - magicLink
      - blocto
      - turnkey
      - coinbaseWaas
    ProjectSettingsKyc:
      type: object
      properties:
        name:
          type: string
        required:
          type: boolean
        enabled:
          type: boolean
        unique:
          type: boolean
        verify:
          type: boolean
        type:
          $ref: '#/components/schemas/KycFieldType'
        validationRules:
          $ref: '#/components/schemas/CustomFieldValidationRules'
        validationType:
          $ref: '#/components/schemas/CustomFieldType'
        label:
          type: string
        position:
          type: number
      required:
      - name
      - required
      - enabled
      - unique
      - verify
    KeyResponse:
      type: object
      properties:
        key:
          $ref: '#/components/schemas/Key'
    ThresholdSignatureScheme:
      type: string
      enum:
      - TWO_OF_TWO
      - TWO_OF_THREE
      - THREE_OF_FIVE
    OptionalNullableNonEmptyStringWith255MaxLength:
      type: string
      pattern: ^$|^(?=\S)[\p{L}\p{N} _.,:!?&%@\/+-]+(?<=\S)$
      example: An example name
      nullable: true
      maxLength: 255
    SecurityNotifications:
      type: object
      properties:
        waasPrivateKeyExport:
          type: boolean
          description: Send email notification when a user exports their embedded wallet private key. Defaults to true.
        waasSignedTransaction:
          type: boolean
          description: Send email notification when a transaction is signed with an embedded wallet. Defaults to true.
    NativeCurrency:
      type: object
      properties:
        decimals:
          type: number
          example: '18'
        name:
          type: string
          example: Ether
        symbol:
          type: string
          example: ETH
        denom:
          type: string
          example: uatom
        iconUrl:
          type: string
        pricingProviderTokenId:
          type: string
      required:
      - decimals
      - name
      - symbol
    ChainConfiguration:
      type: object
      required:
      - name
      - enabled
      - primary
      properties:
        name:
          type: string
        enabled:
          type: boolean
        primary:
          type: boolean
    ProjectSettingsGeneral:
      type: object
      properties:
        displayName:
          $ref: '#/components/schemas/OptionalNonEmptyString'
        supportEmail:
          type: string
          format: email
          maxLength: 255
          nullable: true
        supportText:
          type: string
          maxLength: 255
          nullable: true
        appLogo:
          type: string
          format: url
          nullable: true
        imageUserNotInAccessList:
          type: string
          format: url
          nullable: true
        imageUserInAccessList:
          type: string
          format: url
          nullable: true
        supportUrls:
          $ref: '#/components/schemas/ProjectSettingsGeneralApps'
        collectUserDataWelcomeHeader:
          type: string
          maxLength: 255
          nullable: true
        collectUserDataWelcomeMessage:
          type: string
          maxLength: 100
          nullable: true
        skipOptionalKYCFieldDuringOnboarding:
          type: boolean
        emailCompanyName:
          $ref: '#/components/schemas/OptionalNonEmptyString'
    ProjectSettingsDesign:
      type: object
      properties:
        modal:
          $ref: '#/components/schemas/ProjectSettingsDesignModal'
        button:
          $ref: '#/components/schemas/ProjectSettingsDesignButton'
        widget:
          $ref: '#/components/schemas/ProjectSettingsDesignWidget'
    WaasWalletSettings:
      type: object
      properties:
        hasDeniedDelegatedAccess:
          type: boolean
        shouldRefreshOnNextSignOn:
          type: boolean
        reshareOnNextSignOn:
          $ref: '#/components/schemas/ThresholdSignatureScheme'
        revokeOnNextSignOn:
          type: boolean
    EnvironmentsResponse:
      type: object
      properties:
        environments:
          type: object
          properties:
            live:
              $ref: '#/components/schemas/ProjectEnvironment'
            sandbox:
              $ref: '#/components/schemas/ProjectEnvironment'
          required:
          - live
          - sandbox
      required:
      - environments
    NonEmptyIsoCountryCode:
      type: string
      pattern: ^[a-zA-Z]{2,4}\d?$
      maxLength: 4
      example: US
    EnvironmentEnum:
      type: string
      enum:
      - sandbox
      - live
    WalletKeyShareInfo:
      type: object
      required:
      - id
      - backupLocation
      - passwordEncrypted
      properties:
        id:
          $ref: '#/components/schemas/uuid'
        backupLocation:
          type: string
        passwordEncrypted:
          type: boolean
        externalKeyShareId:
          $ref: '#/components/schemas/uuid'
    ecdsaValidatorOptions:
      type: string
      enum:
      - zerodev_signer_to_ecdsa
      - zerodev_multi_chain
    UnprocessableEntityErrorPayload:
      type: object
      description: Contains information which the integrating client of this API can use to tailor an experience to a customer to fix the underlying issue that triggered this error.
      properties:
        email:
          type: string
          format: email
          example: joe@email.com
        loginProvider:
          $ref: '#/components/schemas/ProviderEnum'
        embeddedWalletName:
          type: string
        embeddedSocialSigninProvider:
          $ref: '#/components/schemas/ProviderEnum'
        mergeConflicts:
          $ref: '#/components/schemas/MergeConflicts'
        additionalMessages:
          type: array
          items:
            type: string
    JwtVerifiedCredentialFormatEnum:
      type: string
      enum:
      - blockchain
      - email
      - oauth
      - passkey
      - phoneNumber
      - externalUser
    NameServiceSdkSettings:
      type: object
      required:
      - evm
      properties:
        evm:
          type: object
          properties:
            domain:
              type: string
              description: Top-level ENS domain for the environment for EVM embedded wallets in this environment
    SupportedSecurityMethods:
      type: object
      properties:
        passkey:
          $ref: '#/components/schemas/SupportedSecurityMethod'
        email:
          $ref: '#/components/schemas/SupportedSecurityMethod'
        password:
          $ref: '#/components/schemas/SupportedSecurityMethod'
    NameService:
      type: object
      properties:
        registry:
          type: string
          example: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'
    MergeUserConflict:
      type: object
      description: Contains a merge conflict between two users with different values for the same user field data
      required:
      - field
      - fromUser
      - currentUser
      properties:
        field:
          $ref: '#/components/schemas/ProjectSettingsKyc'
        fromUser:
          $ref: '#/components/schemas/MergeUser'
        currentUser:
          $ref: '#/components/schemas/MergeUser'
    ProjectSettings:
      type: object
      properties:
        environmentName:
          $ref: '#/components/schemas/EnvironmentEnum'
        chains:
          type: array
          items:
            $ref: '#/components/schemas/ProjectSettingsChains'
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/ProjectSettingsKyc'
        kyc:
          type: array
          items:
            $ref: '#/components/schemas/ProjectSettingsKyc'
        design:
          $ref: '#/components/schemas/ProjectSettingsDesign'
        general:
          $ref: '#/components/schemas/ProjectSettingsGeneral'
        privacy:
          $ref: '#/components/schemas/ProjectSettingsPrivacy'
        providers:
          type: array
          description: External integrations like e-mail, social credentials, mpc providers, etc.
          items:
            $ref: '#/components/schemas/Provider'
        exchanges:
          type: array
          description: exchanges such as coinbase, binance, etc
          items:
            $ref: '#/components/schemas/Exchange'
        sdk:
          $ref: '#/components/schemas/ProjectSettingsSdk'
        security:
          $ref: '#/components/schemas/ProjectSettingsSecurity'
        networks:
          type: array
          items:
            $ref: '#/components/schemas/NetworkConfigurationResponse'
      required:
      - chains
      - kyc
      - design
      - general
      - privacy
      - sdk
      - security
    InternalServerError:
      type: object
      properties:
        error:
          type: string
          example: Internal Server Error
    ProviderEnum:
      type: string
      description: The 'turnkey' value is deprecated and will be removed in a future version.
      enum:
      - emailOnly
      - magicLink
      - apple
      - bitbucket
      - coinbasesocial
      - discord
      - epicgames
      - facebook
      - farcaster
      - github
      - gitlab
      - google
      - instagram
      - linkedin
      - microsoft
      - twitch
      - twitter
      - blocto
      - banxa
      - coinbaseOnramp
      - cryptoDotCom
      - dynamic
      - alchemy
      - zerodev
      - telegram
      - turnkey
      - coinbaseWaas
      - sms
      - spotify
      - tiktok
      - line
      - steam
      - shopify
      - zksync
      - kraken
      - blockaid
      - passkey
      - okta
      - sendgrid
      - resend
    OptionalNonEmptyUrl:
      type: string
      pattern: ^$|^(https?:\/\/)?[a-z0-9]+([-.]+[a-z0-9]+)*\.[a-z]{2,10}([0-9]{1,5})?(\/.*)?$
      example: https://website-sample.com
    ExternalAuth:
      type: object
      properties:
        enabled:
          type: boolean
        iss:
          $ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength'
        aud:
          $ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength'
        jwksUrl:
          $ref: '#/components/schemas/OptionalNonEmptyUrl'
        cookieName:
          $ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength'
    ProjectSettingsSdkWaasDelegatedAccess:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether delegated access is enabled for the environment. If enabled, developer can trigger user to accept delegated access.
        promptUsersOnSignIn:
          type: boolean
          description: Prompt for delegated access when user logs in.
        requiresDelegation:
          type: boolean
          description: If enabled, users will be required to delegate access.
    MfaBackupCodeAcknowledgement:
      type: string
      nullable: true
      enum:
      - pending
      - complete
    KycFieldType:
      type: string
      enum:
      - standard
      - custom
    NameServiceData:
      type: object
      properties:
        avatar:
          type: string
        name:
          type: string
    FeatureFlags:
      type: object
      required:
      - connectOnlyMultiAsset
      - enableExchanges
      properties:
        connectOnlyMultiAsset:
          type: boolean
        enableExchanges:
          type: boolean
    SdkViewSectionAlignment:
      type: string
      enum:
      - center
      - left
      - right
    ProjectSettingsSdk:
      type: object
      properties:
        nameService:
          $ref: '#/components/schemas/NameServiceSdkSettings'
        featureFlags:
          $ref: '#/components/schemas/FeatureFlags'
        emailSignIn:
          type: object
          properties:
            signInProvider:
              $ref: '#/components/schemas/SignInProviderEnum'
        socialSignIn:
          type: object
          properties:
            signInProvider:
              $ref: '#/components/schemas/SignInProviderEnum'
            providers:
              type: array
              items:
                $ref: '#/components/schemas/SocialSignInProvider'
        exchangeOptions:
          type: array
          items:
            $ref: '#/components/schemas/ExchangeOption'
        multiWallet:
          type: boolean
        multiWalletUnlinkDisabled:
          type: boolean
        mobile:
          $ref: '#/components/schemas/MobileSettings'
        confirmWalletTransfers:
          type: boolean
        onrampFunding:
          type: boolean
        passkeyEmbeddedWalletEnabled:
          type: boolean
          description: passkeyEmbeddedWalletEnabled is deprecated as of v0.19. Please enable embedded wallets using the provider API.
          deprecated: true
        automaticEmbeddedWalletCreation:
          type: boolean
        passkeyEmbeddedWalletRecoveryEnabled:
          type: boolean
        embeddedWalletSecurityMethods:
          type: array
          description: Embedded wallet authenticator security methods required upon creation of the embedded wallet at onboarding
          items:
            $ref: '#/components/schemas/EmbeddedWalletSecurityMethod'
        embeddedWallets:
          type: object
          properties:
            automaticEmbeddedWalletCreation:
              type: boolean
              description: When true embedded wallets will be generated during onboarding for the users. When false customer needs to trigger the creation.
            automaticEmbeddedWalletCreationForExternal:
              type: boolean
              description: When true embedded wallets will be created for external wallets during sign in. When false embedded wallets are not generated for external wallets during sign in.
            showEmbeddedWalletActionsUI:
              type: boolean
              description: When true users will see embedded wallets action confirmation views.
            emailRecoveryEnabled:
              type: boolean
              description: When true users will be able to start recovery for their accounts.
            forceAuthenticatorAtSignup:
              type: boolean
              description: When true user will be prompted to add a security method during onboarding. When false user will need to add a security method before a transaction
            allowSkippingAuthenticatorAtSignup:
              type: boolean
              description: When combined with forceAuthenticatorAtSignup it allows user to skip adding a security method during onboarding. User will need to add it before a transaction.
            sessionKeyDuration:
              $ref: '#/components/schemas/Duration'
            supportedSecurityMethods:
              $ref: '#/components/schemas/SupportedSecurityMethods'
            chainConfigurations:
              $ref: '#/components/schemas/ChainConfigurations'
            domainEnabledByProvider:
              type: boolean
              description: When a client domain needs to be whitelisted explicitly by one of our embedded wallet providers, this will be true when Dynamic has confirmed that this is the case.
            defaultWalletVersion:
              $ref: '#/components/schemas/EmbeddedWalletVersionEnum'
            promptForKeyExport:
              type: boolean
              description: When true, the user will be prompted to export their private key after creating a wallet.
            transactionSimulation:
              type: boolean
              description: When true, user transactions will show asset transfers in the Confirmation UI.
            svmGasSponsorshipEnabled:
              type: boolean
              description: When true, network fees for Solana embedded wallet transactions will be sponsored.
        waas:
          type: object
          properties:
            allowMultipleWaasWalletsPerChain:
              type: boolean
              description: When true, users can have multiple WAAS wallets per chain.
            passcodeRequired:
              type: boolean
              description: When true, passcode security method is forced for v3 embedded wallets. Usually it is an optional security method.
            onSignUp:
              type: object
              properties:
                promptBackupOptions:
                  type: boolean
                  description: When true, backup options are shown during sign up for v3 embedded wallets.
                promptClientShareExport:
                  type: boolean
                  description: When true, users will be prompted to export their client share.
              required:
              - promptBackupOptions
              - promptClientShareExport
            backupOptions:
              type: array
              items:
                $ref: '#/components/schemas/WaasBackupOptionsEnum'
            iCloud:
              type: object
              description: Apple iCloud configuration for key share backup.
              properties:
                containerIdentifier:
                  type: string
                  description: The iCloud container identifier for storing key share backups.
                apiToken:
                  type: string
                  description: CloudKit Web Services API token for public operations.
                environment:
                  type: string
                  enum:
                  - development
                  - production
                  description: The CloudKit environment to use.
            relayUrl:
              type: string
              description: The URL of the relay server for the environment. If not provided, the default relay server will be used.
            delegatedAccessEndpoint:
              type: string
              description: The URL of the delegated access endpoint for WAAS. If not provided, no delegated access endpoint will be used.
            delegatedAccess:
              $ref: '#/components/schemas/ProjectSettingsSdkWaasDelegatedAccess'
            enableForwardMPCClient:
              type: boolean
              description: When true, the sdk will utilize the forward MPC client for select MPC operations.
            customKeyshareRelayBaseUrl:
              type: string
              description: When applicable, this is the custom base URL hostname to use for the WAAS keyshare backup relay. If not provided, the default will be used.
            exportDisabled:
              type: boolean
              description: When true, private key exports are disabled at both API and wallet enclave levels. When false (default), users can export their private keys from v3 embedded wallets.
          required:
          - passcodeRequired
          - onSignUp
          - backupOptions
        walletConnect:
          type: object
          properties:
            projectId:
              type: string
            v2Enabled:
              type: boolean
            walletProjectId:
              type: string
        confirmEmailProviderForVerify:
          type: boolean
        displayDynamicMessaging:
          type: boolean
        hideNetworkInDynamicWidget:
          type: boolean
        preventOrphanedAccounts:
          type: boolean
        views:
          type: array
          description: Configs used to create the views in the sdk.
          items:
            $ref: '#/components/schemas/SdkView'
        accountAbstraction:
          type: object
          properties:
            allWallets:
              description: If set to false, will create smart wallets for embedded wallets only.
              type: boolean
            allUsers:
              description: If set to false, will create smart wallets for new users only.
              type: boolean
            separateSmartWalletAndSigner:
              description: if set to false, only smart wallet will be in user wallets list.
              type: boolean
            enablePasskeys:
              description: If set to false, will disable passkeys (if specified) for zksync wallets.
              type: boolean
        blockEmailSubaddresses:
          type: boolean
        enableMultiAsset:
          type: boolean
        showFiat:
          type: boolean
        disabledWalletConnectors:
          type: array
          description: Ids of wallet connectors to filter out from available options in the sdk
          items:
            $ref: '#/components/schemas/WalletConnectorKey'
        funding:
          $ref: '#/components/schemas/Funding'
    OptionalNonEmptyString:
      type: string
      pattern: ^$|^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'|]+(?<=\S)$
      example: An example name
    ZerodevBundlerProvider:
      type: string
      enum:
      - STACKUP
      - PIMLICO
      - ALCHEMY
      - GELATO
    SdkViewType:
      type: string
      enum:
      - login
    MergeConflicts:
      type: object
      description: Contains information needed for the SDK to surface merge conflicts when attempting to merge information from one user to another
      required:
      - fromUser
      - conflicts
      properties:
        fromUser:
          $ref: '#/components/schemas/SdkUser'
        conflicts:
          type: array
          items:
            $ref: '#/components/schemas/MergeUserConflict'
    Key:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/uuid'
        publicKey:
          type: string
          description: Base64-encoded public key of the corresponding private key used to encode a Dynamic JWT
    ProviderAgreement:
      description: Reference to the user that accepted the terms and conditions, if one is necessary for this provider.
      type: object
      required:
      - termsUrl
      - userId
      - email
      - createdAt
      properties:
        termsUrl:
          description: The url of the terms and conditions or privacy policy needed to be shown to the client when creating a new provider that requires terms and conditions to be signed before starting configuration.
          type: string
          maxLength: 255
        email:
          type: string
          format: email
          maxLength: 255
        userId:
          $ref: '#/components/schemas/uuid'
        createdAt:
          type: string
          format: date-time
    ProjectSettingsSecurity:
      type: object
      properties:
        jwtDuration:
          $ref: '#/components/schemas/Duration'
        hCaptcha:
          $ref: '#/components/schemas/HCaptchaSettings'
        mfa:
          $ref: '#/components/schemas/MFASettings'
        auth:
          $ref: '#/components/schemas/AuthSettings'
        externalAuth:
          $ref: '#/components/schemas/ExternalAuth'
        environmentLocked:
          type: boolean
          description: When enabled, all SDK requests to this environment will be blocked.
        notifications:
          $ref: '#/components/schemas/SecurityNotifications'
    WalletProperties:
      anyOf:
      - $ref: '#/components/schemas/TurnkeyWalletProperties'
      - $ref: '#/components/schemas/HardwareWalletProperties'
      - $ref: '#/components/schemas/CoinbaseMpcWalletProperties'
      - $ref: '#/components/schemas/SmartWalletProperties'
      - $ref: '#/components/schemas/WaasWalletProperties'
    EnvironmentVisitorsResponse:
      type: object
      properties:
        users:
          type: object
          properties:
            count:
              type: integer
            uniquePastMonth:
              type: integer
        visitors:
          type: object
          properties:
            count:
              type: integer
            uniquePastMonth:
              type: integer
    SdkView:
      type: object
      description: Configs used to create the view in the sdk.
      required:
      - type
      properties:
        type:
          $ref: '#/components/schemas/SdkViewType'
        sections:
          type: array
          description: The sections which will be used create the view in the sdk. The sections will be displayed in the order that they appear in the array.
          items:
            $ref: '#/components/schemas/SdkViewSection'
    NonEmptyStringWith255MaxLengthAndSpecialChars:
      type: string
      pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'()\[\]*]+(?<=\S)$
      maxLength: 255
      example: An example name
    caip2:
      description: CAIP-2 Chain ID (https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md)
      type: string
      pattern: ^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$
      minLength: 5
      maxLength: 41
      example: eip155:1
    EmbeddedWalletVersionEnum:
      type: string
      enum:
      - V1
      - V2
      - V3
    ChainConfigurations:
      type: array
      description: Chain specific configuration for dynamic embedded wallets
      items:
        $ref: '#/components/schemas/ChainConfiguration'
    CountryCode:
      type: string
      nullable: true
      description: Standard ISO 3166-1 alpha-2 two-letter country code
      pattern: ^[A-Z]{2}$
      example: US
      maxLength: 255
    CoinbaseMpcWalletProperties:
      type: object
      properties:
        claimed:
          type: boolean
          description: Dynamic pregenerated this wallet and stored the passcode
        source:
          $ref: '#/components/schemas/PasswordSourceTypeEnum'
    ExternalWalletFundingTokenRule:
      type: string
      enum:
      - recommended
      - exact
    ProjectSettingsDesignButton:
      type: object
      

# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dynamic-xyz/refs/heads/main/openapi/dynamic-xyz-environments-api-openapi.yml