openapi: 3.1.0
info:
  title: Fordefi API
  version: 0.2.0
servers:
  - url: https://api.fordefi.com/
    description: Production
paths:
  /api/v1/blockchains:
    get:
      tags:
        - Blockchains
      summary: List Chains
      description: Get a list of supported blockchains.
      operationId: list_chains_api_v1_blockchains_get
      parameters:
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: The page number to fetch.
            default: 1
            title: Page
          description: The page number to fetch.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 0
            description: The number of items per page.
            default: 50
            title: Size
          description: The number of items per page.
        - name: chain_types
          in: query
          required: false
          schema:
            title: Chain Types
            type: array
            items:
              $ref: '#/components/schemas/ChainType'
        - name: sources
          in: query
          required: false
          schema:
            description: >-
              The source of the chain. Can be:<ul><li>`default`: Chains with
              built-in support on Fordefi's platform.<li>`custom`: User-added
              chains with support on Fordefi's platform.</ul>
            title: Sources
            type: array
            items:
              $ref: '#/components/schemas/ChainSource'
          description: >-
            The source of the chain. Can be:<ul><li>`default`: Chains with
            built-in support on Fordefi's platform.<li>`custom`: User-added
            chains with support on Fordefi's platform.</ul>
        - name: only_interacted_with
          in: query
          required: false
          schema:
            type: boolean
            description: >-
              Filter and display only chains the organization have outgoing or
              incoming transactions.
            default: false
            title: Only Interacted With
          description: >-
            Filter and display only chains the organization have outgoing or
            incoming transactions.
        - name: include_mainnets
          in: query
          required: false
          schema:
            type: boolean
            default: true
            title: Include Mainnets
        - name: include_testnets
          in: query
          required: false
          schema:
            type: boolean
            default: true
            title: Include Testnets
        - name: include_exchanges
          in: query
          required: false
          schema:
            type: boolean
            default: false
            title: Include Exchanges
        - name: show_all
          in: query
          required: false
          schema:
            type: boolean
            description: Include all chains in the response.
            default: false
            title: Show All
          description: Include all chains in the response.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListBlockchainsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/blockchains/suggested-fees:
    get:
      tags:
        - Blockchains
      summary: Get Suggested Fees
      description: Get the suggested fees in a specific network.
      operationId: get_suggested_fees_api_v1_blockchains_suggested_fees_get
      parameters:
        - name: chains
          in: query
          required: false
          schema:
            title: Chains
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                The unique chain ID. </br>Can be either one of those supported
                by the default chains below or a custom numeric EVM chain ID
                `evm_<chain_id>` if one was added to your organization.
                <ul><li>`"aptos_mainnet"`</li><li>`"aptos_testnet"`</li><li>`"aptos_movement_mainnet"`</li><li>`"aptos_movement_testnet"`</li><li>`"cosmos_agoric-3"`</li><li>`"cosmos_akashnet-2"`</li><li>`"cosmos_archway-1"`</li><li>`"cosmos_axelar-dojo-1"`</li><li>`"cosmos_bbn-1"`</li><li>`"cosmos_celestia"`</li><li>`"cosmos_cosmoshub-4"`</li><li>`"cosmos_dydx-mainnet-1"`</li><li>`"cosmos_dydx-testnet-4"`</li><li>`"cosmos_dymension_1100-1"`</li><li>`"cosmos_injective-1"`</li><li>`"cosmos_neutron-1"`</li><li>`"cosmos_nillion-1"`</li><li>`"cosmos_noble-1"`</li><li>`"cosmos_osmosis-1"`</li><li>`"cosmos_pacific-1"`</li><li>`"cosmos_stride-1"`</li><li>`"cosmos_thorchain-1"`</li><li>`"cosmos_mantra-1"`</li><li>`"exchange_binance"`</li><li>`"exchange_bybit"`</li><li>`"exchange_coinbase_international"`</li><li>`"exchange_coinbase_us"`</li><li>`"exchange_okx"`</li><li>`"solana_mainnet"`</li><li>`"solana_devnet"`</li><li>`"solana_eclipse_mainnet"`</li><li>`"stacks_mainnet"`</li><li>`"starknet_mainnet"`</li><li>`"sui_mainnet"`</li><li>`"sui_testnet"`</li><li>`"ton_mainnet"`</li><li>`"tron_mainnet"`</li><li>`"bitcoin_mainnet"`</li><li>`"bitcoin_testnet"`</li><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_137"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43114"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_123420000987"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li><li>`"evm_clink_testnet"`</li></ul>
              title: ChainUniqueId
        - name: chain_types
          in: query
          required: false
          schema:
            title: Chain Types
            type: array
            items:
              $ref: '#/components/schemas/ChainType'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSuggestedFeesResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/users:
    get:
      tags:
        - Users
      summary: List Users
      description: Get a list of users in the organization.
      operationId: list_users_api_v1_users_get
      parameters:
        - name: sort_by
          in: query
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/UserSortableFields'
            title: Sort By
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 1
            title: Page
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 400
            minimum: 0
            description: The number of items per page.
            default: 50
            title: Size
          description: The number of items per page.
        - name: types
          in: query
          required: false
          schema:
            description: The types of the users to filter on.
            title: Types
            type: array
            items:
              $ref: '#/components/schemas/UserType'
          description: The types of the users to filter on.
        - name: roles
          in: query
          required: false
          schema:
            description: The roles of the users to filter on.
            title: Roles
            type: array
            items:
              $ref: '#/components/schemas/UserRole'
          description: The roles of the users to filter on.
        - name: states
          in: query
          required: false
          schema:
            description: >-
              The states of the users to filter on.  Is one of:
              <ul><li>`active`: The user can perform all actions in the Fordefi
              platform.<li>`onboarding`: The user has been approved but still
              needs to activate the account.<li>`pending_approval`: The user has
              been invited but not yet approved.<li>`deleted`: The user has been
              deleted.</ul>
            title: States
            type: array
            items:
              $ref: '#/components/schemas/UserState'
          description: >-
            The states of the users to filter on.  Is one of: <ul><li>`active`:
            The user can perform all actions in the Fordefi
            platform.<li>`onboarding`: The user has been approved but still
            needs to activate the account.<li>`pending_approval`: The user has
            been invited but not yet approved.<li>`deleted`: The user has been
            deleted.</ul>
        - name: include_deleted
          in: query
          required: false
          schema:
            description: >-
              `True` to include deleted users in the response, `False`
              otherwise.
            default: false
            title: Include Deleted
            type: boolean
          description: '`True` to include deleted users in the response, `False` otherwise.'
        - name: names
          in: query
          required: false
          schema:
            description: The names of the users.
            title: Names
            type: array
            items:
              type: string
          description: The names of the users.
        - name: emails
          in: query
          required: false
          schema:
            description: The emails of the users.
            title: Emails
            type: array
            items:
              type: string
          description: The emails of the users.
        - name: user_ids
          in: query
          required: false
          schema:
            description: The unique identifiers of the users.
            title: User Ids
            type: array
            items:
              type: string
              format: uuid
          description: The unique identifiers of the users.
        - name: external_ids
          in: query
          required: false
          schema:
            description: The IDs that you assign to the end user.
            title: External Ids
            type: array
            items:
              type: string
          description: The IDs that you assign to the end user.
        - name: group_ids
          in: query
          required: false
          schema:
            description: The unique identifiers of the user groups.
            title: Group Ids
            type: array
            items:
              type: string
              format: uuid
          description: The unique identifiers of the user groups.
        - name: group_ids__not
          in: query
          required: false
          schema:
            description: The unique identifiers of the user groups to exclude.
            title: Group Ids  Not
            type: array
            items:
              type: string
              format: uuid
          description: The unique identifiers of the user groups to exclude.
        - name: states_on_groups
          in: query
          required: false
          schema:
            description: >-
              The states of the user groups to filter group_ids on. Is one of:
              <ul><li>`active`: The user group is active.<li>`pending_addition`:
              The user is pending to be added to the
              group.<li>`pending_removal`: The user is pending to be removed
              from the group.</ul>
            title: States On Groups
            type: array
            items:
              $ref: '#/components/schemas/UserStateOnGroup'
          description: >-
            The states of the user groups to filter group_ids on. Is one of:
            <ul><li>`active`: The user group is active.<li>`pending_addition`:
            The user is pending to be added to the group.<li>`pending_removal`:
            The user is pending to be removed from the group.</ul>
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListUsersResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/users/{id}:
    get:
      tags:
        - Users
      summary: Get User
      description: Gets the user that corresponds to the given ID.
      operationId: get_user_api_v1_users__id__get
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the user to retrieve.
            title: Id
          description: ID of the user to retrieve.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/user-groups:
    get:
      tags:
        - User Groups
      summary: List User Groups
      description: Get a list of user groups
      operationId: list_user_groups_api_v1_user_groups_get
      parameters:
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: The page number to fetch.
            default: 1
            title: Page
          description: The page number to fetch.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 0
            description: The number of items per page.
            default: 50
            title: Size
          description: The number of items per page.
        - name: states
          in: query
          required: false
          schema:
            title: States
            type: array
            items:
              $ref: '#/components/schemas/UserGroupState'
        - name: user_group_ids
          in: query
          required: false
          schema:
            title: User Group Ids
            type: array
            items:
              type: string
              format: uuid
        - name: user_ids
          in: query
          required: false
          schema:
            title: User Ids
            type: array
            items:
              type: string
              format: uuid
        - name: modified_by
          in: query
          required: false
          schema:
            title: Modified By
            type: array
            items:
              type: string
              format: uuid
        - name: name
          in: query
          required: false
          schema:
            title: Name
            type: string
            minLength: 1
        - name: search
          in: query
          required: false
          schema:
            title: Search
            type: string
            minLength: 1
        - name: sort_by
          in: query
          required: false
          schema:
            title: Sort By
            type: array
            items:
              $ref: '#/components/schemas/UserGroupSortableFields'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListUserGroupsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/user-groups/{id}:
    get:
      tags:
        - User Groups
      summary: Get User Group
      description: Retrieve user group details
      operationId: get_user_group_api_v1_user_groups__id__get
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the user group to retrieve.
            title: Id
          description: ID of the user group to retrieve.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserGroupResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/vaults:
    get:
      tags:
        - Vaults
      summary: List Vaults
      description: Get a list of all vaults in an organization.
      operationId: list_vaults_api_v1_vaults_get
      parameters:
        - name: sort_by
          in: query
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/VaultSortableFields'
            title: Sort By
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: The page number to fetch.
            default: 1
            title: Page
          description: The page number to fetch.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 0
            description: The number of items per page.
            default: 50
            title: Size
          description: The number of items per page.
        - name: vault_ids
          in: query
          required: false
          schema:
            description: Vault IDs to filter on.
            title: Vault Ids
            type: array
            items:
              type: string
              format: uuid
          description: Vault IDs to filter on.
        - name: names
          in: query
          required: false
          schema:
            description: List of full names to filter on.
            title: Names
            type: array
            items:
              type: string
          description: List of full names to filter on.
        - name: vault_types
          in: query
          required: false
          schema:
            description: Vault types to filter on.
            title: Vault Types
            type: array
            items:
              $ref: '#/components/schemas/VaultType'
          description: Vault types to filter on.
        - name: vault_states
          in: query
          required: false
          schema:
            description: Vault states to filter on.
            title: Vault States
            type: array
            items:
              $ref: '#/components/schemas/VaultState'
          description: Vault states to filter on.
        - name: keyset_ids
          in: query
          required: false
          schema:
            description: List of keyset IDs to filter on.
            title: Keyset Ids
            type: array
            items:
              type: string
              format: uuid
          description: List of keyset IDs to filter on.
        - name: key_holder_ids
          in: query
          required: false
          schema:
            description: List of key holder IDs to filter on.
            title: Key Holder Ids
            type: array
            items:
              type: string
              format: uuid
          description: List of key holder IDs to filter on.
        - name: vault_group_ids
          in: query
          required: false
          schema:
            description: >-
              List of vault group IDs to filter on. Filter applies to current
              and pending vault groups.
            title: Vault Group Ids
            type: array
            items:
              type: string
              format: uuid
          description: >-
            List of vault group IDs to filter on. Filter applies to current and
            pending vault groups.
        - name: exclude_vault_group_ids
          in: query
          required: false
          schema:
            description: List of vault group IDs to exclude.
            title: Exclude Vault Group Ids
            type: array
            items:
              type: string
              format: uuid
          description: List of vault group IDs to exclude.
        - name: origin_type
          in: query
          required: false
          schema:
            description: Origin type to filter on.
            title: Origin Type
            $ref: '#/components/schemas/VaultOriginType'
          description: Origin type to filter on.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVaultsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
    post:
      tags:
        - Vaults
      summary: Create Vault
      description: Create a new vault.
      operationId: create_vault_api_v1_vaults_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVaultRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateVaultResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_CreateVaultErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '409':
          description: Already Exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/vaults/export:
    get:
      tags:
        - Vaults
      summary: Export Vaults With Assets
      description: Get a CSV-format list of balances of all vaults and their assets.
      operationId: export_vaults_with_assets_api_v1_vaults_export_get
      parameters:
        - name: vaults_ids
          in: query
          required: false
          schema:
            description: Vault IDs to filter on.
            title: Vaults Ids
            type: array
            items:
              type: string
              format: uuid
          description: Vault IDs to filter on.
        - name: vault_types
          in: query
          required: false
          schema:
            description: Vault types to filter on.
            title: Vault Types
            type: array
            items:
              $ref: '#/components/schemas/VaultType'
          description: Vault types to filter on.
      responses:
        '200':
          description: Exported vaults in CSV format
          content:
            text/csv:
              schema:
                type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/vaults/{id}:
    get:
      tags:
        - Vaults
      summary: Get Vault
      description: Retrieve vault details.
      operationId: get_vault_api_v1_vaults__id__get
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the vault to retrieve.
            title: Id
          description: ID of the vault to retrieve.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetVaultResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/vaults/{id}/assets/{asset_id}:
    get:
      tags:
        - Vaults
      summary: Get Vault Asset
      description: Get a specific asset in a vault.
      operationId: get_vault_asset_api_v1_vaults__id__assets__asset_id__get
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the vault to retrieve.
            title: Id
          description: ID of the vault to retrieve.
        - name: asset_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the asset to retrieve.
            title: Asset Id
          description: ID of the asset to retrieve.
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: The page number to fetch.
            default: 1
            title: Page
          description: The page number to fetch.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 0
            description: The number of items per page.
            default: 50
            title: Size
          description: The number of items per page.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOwnedAssetResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/vaults/{id}/assets:
    get:
      tags:
        - Vaults
      summary: Get Vault Assets
      description: Get a list of all assets in a vault.
      operationId: get_vault_assets_api_v1_vaults__id__assets_get
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the vault to retrieve.
            title: Id
          description: ID of the vault to retrieve.
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: The page number to fetch.
            default: 1
            title: Page
          description: The page number to fetch.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 0
            description: The number of items per page.
            default: 50
            title: Size
          description: The number of items per page.
        - name: chains
          in: query
          required: false
          schema:
            title: Chains
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                The unique chain ID. </br>Can be either one of those supported
                by the default chains below or a custom numeric EVM chain ID
                `evm_<chain_id>` if one was added to your organization.
                <ul><li>`"aptos_mainnet"`</li><li>`"aptos_testnet"`</li><li>`"aptos_movement_mainnet"`</li><li>`"aptos_movement_testnet"`</li><li>`"cosmos_agoric-3"`</li><li>`"cosmos_akashnet-2"`</li><li>`"cosmos_archway-1"`</li><li>`"cosmos_axelar-dojo-1"`</li><li>`"cosmos_bbn-1"`</li><li>`"cosmos_celestia"`</li><li>`"cosmos_cosmoshub-4"`</li><li>`"cosmos_dydx-mainnet-1"`</li><li>`"cosmos_dydx-testnet-4"`</li><li>`"cosmos_dymension_1100-1"`</li><li>`"cosmos_injective-1"`</li><li>`"cosmos_neutron-1"`</li><li>`"cosmos_nillion-1"`</li><li>`"cosmos_noble-1"`</li><li>`"cosmos_osmosis-1"`</li><li>`"cosmos_pacific-1"`</li><li>`"cosmos_stride-1"`</li><li>`"cosmos_thorchain-1"`</li><li>`"cosmos_mantra-1"`</li><li>`"exchange_binance"`</li><li>`"exchange_bybit"`</li><li>`"exchange_coinbase_international"`</li><li>`"exchange_coinbase_us"`</li><li>`"exchange_okx"`</li><li>`"solana_mainnet"`</li><li>`"solana_devnet"`</li><li>`"solana_eclipse_mainnet"`</li><li>`"stacks_mainnet"`</li><li>`"starknet_mainnet"`</li><li>`"sui_mainnet"`</li><li>`"sui_testnet"`</li><li>`"ton_mainnet"`</li><li>`"tron_mainnet"`</li><li>`"bitcoin_mainnet"`</li><li>`"bitcoin_testnet"`</li><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_137"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43114"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_123420000987"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li><li>`"evm_clink_testnet"`</li></ul>
              title: ChainUniqueId
        - name: asset_ids
          in: query
          required: false
          schema:
            title: Asset Ids
            type: array
            items:
              type: string
              format: uuid
        - name: is_hidden
          in: query
          required: false
          schema:
            title: Is Hidden
            type: boolean
        - name: search
          in: query
          required: false
          schema:
            title: Search
            type: string
        - name: sort_by
          in: query
          required: false
          schema:
            title: Sort By
            type: array
            items:
              $ref: '#/components/schemas/OwnedAssetsSortableFields'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListOwnedAssetsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/vaults/{id}/name:
    put:
      tags:
        - Vaults
      summary: Rename Vault
      description: Rename an existing vault.
      operationId: rename_vault_api_v1_vaults__id__name_put
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the vault to rename.
            title: Id
          description: ID of the vault to rename.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RenameVaultRequest'
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '409':
          description: Already Exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/vaults/{id}/addresses:
    post:
      tags:
        - Vaults
      summary: Create Address
      description: Create a new address.
      operationId: create_address_api_v1_vaults__id__addresses_post
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the vault to create address in.
            title: Id
          description: ID of the vault to create address in.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVaultAddressRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateVaultAddressResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_CreateVaultAddressErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
    get:
      tags:
        - Vaults
      summary: List Vault Addresses
      description: Get a list of all addresses in a vault.
      operationId: list_vault_addresses_api_v1_vaults__id__addresses_get
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the vault.
            title: Id
          description: ID of the vault.
        - name: sort_by
          in: query
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/VaultAddressSortableFields'
            title: Sort By
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: The page number to fetch.
            default: 1
            title: Page
          description: The page number to fetch.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 0
            description: The number of items per page.
            default: 50
            title: Size
          description: The number of items per page.
        - name: search
          in: query
          required: false
          schema:
            title: Search
            type: string
        - name: addresses
          in: query
          required: false
          schema:
            description: List of addresses to filter on.
            title: Addresses
            type: array
            items:
              type: string
          description: List of addresses to filter on.
        - name: address_types
          in: query
          required: false
          schema:
            description: List of address types to filter on.
            title: Address Types
            type: array
            items:
              $ref: '#/components/schemas/UtxoAddressType'
          description: List of address types to filter on.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVaultAddressesResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/vaults/addresses/{id}/name:
    put:
      tags:
        - Vaults
      summary: Rename Vault Address
      description: Rename an existing vault address.
      operationId: rename_vault_address_api_v1_vaults_addresses__id__name_put
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the vault address to rename.
            title: Id
          description: ID of the vault address to rename.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RenameVaultRequest'
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '409':
          description: Already Exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/vault-groups:
    get:
      tags:
        - Vault Groups
      summary: List Vault Groups
      description: Get a list of vault groups in the organization.
      operationId: list_vault_groups_api_v1_vault_groups_get
      parameters:
        - name: sort_by
          in: query
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/VaultGroupSortableFields'
            title: Sort By
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: The page number to fetch.
            default: 1
            title: Page
          description: The page number to fetch.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 0
            description: The number of items per page.
            default: 50
            title: Size
          description: The number of items per page.
        - name: vault_group_ids
          in: query
          required: false
          schema:
            description: Vault group IDs to filter on.
            title: Vault Group Ids
            type: array
            items:
              type: string
              format: uuid
          description: Vault group IDs to filter on.
        - name: search
          in: query
          required: false
          schema:
            title: Search
            type: string
        - name: access_level
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/ListVaultGroupsFilterByAccessLevel'
            default: view
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVaultGroupsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/assets/owned-assets/{id}:
    get:
      tags:
        - Assets
      summary: Get Owned Asset
      description: Get a a specific asset owned by an organization.
      operationId: get_owned_asset_api_v1_assets_owned_assets__id__get
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the asset to retrieve.
            title: Id
          description: ID of the asset to retrieve.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOwnedAssetResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/assets/owned-assets:
    get:
      tags:
        - Assets
      summary: List Owned Assets
      description: Get a list of all assets owned by an organization.
      operationId: list_owned_assets_api_v1_assets_owned_assets_get
      parameters:
        - name: chains
          in: query
          required: false
          schema:
            title: Chains
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                The unique chain ID. </br>Can be either one of those supported
                by the default chains below or a custom numeric EVM chain ID
                `evm_<chain_id>` if one was added to your organization.
                <ul><li>`"aptos_mainnet"`</li><li>`"aptos_testnet"`</li><li>`"aptos_movement_mainnet"`</li><li>`"aptos_movement_testnet"`</li><li>`"cosmos_agoric-3"`</li><li>`"cosmos_akashnet-2"`</li><li>`"cosmos_archway-1"`</li><li>`"cosmos_axelar-dojo-1"`</li><li>`"cosmos_bbn-1"`</li><li>`"cosmos_celestia"`</li><li>`"cosmos_cosmoshub-4"`</li><li>`"cosmos_dydx-mainnet-1"`</li><li>`"cosmos_dydx-testnet-4"`</li><li>`"cosmos_dymension_1100-1"`</li><li>`"cosmos_injective-1"`</li><li>`"cosmos_neutron-1"`</li><li>`"cosmos_nillion-1"`</li><li>`"cosmos_noble-1"`</li><li>`"cosmos_osmosis-1"`</li><li>`"cosmos_pacific-1"`</li><li>`"cosmos_stride-1"`</li><li>`"cosmos_thorchain-1"`</li><li>`"cosmos_mantra-1"`</li><li>`"exchange_binance"`</li><li>`"exchange_bybit"`</li><li>`"exchange_coinbase_international"`</li><li>`"exchange_coinbase_us"`</li><li>`"exchange_okx"`</li><li>`"solana_mainnet"`</li><li>`"solana_devnet"`</li><li>`"solana_eclipse_mainnet"`</li><li>`"stacks_mainnet"`</li><li>`"starknet_mainnet"`</li><li>`"sui_mainnet"`</li><li>`"sui_testnet"`</li><li>`"ton_mainnet"`</li><li>`"tron_mainnet"`</li><li>`"bitcoin_mainnet"`</li><li>`"bitcoin_testnet"`</li><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_137"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43114"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_123420000987"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li><li>`"evm_clink_testnet"`</li></ul>
              title: ChainUniqueId
        - name: asset_ids
          in: query
          required: false
          schema:
            title: Asset Ids
            type: array
            items:
              type: string
              format: uuid
        - name: is_hidden
          in: query
          required: false
          schema:
            title: Is Hidden
            type: boolean
        - name: search
          in: query
          required: false
          schema:
            title: Search
            type: string
        - name: vault_ids
          in: query
          required: false
          schema:
            title: Vault Ids
            type: array
            items:
              type: string
              format: uuid
        - name: end_user_ids
          in: query
          required: false
          schema:
            title: End User Ids
            type: array
            items:
              type: string
              format: uuid
        - name: sort_by
          in: query
          required: false
          schema:
            title: Sort By
            type: array
            items:
              $ref: '#/components/schemas/OwnedAssetsSortableFields'
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: The page number to fetch.
            default: 1
            title: Page
          description: The page number to fetch.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 0
            description: The number of items per page.
            default: 50
            title: Size
          description: The number of items per page.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListOwnedAssetsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/assets:
    put:
      tags:
        - Assets
      summary: Update Asset Configuration
      description: Update the asset's configuration under the entire organization.
      operationId: update_asset_configuration_api_v1_assets_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAssetConfiguration'
        required: true
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/assets/prices:
    post:
      tags:
        - Assets
      summary: Fetch Asset Prices
      description: Fetch the prices of assets.
      operationId: fetch_asset_prices_api_v1_assets_prices_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FetchAssetPricesRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchAssetPricesResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/assets/asset-infos:
    post:
      tags:
        - Assets
      summary: Create Asset Info
      description: Create asset infos in the Fordefi platform.
      operationId: create_asset_info_api_v1_assets_asset_infos_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAssetInfoRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAssetInfoResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/transactions/export:
    get:
      tags:
        - Transactions
      summary: Export Transactions
      description: Start the export process for filtered transactions
      operationId: export_transactions_api_v1_transactions_export_get
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            description: The amount of transactions to export, unlimited if not set.
            title: Limit
            type: integer
          description: The amount of transactions to export, unlimited if not set.
        - name: created_before
          in: query
          required: false
          schema:
            title: Created Before
            type: string
            format: date-time
        - name: created_after
          in: query
          required: false
          schema:
            title: Created After
            type: string
            format: date-time
        - name: modified_after
          in: query
          required: false
          schema:
            title: Modified After
            type: string
            format: date-time
        - name: vault_ids
          in: query
          required: false
          schema:
            description: >-
              The filter applies both to transactions that have been signed by
              the vault and also to transactions that have interacted with the
              vault. 
            title: Vault Ids
            type: array
            items:
              type: string
              format: uuid
          description: >-
            The filter applies both to transactions that have been signed by the
            vault and also to transactions that have interacted with the vault. 
        - name: chains
          in: query
          required: false
          schema:
            title: Chains
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                The unique chain ID. </br>Can be either one of those supported
                by the default chains below or a custom numeric EVM chain ID
                `evm_<chain_id>` if one was added to your organization.
                <ul><li>`"aptos_mainnet"`</li><li>`"aptos_testnet"`</li><li>`"aptos_movement_mainnet"`</li><li>`"aptos_movement_testnet"`</li><li>`"cosmos_agoric-3"`</li><li>`"cosmos_akashnet-2"`</li><li>`"cosmos_archway-1"`</li><li>`"cosmos_axelar-dojo-1"`</li><li>`"cosmos_bbn-1"`</li><li>`"cosmos_celestia"`</li><li>`"cosmos_cosmoshub-4"`</li><li>`"cosmos_dydx-mainnet-1"`</li><li>`"cosmos_dydx-testnet-4"`</li><li>`"cosmos_dymension_1100-1"`</li><li>`"cosmos_injective-1"`</li><li>`"cosmos_neutron-1"`</li><li>`"cosmos_nillion-1"`</li><li>`"cosmos_noble-1"`</li><li>`"cosmos_osmosis-1"`</li><li>`"cosmos_pacific-1"`</li><li>`"cosmos_stride-1"`</li><li>`"cosmos_thorchain-1"`</li><li>`"cosmos_mantra-1"`</li><li>`"exchange_binance"`</li><li>`"exchange_bybit"`</li><li>`"exchange_coinbase_international"`</li><li>`"exchange_coinbase_us"`</li><li>`"exchange_okx"`</li><li>`"solana_mainnet"`</li><li>`"solana_devnet"`</li><li>`"solana_eclipse_mainnet"`</li><li>`"stacks_mainnet"`</li><li>`"starknet_mainnet"`</li><li>`"sui_mainnet"`</li><li>`"sui_testnet"`</li><li>`"ton_mainnet"`</li><li>`"tron_mainnet"`</li><li>`"bitcoin_mainnet"`</li><li>`"bitcoin_testnet"`</li><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_137"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43114"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_123420000987"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li><li>`"evm_clink_testnet"`</li></ul>
              title: ChainUniqueId
        - name: initiator_ids
          in: query
          required: false
          schema:
            title: Initiator Ids
            type: array
            items:
              type: string
              format: uuid
        - name: types
          in: query
          required: false
          schema:
            title: Types
            type: array
            items:
              $ref: '#/components/schemas/TransactionType'
        - name: sub_types
          in: query
          required: false
          schema:
            title: Sub Types
            type: array
            items:
              $ref: '#/components/schemas/TransactionSubType'
        - name: signer_types
          in: query
          required: false
          schema:
            title: Signer Types
            type: array
            items:
              $ref: '#/components/schemas/SignerType'
        - name: transaction_ids
          in: query
          required: false
          schema:
            title: Transaction Ids
            type: array
            items:
              type: string
              format: uuid
        - name: end_user_ids
          in: query
          required: false
          schema:
            title: End User Ids
            type: array
            items:
              type: string
              format: uuid
        - name: asset_ids
          in: query
          required: false
          schema:
            title: Asset Ids
            type: array
            items:
              type: string
              format: uuid
        - name: direction
          in: query
          required: false
          schema:
            title: Direction
            $ref: '#/components/schemas/TransactionDirection'
        - name: transaction_hashes
          in: query
          required: false
          schema:
            description: >-
              Transaction hashes to filter by. Will return transactions with any
              of the specified hashes. The format of the hash depends on the
              blockchain type.
            title: Transaction Hashes
            type: array
            items:
              type: string
          description: >-
            Transaction hashes to filter by. Will return transactions with any
            of the specified hashes. The format of the hash depends on the
            blockchain type.
        - name: search
          in: query
          required: false
          schema:
            description: String to search transactions by ID or hash.
            title: Search
            type: string
          description: String to search transactions by ID or hash.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Export Transactions Api V1 Transactions Export Get
                $ref: '#/components/schemas/Export'
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/transactions/{id}:
    get:
      tags:
        - Transactions
      summary: Get Transaction
      description: Retrieve transaction details.
      operationId: get_transaction_api_v1_transactions__id__get
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the transaction to retrieve.
            title: Id
          description: ID of the transaction to retrieve.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransactionResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/transactions:
    get:
      tags:
        - Transactions
      summary: List Transactions
      description: Get a list of all transactions in an organization.
      operationId: list_transactions_api_v1_transactions_get
      parameters:
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: The page number to fetch.
            default: 1
            title: Page
          description: The page number to fetch.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 0
            description: The number of items per page.
            default: 50
            title: Size
          description: The number of items per page.
        - name: created_before
          in: query
          required: false
          schema:
            title: Created Before
            type: string
            format: date-time
        - name: created_after
          in: query
          required: false
          schema:
            title: Created After
            type: string
            format: date-time
        - name: modified_after
          in: query
          required: false
          schema:
            title: Modified After
            type: string
            format: date-time
        - name: vault_ids
          in: query
          required: false
          schema:
            description: >-
              The filter applies both to transactions that have been signed by
              the vault and also to transactions that have interacted with the
              vault. 
            title: Vault Ids
            type: array
            items:
              type: string
              format: uuid
          description: >-
            The filter applies both to transactions that have been signed by the
            vault and also to transactions that have interacted with the vault. 
        - name: chains
          in: query
          required: false
          schema:
            title: Chains
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                The unique chain ID. </br>Can be either one of those supported
                by the default chains below or a custom numeric EVM chain ID
                `evm_<chain_id>` if one was added to your organization.
                <ul><li>`"aptos_mainnet"`</li><li>`"aptos_testnet"`</li><li>`"aptos_movement_mainnet"`</li><li>`"aptos_movement_testnet"`</li><li>`"cosmos_agoric-3"`</li><li>`"cosmos_akashnet-2"`</li><li>`"cosmos_archway-1"`</li><li>`"cosmos_axelar-dojo-1"`</li><li>`"cosmos_bbn-1"`</li><li>`"cosmos_celestia"`</li><li>`"cosmos_cosmoshub-4"`</li><li>`"cosmos_dydx-mainnet-1"`</li><li>`"cosmos_dydx-testnet-4"`</li><li>`"cosmos_dymension_1100-1"`</li><li>`"cosmos_injective-1"`</li><li>`"cosmos_neutron-1"`</li><li>`"cosmos_nillion-1"`</li><li>`"cosmos_noble-1"`</li><li>`"cosmos_osmosis-1"`</li><li>`"cosmos_pacific-1"`</li><li>`"cosmos_stride-1"`</li><li>`"cosmos_thorchain-1"`</li><li>`"cosmos_mantra-1"`</li><li>`"exchange_binance"`</li><li>`"exchange_bybit"`</li><li>`"exchange_coinbase_international"`</li><li>`"exchange_coinbase_us"`</li><li>`"exchange_okx"`</li><li>`"solana_mainnet"`</li><li>`"solana_devnet"`</li><li>`"solana_eclipse_mainnet"`</li><li>`"stacks_mainnet"`</li><li>`"starknet_mainnet"`</li><li>`"sui_mainnet"`</li><li>`"sui_testnet"`</li><li>`"ton_mainnet"`</li><li>`"tron_mainnet"`</li><li>`"bitcoin_mainnet"`</li><li>`"bitcoin_testnet"`</li><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_137"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43114"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_123420000987"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li><li>`"evm_clink_testnet"`</li></ul>
              title: ChainUniqueId
        - name: initiator_ids
          in: query
          required: false
          schema:
            title: Initiator Ids
            type: array
            items:
              type: string
              format: uuid
        - name: types
          in: query
          required: false
          schema:
            title: Types
            type: array
            items:
              $ref: '#/components/schemas/TransactionType'
        - name: sub_types
          in: query
          required: false
          schema:
            title: Sub Types
            type: array
            items:
              $ref: '#/components/schemas/TransactionSubType'
        - name: signer_types
          in: query
          required: false
          schema:
            title: Signer Types
            type: array
            items:
              $ref: '#/components/schemas/SignerType'
        - name: transaction_ids
          in: query
          required: false
          schema:
            title: Transaction Ids
            type: array
            items:
              type: string
              format: uuid
        - name: end_user_ids
          in: query
          required: false
          schema:
            title: End User Ids
            type: array
            items:
              type: string
              format: uuid
        - name: asset_ids
          in: query
          required: false
          schema:
            title: Asset Ids
            type: array
            items:
              type: string
              format: uuid
        - name: direction
          in: query
          required: false
          schema:
            title: Direction
            $ref: '#/components/schemas/TransactionDirection'
        - name: transaction_hashes
          in: query
          required: false
          schema:
            description: >-
              Transaction hashes to filter by. Will return transactions with any
              of the specified hashes. The format of the hash depends on the
              blockchain type.
            title: Transaction Hashes
            type: array
            items:
              type: string
          description: >-
            Transaction hashes to filter by. Will return transactions with any
            of the specified hashes. The format of the hash depends on the
            blockchain type.
        - name: search
          in: query
          required: false
          schema:
            description: String to search transactions by ID or hash.
            title: Search
            type: string
          description: String to search transactions by ID or hash.
        - name: states
          in: query
          required: false
          schema:
            description: >-
              State of the transaction. Can be one of the following:`aborted`
              `aborting` `accelerated` `accelerating` `approved` `canceling`
              `cancelled` `completed` `completed_reverted` `dropped`
              `error_processing_by_exchange` `error_pushing_to_blockchain`
              `error_signing` `error_submitting_to_exchange`
              `insufficient_funds` `mined` `mined_reverted` `pending_exchange`
              `pushed_to_blockchain` `queued` `signed` `stuck`
              `waiting_for_approval` `waiting_for_signing_trigger`, or an
              aggregation of states:<ul><li>`error`, which can be one
              of:</li><ul><li>`completed_reverted`</li><li>`dropped`</li><li>`error_processing_by_exchange`</li><li>`error_pushing_to_blockchain`</li><li>`error_signing`</li><li>`error_submitting_to_exchange`</li><li>`insufficient_funds`</li></ul><li>`finalized`,
              which can be one
              of:</li><ul><li>`aborted`</li><li>`accelerated`</li><li>`cancelled`</li><li>`completed`</li><li>`completed_reverted`</li><li>`dropped`</li><li>`error_processing_by_exchange`</li><li>`error_pushing_to_blockchain`</li><li>`error_signing`</li><li>`error_submitting_to_exchange`</li><li>`insufficient_funds`</li></ul><li>`pending`,
              which can be one
              of:</li><ul><li>`aborting`</li><li>`accelerating`</li><li>`approved`</li><li>`canceling`</li><li>`mined`</li><li>`mined_reverted`</li><li>`pending_exchange`</li><li>`pushed_to_blockchain`</li><li>`queued`</li><li>`signed`</li><li>`stuck`</li><li>`waiting_for_approval`</li><li>`waiting_for_signing_trigger`</li></ul></ul>
            title: States
            type: array
            items:
              anyOf:
                - $ref: '#/components/schemas/AggregatedTransactionState'
                - $ref: '#/components/schemas/PushableTransactionState'
                - $ref: '#/components/schemas/NonPushableTransactionState'
                - $ref: '#/components/schemas/ExchangeTransactionState'
          description: >-
            State of the transaction. Can be one of the following:`aborted`
            `aborting` `accelerated` `accelerating` `approved` `canceling`
            `cancelled` `completed` `completed_reverted` `dropped`
            `error_processing_by_exchange` `error_pushing_to_blockchain`
            `error_signing` `error_submitting_to_exchange` `insufficient_funds`
            `mined` `mined_reverted` `pending_exchange` `pushed_to_blockchain`
            `queued` `signed` `stuck` `waiting_for_approval`
            `waiting_for_signing_trigger`, or an aggregation of
            states:<ul><li>`error`, which can be one
            of:</li><ul><li>`completed_reverted`</li><li>`dropped`</li><li>`error_processing_by_exchange`</li><li>`error_pushing_to_blockchain`</li><li>`error_signing`</li><li>`error_submitting_to_exchange`</li><li>`insufficient_funds`</li></ul><li>`finalized`,
            which can be one
            of:</li><ul><li>`aborted`</li><li>`accelerated`</li><li>`cancelled`</li><li>`completed`</li><li>`completed_reverted`</li><li>`dropped`</li><li>`error_processing_by_exchange`</li><li>`error_pushing_to_blockchain`</li><li>`error_signing`</li><li>`error_submitting_to_exchange`</li><li>`insufficient_funds`</li></ul><li>`pending`,
            which can be one
            of:</li><ul><li>`aborting`</li><li>`accelerating`</li><li>`approved`</li><li>`canceling`</li><li>`mined`</li><li>`mined_reverted`</li><li>`pending_exchange`</li><li>`pushed_to_blockchain`</li><li>`queued`</li><li>`signed`</li><li>`stuck`</li><li>`waiting_for_approval`</li><li>`waiting_for_signing_trigger`</li></ul></ul>
        - name: is_hidden
          in: query
          required: false
          schema:
            title: Is Hidden
            type: boolean
        - name: include_full_response
          in: query
          required: false
          schema:
            type: boolean
            default: true
            title: Include Full Response
        - name: batch_ids
          in: query
          required: false
          schema:
            title: Batch Ids
            type: array
            items:
              type: string
              format: uuid
        - name: include_blackbox
          in: query
          required: false
          schema:
            title: Include Blackbox
            type: boolean
        - name: sort_by
          in: query
          required: false
          schema:
            title: Sort By
            type: array
            items:
              $ref: '#/components/schemas/TransactionSortableFields'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTransactionResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
    post:
      tags:
        - Transactions
      summary: Create Transaction
      description: Create a new transaction.
      operationId: create_transaction_api_v1_transactions_post
      parameters:
        - name: x-signature
          in: header
          required: false
          schema:
            description: >-
              Signature of the body. Base64 encoded string. If the request is
              made programatically by an API user, signing of the request is
              required and is intended to protect you from malicious backends. 
            title: X-Signature
            type: string
            example: SGVsbG8=
          description: >-
            Signature of the body. Base64 encoded string. If the request is made
            programatically by an API user, signing of the request is required
            and is intended to protect you from malicious backends. 
        - name: x-timestamp
          in: header
          required: false
          schema:
            description: >-
              Timestamp of the signature. Integer. Specify an Epoch date. If the
              request is made programatically by an API user, the timestamp of
              the request is required and is intended to protect you from replay
              attacks.
            title: X-Timestamp
            type: integer
          description: >-
            Timestamp of the signature. Integer. Specify an Epoch date. If the
            request is made programatically by an API user, the timestamp of the
            request is required and is intended to protect you from replay
            attacks.
        - name: x-idempotence-id
          in: header
          required: false
          schema:
            description: Optional idempotence ID of a transaction.
            title: X-Idempotence-Id
            type: string
            format: uuid
          description: Optional idempotence ID of a transaction.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTransactionRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTransactionResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_CreateTransactionErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/transactions/create-and-wait:
    post:
      tags:
        - Transactions
      summary: Create Transaction And Wait
      description: Create a new transaction and wait until transaction reaches given state.
      operationId: create_transaction_and_wait_api_v1_transactions_create_and_wait_post
      parameters:
        - name: x-signature
          in: header
          required: false
          schema:
            description: >-
              Signature of the body. Base64 encoded string. If the request is
              made programatically by an API user, signing of the request is
              required and is intended to protect you from malicious backends. 
            title: X-Signature
            type: string
            example: SGVsbG8=
          description: >-
            Signature of the body. Base64 encoded string. If the request is made
            programatically by an API user, signing of the request is required
            and is intended to protect you from malicious backends. 
        - name: x-timestamp
          in: header
          required: false
          schema:
            description: >-
              Timestamp of the signature. Integer. Specify an Epoch date. If the
              request is made programatically by an API user, the timestamp of
              the request is required and is intended to protect you from replay
              attacks.
            title: X-Timestamp
            type: integer
          description: >-
            Timestamp of the signature. Integer. Specify an Epoch date. If the
            request is made programatically by an API user, the timestamp of the
            request is required and is intended to protect you from replay
            attacks.
        - name: x-idempotence-id
          in: header
          required: false
          schema:
            description: Optional idempotence ID of a transaction.
            title: X-Idempotence-Id
            type: string
            format: uuid
          description: Optional idempotence ID of a transaction.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTransactionWithWaitRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTransactionWithWaitResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_CreateTransactionErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/transactions/{id}/approve:
    post:
      tags:
        - Transactions
      summary: Approve Transaction
      description: >-
        Approve a transaction.


        A transaction awaits approval when the caller API user has been
        specified as a

        potential approver in the policy and the transaction

        is in the `waiting_for_approval` state.
      operationId: approve_transaction_api_v1_transactions__id__approve_post
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the transaction to approve.
            title: Id
          description: ID of the transaction to approve.
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_ApproveTransactionErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/transactions/{id}/abort:
    post:
      tags:
        - Transactions
      summary: Abort Transaction
      description: >-
        Abort a transaction.


        Abort is possible only for a transaction that is in one of the following
        states:
           <ul>
           <li>Waiting for approval
           <li>Approved
           </ul>

        The aborting user must be one of the following:

        <ul>

        <li>The user who created the transaction

        <li>An admin

        <li>A legitimate approver

        </ul>


        API users can abort only the transactions they created.
      operationId: abort_transaction_api_v1_transactions__id__abort_post
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the transaction to abort.
            title: Id
          description: ID of the transaction to abort.
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_AbortTransactionErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/transactions/{id}/release:
    post:
      tags:
        - Transactions
      summary: Release Transaction
      description: Release a transaction.
      operationId: release_transaction_api_v1_transactions__id__release_post
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the transaction to release.
            title: Id
          description: ID of the transaction to release.
        - name: x-signature
          in: header
          required: false
          schema:
            description: >-
              Signature of the body. Base64 encoded string. If the request is
              made programatically by an API user, signing of the request is
              required and is intended to protect you from malicious backends. 
            title: X-Signature
            type: string
            example: SGVsbG8=
          description: >-
            Signature of the body. Base64 encoded string. If the request is made
            programatically by an API user, signing of the request is required
            and is intended to protect you from malicious backends. 
        - name: x-timestamp
          in: header
          required: false
          schema:
            description: >-
              Timestamp of the signature. Integer. Specify an Epoch date. If the
              request is made programatically by an API user, the timestamp of
              the request is required and is intended to protect you from replay
              attacks.
            title: X-Timestamp
            type: integer
          description: >-
            Timestamp of the signature. Integer. Specify an Epoch date. If the
            request is made programatically by an API user, the timestamp of the
            request is required and is intended to protect you from replay
            attacks.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReleaseTransactionRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReleaseTransactionResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_ReleaseTransactionErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/transactions/predict:
    post:
      tags:
        - Transactions
      summary: Predict Transaction
      description: |-
        Simulate the transaction and changes in token
        balances, in addition to the fee estimation.
      operationId: predict_transaction_api_v1_transactions_predict_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PredictTransactionRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PredictTransactionResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_PredictTransactionErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/transactions/{id}/push:
    post:
      tags:
        - Transactions
      summary: Push Transaction
      description: >-
        Push an existing signed transaction to the chain. The transaction must

        have been previously created with a `push_mode: manual` flag and must
        now

        be in state `signed`.
      operationId: push_transaction_api_v1_transactions__id__push_post
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the transaction to be pushed to chain.
            title: Id
          description: ID of the transaction to be pushed to chain.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PushTransactionRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushTransactionResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/transactions/{id}/update-spam-state:
    put:
      tags:
        - Transactions
      summary: Update Transaction Spam State
      description: Update transaction's spam state.
      operationId: >-
        update_transaction_spam_state_api_v1_transactions__id__update_spam_state_put
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the transaction to update spam state for.
            title: Id
          description: ID of the transaction to update spam state for.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTransactionSpamStateRequest'
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/transactions/{id}/trigger-signing:
    post:
      tags:
        - Transactions
      summary: Trigger Transaction Signing
      description: Trigger transaction signing.
      operationId: >-
        trigger_transaction_signing_api_v1_transactions__id__trigger_signing_post
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the transaction to trigger.
            title: Id
          description: ID of the transaction to trigger.
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/batch-transactions:
    post:
      tags:
        - Batch Transactions
      summary: Create Batch Transaction
      description: |-
        Create a batch of transactions.
        <br>
        Batch transactions are currently supported only on Solana.
      operationId: create_batch_transaction_api_v1_batch_transactions_post
      parameters:
        - name: x-signature
          in: header
          required: false
          schema:
            description: >-
              Signature of the body. Base64 encoded string. If the request is
              made programatically by an API user, signing of the request is
              required and is intended to protect you from malicious backends. 
            title: X-Signature
            type: string
            example: SGVsbG8=
          description: >-
            Signature of the body. Base64 encoded string. If the request is made
            programatically by an API user, signing of the request is required
            and is intended to protect you from malicious backends. 
        - name: x-timestamp
          in: header
          required: false
          schema:
            description: >-
              Timestamp of the signature. Integer. Specify an Epoch date. If the
              request is made programatically by an API user, the timestamp of
              the request is required and is intended to protect you from replay
              attacks.
            title: X-Timestamp
            type: integer
          description: >-
            Timestamp of the signature. Integer. Specify an Epoch date. If the
            request is made programatically by an API user, the timestamp of the
            request is required and is intended to protect you from replay
            attacks.
        - name: x-idempotence-id
          in: header
          required: false
          schema:
            description: Optional idempotence ID of a transaction.
            title: X-Idempotence-Id
            type: string
            format: uuid
          description: Optional idempotence ID of a transaction.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBatchTransactionRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBatchTransactionResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_CreateTransactionErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/batch-transactions/predict:
    post:
      tags:
        - Batch Transactions
      summary: Predict Batch Transaction
      description: |-
        Simulate the batch of transactions and show changes in
        token balances, in addition to the fee estimation
        <br>
        Batch transactions are currently supported only on Solana.
      operationId: predict_batch_transaction_api_v1_batch_transactions_predict_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PredictBatchTransactionRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PredictBatchTransactionResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_PredictTransactionErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/batch-transactions/{batch_id}/abort:
    post:
      tags:
        - Batch Transactions
      summary: Abort Batch Transaction
      description: Abort a batch of transactions.
      operationId: abort_batch_transaction_api_v1_batch_transactions__batch_id__abort_post
      parameters:
        - name: batch_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the batch of transactions.
            title: Batch Id
          description: ID of the batch of transactions.
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_AbortTransactionErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/batch-transactions/{batch_id}/approve:
    post:
      tags:
        - Batch Transactions
      summary: Approve Batch Transaction
      description: Approve a batch of transactions.
      operationId: >-
        approve_batch_transaction_api_v1_batch_transactions__batch_id__approve_post
      parameters:
        - name: batch_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the batch of transactions.
            title: Batch Id
          description: ID of the batch of transactions.
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_ApproveTransactionErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/addressbook/contacts:
    post:
      tags:
        - Address Book
      summary: Create Contact
      description: Create a new address book contact in an organization.
      operationId: create_contact_api_v1_addressbook_contacts_post
      parameters:
        - name: x-signature
          in: header
          required: false
          schema:
            description: >-
              Signature of the body. Base64 encoded string. If the request is
              made programatically by an API user, signing of the request is
              required and is intended to protect you from malicious backends. 
            title: X-Signature
            type: string
            example: SGVsbG8=
          description: >-
            Signature of the body. Base64 encoded string. If the request is made
            programatically by an API user, signing of the request is required
            and is intended to protect you from malicious backends. 
        - name: x-timestamp
          in: header
          required: false
          schema:
            description: >-
              Timestamp of the signature. Integer. Specify an Epoch date. If the
              request is made programatically by an API user, the timestamp of
              the request is required and is intended to protect you from replay
              attacks.
            title: X-Timestamp
            type: integer
          description: >-
            Timestamp of the signature. Integer. Specify an Epoch date. If the
            request is made programatically by an API user, the timestamp of the
            request is required and is intended to protect you from replay
            attacks.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateContactRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressBookContact'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
    get:
      tags:
        - Address Book
      summary: List Contacts
      description: Get a list of all contacts in an organization.
      operationId: list_contacts_api_v1_addressbook_contacts_get
      parameters:
        - name: sort_by
          in: query
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ContactSortableFields'
            title: Sort By
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: The page number to fetch.
            default: 1
            title: Page
          description: The page number to fetch.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 0
            description: The number of items per page.
            default: 50
            title: Size
          description: The number of items per page.
        - name: contact_ids
          in: query
          required: false
          schema:
            description: The contact IDs to filter by.
            title: Contact Ids
            type: array
            items:
              type: string
              format: uuid
          description: The contact IDs to filter by.
        - name: names
          in: query
          required: false
          schema:
            description: The names to filter by.
            title: Names
            type: array
            items:
              type: string
          description: The names to filter by.
        - name: states
          in: query
          required: false
          schema:
            description: The states to filter by.
            title: States
            type: array
            items:
              $ref: '#/components/schemas/AddressBookContactState'
          description: The states to filter by.
        - name: chain_types
          in: query
          required: false
          schema:
            description: The chain types to filter by.
            title: Chain Types
            type: array
            items:
              $ref: '#/components/schemas/ChainType'
          description: The chain types to filter by.
        - name: chains
          in: query
          required: false
          schema:
            description: The chain unique ids to filter by.
            title: Chains
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                The unique chain ID. </br>Can be either one of those supported
                by the default chains below or a custom numeric EVM chain ID
                `evm_<chain_id>` if one was added to your organization.
                <ul><li>`"aptos_mainnet"`</li><li>`"aptos_testnet"`</li><li>`"aptos_movement_mainnet"`</li><li>`"aptos_movement_testnet"`</li><li>`"cosmos_agoric-3"`</li><li>`"cosmos_akashnet-2"`</li><li>`"cosmos_archway-1"`</li><li>`"cosmos_axelar-dojo-1"`</li><li>`"cosmos_bbn-1"`</li><li>`"cosmos_celestia"`</li><li>`"cosmos_cosmoshub-4"`</li><li>`"cosmos_dydx-mainnet-1"`</li><li>`"cosmos_dydx-testnet-4"`</li><li>`"cosmos_dymension_1100-1"`</li><li>`"cosmos_injective-1"`</li><li>`"cosmos_neutron-1"`</li><li>`"cosmos_nillion-1"`</li><li>`"cosmos_noble-1"`</li><li>`"cosmos_osmosis-1"`</li><li>`"cosmos_pacific-1"`</li><li>`"cosmos_stride-1"`</li><li>`"cosmos_thorchain-1"`</li><li>`"cosmos_mantra-1"`</li><li>`"exchange_binance"`</li><li>`"exchange_bybit"`</li><li>`"exchange_coinbase_international"`</li><li>`"exchange_coinbase_us"`</li><li>`"exchange_okx"`</li><li>`"solana_mainnet"`</li><li>`"solana_devnet"`</li><li>`"solana_eclipse_mainnet"`</li><li>`"stacks_mainnet"`</li><li>`"starknet_mainnet"`</li><li>`"sui_mainnet"`</li><li>`"sui_testnet"`</li><li>`"ton_mainnet"`</li><li>`"tron_mainnet"`</li><li>`"bitcoin_mainnet"`</li><li>`"bitcoin_testnet"`</li><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_137"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43114"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_123420000987"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li><li>`"evm_clink_testnet"`</li></ul>
              title: ChainUniqueId
          description: The chain unique ids to filter by.
        - name: asset_ids
          in: query
          required: false
          schema:
            description: List of asset identifiers to filter on.
            title: Asset Ids
            type: array
            items:
              type: string
              format: uuid
          description: List of asset identifiers to filter on.
        - name: address_group_ids
          in: query
          required: false
          schema:
            description: The address group IDs to filter by.
            title: Address Group Ids
            type: array
            items:
              type: string
              format: uuid
          description: The address group IDs to filter by.
        - name: exclude_address_group_ids
          in: query
          required: false
          schema:
            description: List of address group IDs to exclude.
            title: Exclude Address Group Ids
            type: array
            items:
              type: string
              format: uuid
          description: List of address group IDs to exclude.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAddressBookContactResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/addressbook/contacts/{id}/proposals/{proposal_id}/abort:
    post:
      tags:
        - Address Book
      summary: Abort Contact
      description: Abort a contact change proposal.
      operationId: >-
        abort_contact_api_v1_addressbook_contacts__id__proposals__proposal_id__abort_post
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the address book contact to abort its proposal.
            title: Id
          description: ID of the address book contact to abort its proposal.
        - name: proposal_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the address book contact proposal to abort.
            title: Proposal Id
          description: ID of the address book contact proposal to abort.
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/addressbook/contacts/{id}/proposals:
    post:
      tags:
        - Address Book
      summary: Edit Contact
      description: Edit address book contact.
      operationId: edit_contact_api_v1_addressbook_contacts__id__proposals_post
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the address book contact.
            title: Id
          description: ID of the address book contact.
        - name: x-signature
          in: header
          required: false
          schema:
            description: >-
              Signature of the body. Base64 encoded string. If the request is
              made programatically by an API user, signing of the request is
              required and is intended to protect you from malicious backends. 
            title: X-Signature
            type: string
            example: SGVsbG8=
          description: >-
            Signature of the body. Base64 encoded string. If the request is made
            programatically by an API user, signing of the request is required
            and is intended to protect you from malicious backends. 
        - name: x-timestamp
          in: header
          required: false
          schema:
            description: >-
              Timestamp of the signature. Integer. Specify an Epoch date. If the
              request is made programatically by an API user, the timestamp of
              the request is required and is intended to protect you from replay
              attacks.
            title: X-Timestamp
            type: integer
          description: >-
            Timestamp of the signature. Integer. Specify an Epoch date. If the
            request is made programatically by an API user, the timestamp of the
            request is required and is intended to protect you from replay
            attacks.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditContactRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/webhooks/test:
    post:
      tags:
        - Webhooks
      summary: Test Webhook
      description: Test a webhook.
      operationId: test_webhook_api_v1_webhooks_test_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestWebhookRequest'
        required: true
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_TestWebhookErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
      callbacks:
        webhook_event:
          '{$request.body.url}':
            post:
              tags:
                - Webhooks
              summary: Webhook Event
              operationId: webhook_event__request_body_url__post
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/WebhookEvent'
                required: true
              responses:
                '200':
                  description: Successful Response
                  content:
                    application/json:
                      schema: {}
                '422':
                  description: Validation Error
  /api/v1/webhooks/trigger/transaction/{id}:
    post:
      tags:
        - Webhooks
      summary: Trigger Transaction Webhook
      description: Trigger transaction create and latest state via webhooks.
      operationId: >-
        trigger_transaction_webhook_api_v1_webhooks_trigger_transaction__id__post
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the transaction to send events for.
            title: Id
          description: ID of the transaction to send events for.
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/organizations/import-keys:
    post:
      tags:
        - Organizations
      summary: Import Keys
      description: Imports keys for an organization.
      operationId: import_keys_api_v1_organizations_import_keys_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StartImportKeysRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartImportKeysResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '409':
          description: Already Exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/organizations/abort-import-keys:
    post:
      tags:
        - Organizations
      summary: Abort Import Keys
      description: Aborts the import keys process for an organization.
      operationId: abort_import_keys_api_v1_organizations_abort_import_keys_post
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/organizations/import-keys-status:
    get:
      tags:
        - Organizations
      summary: Get Import Keys Status
      description: Gets the import keys status for an organization.
      operationId: get_import_keys_status_api_v1_organizations_import_keys_status_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetImportKeysStatusResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/organizations/list-keys:
    get:
      tags:
        - Organizations
      summary: List Keys
      description: Lists the imported keys for an organization.
      operationId: list_keys_api_v1_organizations_list_keys_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListKeysResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/end-users:
    get:
      tags:
        - End Users
      summary: List End Users
      description: Get a list of end users in the organization.
      operationId: list_end_users_api_v1_end_users_get
      parameters:
        - name: sort_by
          in: query
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/EndUserSortableFields'
            title: Sort By
        - name: include_count
          in: query
          required: false
          schema:
            type: boolean
            default: false
            title: Include Count
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: The page number to fetch.
            default: 1
            title: Page
          description: The page number to fetch.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 0
            description: The number of items per page.
            default: 50
            title: Size
          description: The number of items per page.
        - name: user_ids
          in: query
          required: false
          schema:
            description: The unique identifiers of the users.
            title: User Ids
            type: array
            items:
              type: string
              format: uuid
          description: The unique identifiers of the users.
        - name: external_ids
          in: query
          required: false
          schema:
            description: The external IDs of the users.
            title: External Ids
            type: array
            items:
              type: string
          description: The external IDs of the users.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListEndUsersResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
    post:
      tags:
        - End Users
      summary: Create End User
      description: Create a new end user.
      operationId: create_end_user_api_v1_end_users_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEndUserRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateEndUserResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_CreateEndUserErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '409':
          description: Already Exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/end-users/current:
    get:
      tags:
        - End Users
      summary: Get Current End User
      description: Gets the current end user.
      operationId: get_current_end_user_api_v1_end_users_current_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCurrentEndUserResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/end-users/{id}:
    get:
      tags:
        - End Users
      summary: Get End User
      description: Gets the end user that corresponds to the given ID.
      operationId: get_end_user_api_v1_end_users__id__get
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the end user to retrieve.
            title: Id
          description: ID of the end user to retrieve.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEndUserResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
    delete:
      tags:
        - End Users
      summary: Delete End User
      description: Delete an end user.
      operationId: delete_end_user_api_v1_end_users__id__delete
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the end user to delete.
            title: Id
          description: ID of the end user to delete.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/end-users/{id}/set-export-end-user-keys-permissions:
    put:
      tags:
        - End Users
      summary: Set Export End User Keys Permissions
      description: Allow or disable export of a keyset for an end user.
      operationId: >-
        set_export_end_user_keys_permissions_api_v1_end_users__id__set_export_end_user_keys_permissions_put
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the end user to allow export.
            title: Id
          description: ID of the end user to allow export.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetExportEndUserKeysPermissionsRequest'
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/authorization-tokens:
    post:
      tags:
        - Authorization Tokens
      summary: Issue Authorization Token
      description: Issue authorization token for an end user.
      operationId: issue_authorization_token_api_v1_authorization_tokens_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueAuthTokenRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueAuthTokenResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_IssueEndUserAuthTokenErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
    get:
      tags:
        - Authorization Tokens
      summary: List Authorization Tokens
      description: List authorization tokens of end users.
      operationId: list_authorization_tokens_api_v1_authorization_tokens_get
      parameters:
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: The page number to fetch.
            default: 1
            title: Page
          description: The page number to fetch.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 0
            description: The number of items per page.
            default: 50
            title: Size
          description: The number of items per page.
        - name: user_ids
          in: query
          required: false
          schema:
            description: The unique identifiers of the users.
            title: User Ids
            type: array
            items:
              type: string
              format: uuid
          description: The unique identifiers of the users.
        - name: user_types
          in: query
          required: false
          schema:
            description: User types to filter. Only end users are currently supported.
            title: User Types
            type: array
            items:
              const: end_user
              type: string
          description: User types to filter. Only end users are currently supported.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAuthTokensResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/authorization-tokens/{id}:
    delete:
      tags:
        - Authorization Tokens
      summary: Delete Authorization Token
      description: Delete authorization token of an end user.
      operationId: delete_authorization_token_api_v1_authorization_tokens__id__delete
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the authorization token to delete.
            title: Id
          description: ID of the authorization token to delete.
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/audit-log:
    get:
      tags:
        - Audit Log
      summary: List Audit Log Records
      description: Get a list of audit log records.
      operationId: list_audit_log_records_api_v1_audit_log_get
      parameters:
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: The page number to fetch.
            default: 1
            title: Page
          description: The page number to fetch.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 0
            description: The number of items per page.
            default: 50
            title: Size
          description: The number of items per page.
        - name: created_by
          in: query
          required: false
          schema:
            title: Created By
            type: array
            items:
              type: string
              format: uuid
        - name: created_before
          in: query
          required: false
          schema:
            title: Created Before
            type: string
            format: date-time
        - name: created_after
          in: query
          required: false
          schema:
            title: Created After
            type: string
            format: date-time
        - name: category
          in: query
          required: false
          schema:
            title: Category
            type: array
            items:
              $ref: '#/components/schemas/AuditLogCategory'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAuditLogRecordsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/audit-log/export:
    get:
      tags:
        - Audit Log
      summary: Export Audit Log
      description: Get a CSV-format list of audit log records.
      operationId: export_audit_log_api_v1_audit_log_export_get
      parameters:
        - name: created_by
          in: query
          required: false
          schema:
            title: Created By
            type: array
            items:
              type: string
              format: uuid
        - name: created_before
          in: query
          required: false
          schema:
            title: Created Before
            type: string
            format: date-time
        - name: created_after
          in: query
          required: false
          schema:
            title: Created After
            type: string
            format: date-time
        - name: category
          in: query
          required: false
          schema:
            title: Category
            type: array
            items:
              $ref: '#/components/schemas/AuditLogCategory'
      responses:
        '200':
          description: Exported audit log in CSV format
          content:
            text/csv:
              schema:
                type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/exports/{id}:
    get:
      tags:
        - Exports
      summary: Get Export
      description: Get an export by ID
      operationId: get_export_api_v1_exports__id__get
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the export to retrieve.
            title: Id
          description: ID of the export to retrieve.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Export'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
  /api/v1/exports/{id}/abort:
    post:
      tags:
        - Exports
      summary: Abort Export
      description: Abort an export by ID
      operationId: abort_export_api_v1_exports__id__abort_post
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the export to abort.
            title: Id
          description: ID of the export to abort.
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DefinedPreconditionError_CreateTransactionErrorType_
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
components:
  schemas:
    AbortTransactionErrorType:
      type: string
      enum:
        - invalid_transaction_state
        - non_managed_transaction
        - transactions_already_aborted
        - transaction_is_in_batch
      title: AbortTransactionErrorType
    ActionSigner:
      properties:
        user:
          $ref: '#/components/schemas/UserRef'
          description: Possible signer user
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: When the signer received/signed the action
        has_signed:
          type: boolean
          title: Has Signed
          description: Whether the signer signed the action
      type: object
      required:
        - user
        - modified_at
        - has_signed
      title: ActionSigner
      description: Represents a single signer in an action
    ActionSigningRequest:
      properties:
        signers:
          items:
            $ref: '#/components/schemas/ActionSigner'
          type: array
          title: Signers
          description: >-
            A list of required signers. A signer can be a person or an API
            Signer.
      type: object
      required:
        - signers
      title: ActionSigningRequest
      description: Represents a device sign request for an action in the Foredefi platform
    AddressBookContact:
      oneOf:
        - $ref: '#/components/schemas/AptosAddressBookContact'
        - $ref: '#/components/schemas/CosmosAddressBookContact'
        - $ref: '#/components/schemas/EVMAddressBookContact'
        - $ref: '#/components/schemas/SolanaAddressBookContact'
        - $ref: '#/components/schemas/StacksAddressBookContact'
        - $ref: '#/components/schemas/StarknetAddressBookContact'
        - $ref: '#/components/schemas/SuiAddressBookContact'
        - $ref: '#/components/schemas/TonAddressBookContact'
        - $ref: '#/components/schemas/TronAddressBookContact'
        - $ref: '#/components/schemas/UtxoAddressBookContact'
      description: Represents a contact in the Fordefi platform
      discriminator:
        propertyName: chain_type
        mapping:
          aptos: '#/components/schemas/AptosAddressBookContact'
          cosmos: '#/components/schemas/CosmosAddressBookContact'
          evm: '#/components/schemas/EVMAddressBookContact'
          solana: '#/components/schemas/SolanaAddressBookContact'
          stacks: '#/components/schemas/StacksAddressBookContact'
          starknet: '#/components/schemas/StarknetAddressBookContact'
          sui: '#/components/schemas/SuiAddressBookContact'
          ton: '#/components/schemas/TonAddressBookContact'
          tron: '#/components/schemas/TronAddressBookContact'
          utxo: '#/components/schemas/UtxoAddressBookContact'
    AddressBookContactChangeReason:
      type: string
      enum:
        - creation
        - modification
      title: AddressBookContactChangeReason
    AddressBookContactChanges:
      properties:
        change_request_id:
          title: Change Request Id
          description: The change request ID of the contact.
          type: string
          format: uuid
        change_request_reason:
          $ref: '#/components/schemas/AddressBookContactChangeReason'
          description: The reason for the change request.
      type: object
      required:
        - is_being_edited
        - change_request_reason
      title: AddressBookContactChanges
      description: Represents pending changes for a contact in the Fordefi platform
    AddressBookContactState:
      type: string
      enum:
        - pending
        - active
        - deleted
      title: AddressBookContactState
    AddressLookupTableState:
      properties:
        addresses:
          items:
            $ref: '#/components/schemas/EnrichedSolanaAddress'
          type: array
          title: Addresses
          description: The addresses that are stored in the table.
        authority:
          description: The authority address which must sign for each modification.
          $ref: '#/components/schemas/EnrichedSolanaAddress'
        deactivation_slot:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Deactivation Slot
          description: >-
            The table can be closed when the deactivation slot is no longer the
            recent slot.
          example: '1000000000000000000'
        last_extended_slot:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Last Extended Slot
          description: >-
            The number of the last slot in which a change constitutes an
            extension of the table.
          example: '1000000000000000000'
        last_extended_slot_start_index:
          type: string
          pattern: ^\d+$
          title: Last Extended Slot Start Index
          description: >-
            The start index where the table was last extended from during the
            `last_extended_slot`.
          example: '1000000000000000000'
      type: object
      required:
        - addresses
        - deactivation_slot
        - last_extended_slot
        - last_extended_slot_start_index
      title: AddressLookupTableState
    AggregatedTransactionState:
      type: string
      enum:
        - pending
        - finalized
        - error
      title: AggregatedTransactionState
    AllowanceDetails:
      properties:
        type:
          type: string
          const: allowance
          title: Type
          description: 'A transaction involving an allowance. '
        spender:
          $ref: '#/components/schemas/EnrichedEvmAddress'
      type: object
      required:
        - type
        - spender
      title: AllowanceDetails
    AllowanceEffect:
      oneOf:
        - $ref: '#/components/schemas/Erc20AllowanceChange'
        - $ref: '#/components/schemas/Erc721AllowanceChange'
        - $ref: '#/components/schemas/Erc721AllowanceForAllChange'
        - $ref: '#/components/schemas/Erc1155AllowanceForAllChange'
      discriminator:
        propertyName: type
        mapping:
          erc1155_for_all: '#/components/schemas/Erc1155AllowanceForAllChange'
          erc20: '#/components/schemas/Erc20AllowanceChange'
          erc721: '#/components/schemas/Erc721AllowanceChange'
          erc721_for_all: '#/components/schemas/Erc721AllowanceForAllChange'
    AminoMessage:
      properties:
        type:
          type: string
          title: Type
          description: Message type.
        value:
          type: string
          title: Value
          description: Message value.
      type: object
      required:
        - type
        - value
      title: AminoMessage
    AminoMessagesList:
      properties:
        format:
          type: string
          const: amino
          title: Format
        messages:
          items:
            $ref: '#/components/schemas/AminoMessage'
          type: array
          title: Messages
          description: List of messages in amino format.
      type: object
      required:
        - format
        - messages
      title: AminoMessagesList
    AminoRequestData:
      properties:
        format:
          type: string
          const: amino
          title: Format
        messages:
          items:
            $ref: '#/components/schemas/AminoMessage'
          type: array
          title: Messages
          description: List of messages in amino format.
        memo:
          title: Memo
          description: Transaction memo.
          default: ''
          type: string
        std_fee:
          description: >-
            Fee info for this transaction. Currently, only payment in the native
            currency is supported.
          $ref: '#/components/schemas/StdFeeRequest'
        timeout_height:
          type: integer
          minimum: 0
          title: Timeout Height
          description: Timeout height for this transaction.
          default: 0
      type: object
      required:
        - format
        - messages
      title: AminoRequestData
    AminoSignDoc:
      properties:
        format:
          type: string
          const: amino
          title: Format
        sign_doc:
          $ref: '#/components/schemas/StdSignDoc'
          description: Sign doc for amino format.
      type: object
      required:
        - format
        - sign_doc
      title: AminoSignDoc
    AmlPolicyMatchIncoming:
      properties:
        is_default:
          type: boolean
          title: Is Default
          description: '`True` if this is the default rule, `False` otherwise.'
        rule_id:
          type: string
          format: uuid
          title: Rule Id
          description: The unique identifier of the rule.
        rule_name:
          type: string
          title: Rule Name
          description: The name of the rule.
        action_type:
          $ref: '#/components/schemas/AmlPolicyMatchIncomingActionType'
          description: >-
            The action taken in the event of a policy match. Can be: <ul><li>
            Allow automatically<li> Freeze<li> Skip </ul>
        aml_unfreeze_approval_request:
          description: The AML unfreeze approval request.
          $ref: '#/components/schemas/AmlUnfreezeApprovalRequest'
      type: object
      required:
        - is_default
        - rule_id
        - rule_name
        - action_type
      title: AmlPolicyMatchIncoming
    AmlPolicyMatchIncomingActionType:
      type: string
      enum:
        - allow
        - freeze
        - skip
      title: AmlPolicyMatchIncomingActionType
    AmlPolicyMatchOutgoing:
      properties:
        is_default:
          type: boolean
          title: Is Default
          description: '`True` if this is the default rule, `False` otherwise.'
        rule_id:
          type: string
          format: uuid
          title: Rule Id
          description: The unique identifier of the rule.
        rule_name:
          type: string
          title: Rule Name
          description: The name of the rule.
        action_type:
          $ref: '#/components/schemas/AmlPolicyMatchOutgoingActionType'
          description: >-
            The action taken in the event of a policy match. Can be: <ul><li>
            Allow automatically<li> Block<li> Require express approval<li>
            Skip</ul>
      type: object
      required:
        - is_default
        - rule_id
        - rule_name
        - action_type
      title: AmlPolicyMatchOutgoing
    AmlPolicyMatchOutgoingActionType:
      type: string
      enum:
        - allow
        - block
        - require_approval
        - skip
      title: AmlPolicyMatchOutgoingActionType
    AmlResults:
      properties:
        scan_status:
          $ref: '#/components/schemas/AmlScanStatus'
          description: The status of the AML scan.
        error_message:
          title: Error Message
          description: The error message if the scan failed.
          type: string
        scan_results:
          oneOf:
            - $ref: '#/components/schemas/ChainalysisScanResult'
          discriminator:
            propertyName: type
            mapping:
              chainalysis: '#/components/schemas/ChainalysisScanResult'
      type: object
      required:
        - scan_status
      title: AmlResults
    AmlScanStatus:
      type: string
      enum:
        - error
        - timeout
        - skipped
        - completed
        - unsupported_chain
        - pending
      title: AmlScanStatus
    AmlUnfreezeApprovalRequest:
      properties:
        state:
          $ref: '#/components/schemas/UnfreezeApprovalState'
          description: The state of the incoming policy match.
        approvers:
          items:
            $ref: '#/components/schemas/RequestApprover'
          type: array
          title: Approvers
          description: list of possible approvers
      type: object
      required:
        - state
        - approvers
      title: AmlUnfreezeApprovalRequest
    ApiSigner:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        user_type:
          type: string
          const: api_signer
          title: User Type
          description: The type of the user.
        name:
          type: string
          title: Name
          description: The name of the user.
          example: John Doe
        state:
          type: string
          enum:
            - active
            - onboarding
            - deleted
          title: State
          description: >-
            The state of the user. Is one of: <ul><li>`active`: The user can
            perform all actions in the Fordefi platform.<li>`onboarding`: The
            user has been approved but still needs to activate the
            account.<li>`deleted`: The user has been deleted.</ul>
        last_keep_alive_at:
          title: Last Keep Alive At
          description: The last date and time when API Signer sent a keep-alive.
          type: string
          format: date-time
      type: object
      required:
        - id
        - created_at
        - modified_at
        - user_type
        - name
        - state
      title: ApiSigner
      description: Represents an API Signer in the Fordefi platform.
    ApiSignerRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the user in the Fordefi platform.
        user_type:
          type: string
          const: api_signer
          title: User Type
          description: The type of the user.
        name:
          type: string
          title: Name
          description: The name of the user.
        state:
          type: string
          enum:
            - active
            - onboarding
            - deleted
          title: State
          description: The state of the user.
      type: object
      required:
        - id
        - user_type
        - name
        - state
      title: ApiSignerRef
    ApiUser:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        user_type:
          type: string
          const: api_user
          title: User Type
          description: The type of the user.
        name:
          type: string
          title: Name
          description: The name of the user.
          example: John Doe
        state:
          type: string
          enum:
            - active
            - deleted
          title: State
          description: >-
            The state of the user. Is one of: <ul><li>`active`: The user can
            perform all actions in the Fordefi platform.<li>`deleted`: The user
            has been deleted.</ul>
        role:
          $ref: '#/components/schemas/UserRole'
          description: The role of the user.
        user_groups:
          title: User Groups
          description: The groups the user belongs to.
          items:
            $ref: '#/components/schemas/UserGroupRef'
          type: array
        pending_addition_to_user_groups:
          title: Pending Addition To User Groups
          description: The groups the user is pending to be added to.
          items:
            $ref: '#/components/schemas/UserGroupRef'
          type: array
        pending_removal_from_user_groups:
          title: Pending Removal From User Groups
          description: The groups the user is pending to be removed from.
          items:
            $ref: '#/components/schemas/UserGroupRef'
          type: array
      type: object
      required:
        - id
        - created_at
        - modified_at
        - user_type
        - name
        - state
        - role
      title: ApiUser
      description: Represents an API user in the Fordefi platform.
    ApiUserRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the user in the Fordefi platform.
        user_type:
          type: string
          const: api_user
          title: User Type
          description: The type of the user.
        name:
          type: string
          title: Name
          description: The name of the user.
        state:
          type: string
          enum:
            - active
            - deleted
          title: State
          description: The state of the user.
        role:
          $ref: '#/components/schemas/UserRole'
          description: The role of the user.
      type: object
      required:
        - id
        - user_type
        - name
        - state
        - role
      title: ApiUserRef
    ApprovalRequest:
      properties:
        state:
          $ref: '#/components/schemas/ApprovalRequestState'
          description: The state of the approval request.
        required_groups:
          type: integer
          title: Required Groups
          description: The number of required approval groups.
        approval_groups:
          items:
            $ref: '#/components/schemas/ApprovalRequestGroup'
          type: array
          title: Approval Groups
          description: A list of the possible approvers from different groups.
        error_message:
          title: Error Message
          description: The error message if the request failed.
          type: string
      type: object
      required:
        - state
        - required_groups
        - approval_groups
      title: ApprovalRequest
      description: Represents an approval request for an action in the Fordefi platform
    ApprovalRequestGroup:
      properties:
        quorum_size:
          type: integer
          title: Quorum Size
          description: The number of approvers required to approve the transaction.
        approvers:
          items:
            $ref: '#/components/schemas/RequestApprover'
          type: array
          title: Approvers
          description: A list of the possible approvers.
      type: object
      required:
        - quorum_size
        - approvers
      title: ApprovalRequestGroup
    ApprovalRequestState:
      type: string
      enum:
        - created
        - approved
        - insufficient_approvers
        - auto_approved
        - failed
      title: ApprovalRequestState
      description: Represents the whole approval request state
    ApprovalState:
      type: string
      enum:
        - pending
        - approved
        - unauthorized
        - not_participated
      title: ApprovalState
      description: Represents an approval state of a single approver
    ApproveTransactionErrorType:
      type: string
      enum:
        - invalid_transaction_state
        - non_managed_transaction
      title: ApproveTransactionErrorType
    AptosAddressBookContact:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        name:
          type: string
          title: Name
          description: The name of the contact.
        modified_by:
          $ref: '#/components/schemas/UserRef'
          description: Address last modifier.
        state:
          $ref: '#/components/schemas/AddressBookContactState'
          description: The state of the contact.
        groups:
          items:
            $ref: '#/components/schemas/GroupRef'
          type: array
          title: Groups
          description: List of contact's groups.
        pending_changes:
          description: Pending changes for the contact.
          $ref: '#/components/schemas/AddressBookContactChanges'
        asset_infos:
          items:
            $ref: '#/components/schemas/AssetInfo'
          type: array
          title: Asset Infos
          description: >-
            A list of asset infos for the contact. Can be used to enforce
            trading of specific assets intransfers to this address
        chain_type:
          type: string
          const: aptos
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address on the aptos chain.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
        chains:
          items:
            $ref: '#/components/schemas/EnrichedAptosChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - modified_by
        - state
        - groups
        - asset_infos
        - chain_type
        - address
        - chains
      title: AptosAddressBookContact
      description: Represents a contact in the Fordefi platform
    AptosAddressBookContactAddressRef:
      properties:
        chain_type:
          type: string
          const: aptos
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address on the Aptos chain.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
        chains:
          items:
            $ref: '#/components/schemas/AptosChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
      type: object
      required:
        - chain_type
        - address
        - chains
      title: AptosAddressBookContactAddressRef
    AptosAssetIdentifier:
      properties:
        type:
          type: string
          const: aptos
          title: Type
          description: Aptos asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/AptosNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/AptosCoinAssetIdentifierRequest'
            - $ref: '#/components/schemas/AptosNewCoinAssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              coin: '#/components/schemas/AptosCoinAssetIdentifierRequest'
              native: '#/components/schemas/AptosNativeAssetIdentifierRequest'
              new_coin: '#/components/schemas/AptosNewCoinAssetIdentifierRequest'
        chain:
          $ref: '#/components/schemas/EnrichedAptosChain'
      type: object
      required:
        - type
        - details
        - chain
      title: AptosAssetIdentifier
    AptosAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: aptos
          title: Type
          description: Aptos asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/AptosNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/AptosCoinAssetIdentifierRequest'
            - $ref: '#/components/schemas/AptosNewCoinAssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              coin: '#/components/schemas/AptosCoinAssetIdentifierRequest'
              native: '#/components/schemas/AptosNativeAssetIdentifierRequest'
              new_coin: '#/components/schemas/AptosNewCoinAssetIdentifierRequest'
      type: object
      required:
        - type
        - details
      title: AptosAssetIdentifierRequest
    AptosBalanceChangeEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        diff:
          type: string
          pattern: ^-?\d+$
          title: Diff
          description: >-
            The amount of that was added to or deducted from the owner's
            balance. If the amount was deducted, the value is negative; if the
            amount was added, the value is positive.
          example: '1000000000000000000'
        address:
          $ref: '#/components/schemas/EnrichedAptosAddress'
          description: The address affected by the balance change.
      type: object
      required:
        - priced_asset
        - diff
        - type
        - address
      title: AptosBalanceChangeEffect
    AptosBalanceChangeEffectType:
      type: string
      enum:
        - native
        - coin
      title: AptosBalanceChangeEffectType
    AptosBlock:
      properties:
        height:
          type: integer
          title: Height
          description: The block number.
        hash:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Hash
          description: The block hash.
          example: '0x780f21260f89d610f24eed21b34d29229611a37e0003e83dd0da91981d7131ae'
        mined_at:
          type: string
          format: date-time
          title: Mined At
          description: The date and time when this block was mined.
      type: object
      required:
        - height
        - hash
        - mined_at
      title: AptosBlock
    AptosChain:
      properties:
        chain_type:
          type: string
          const: aptos
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/AptosChainUniqueId'
          description: The type of the Aptos-based chain.
      type: object
      required:
        - chain_type
        - unique_id
      title: AptosChain
    AptosChainUniqueId:
      type: string
      enum:
        - aptos_mainnet
        - aptos_testnet
        - aptos_movement_mainnet
        - aptos_movement_testnet
      title: AptosChainUniqueId
    AptosCoinAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: coin
          title: Type
          description: Legacy coin asset identifier type.
        coin_type:
          $ref: '#/components/schemas/AptosCoinTypeRequest'
          description: The legacy coin details.
      type: object
      required:
        - type
        - coin_type
      title: AptosCoinAssetIdentifierRequest
    AptosCoinTransferDetails:
      properties:
        type:
          type: string
          const: coin_transfer
          title: Type
          description: >-
            A transaction involving the transfer of non-APT coin from one
            address to another. 
        sender:
          $ref: '#/components/schemas/EnrichedAptosAddress'
          description: The sender of the coins.
        recipient:
          $ref: '#/components/schemas/EnrichedAptosAddress'
          description: The recipient of the coins.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - sender
        - recipient
      title: AptosCoinTransferDetails
    AptosCoinTypeRequest:
      properties:
        chain:
          $ref: '#/components/schemas/AptosChainUniqueId'
          description: The chain details this address is of.
        coin_type_str:
          type: string
          title: Coin Type Str
          description: Coin type string representation.
      type: object
      required:
        - chain
        - coin_type_str
      title: AptosCoinTypeRequest
      description: Coin type represents a blockchain legacy coin type.
    AptosCustomGasPriceRequest:
      properties:
        type:
          type: string
          const: custom
          title: Type
        price:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Price
          description: The price per gas unit (in Octa).
          example: '1000000000000000000'
      type: object
      required:
        - type
        - price
      title: AptosCustomGasPriceRequest
    AptosEffects:
      properties:
        balance_changes:
          items:
            $ref: '#/components/schemas/AptosBalanceChangeEffect'
          type: array
          title: Balance Changes
        transfers:
          items:
            $ref: '#/components/schemas/AptosTransferEffect'
          type: array
          title: Transfers
      type: object
      required:
        - balance_changes
        - transfers
      title: AptosEffects
    AptosEntryFunctionPayload:
      properties:
        typed_arguments:
          items:
            type: string
          type: array
          title: Typed Arguments
          description: The typed arguments of the transaction.
        arguments:
          items:
            type: string
          type: array
          title: Arguments
          description: The arguments of the transaction.
        type:
          type: string
          const: entry_point
          title: Type
        function_id:
          type: string
          title: Function Id
          description: The entry function of the transaction.
        address:
          $ref: '#/components/schemas/EnrichedAptosAddress'
          description: The address of the entry function.
        module:
          type: string
          title: Module
          description: The module of the entry function.
        function_name:
          type: string
          title: Function Name
          description: The name of the entry function.
      type: object
      required:
        - typed_arguments
        - arguments
        - type
        - function_id
        - address
        - module
        - function_name
      title: AptosEntryFunctionPayload
    AptosEntryPointDetails:
      properties:
        type:
          type: string
          const: entry_point
          title: Type
          description: A transaction with an entry point function.
        recipient:
          $ref: '#/components/schemas/EnrichedAptosAddress'
          description: The recipient of the coins.
      type: object
      required:
        - type
        - recipient
      title: AptosEntryPointDetails
    AptosFeeStatement:
      properties:
        execution_gas_units:
          type: string
          pattern: ^\d+$
          title: Execution Gas Units
          example: '1000000000000000000'
        io_gas_units:
          type: string
          pattern: ^\d+$
          title: Io Gas Units
          example: '1000000000000000000'
        storage_fee_octas:
          type: string
          pattern: ^\d+$
          title: Storage Fee Octas
          example: '1000000000000000000'
        storage_fee_refund_octas:
          type: string
          pattern: ^\d+$
          title: Storage Fee Refund Octas
          example: '1000000000000000000'
        total_charge_gas_units:
          type: string
          pattern: ^\d+$
          title: Total Charge Gas Units
          example: '1000000000000000000'
        total_gas:
          type: string
          pattern: ^-?\d+$
          title: Total Gas
          description: The total gas fee of the transaction (in Octa).
          example: '1000000000000000000'
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The information of the asset used to pay the fee and amount used.
      type: object
      required:
        - execution_gas_units
        - io_gas_units
        - storage_fee_octas
        - storage_fee_refund_octas
        - total_charge_gas_units
        - total_gas
        - priced_asset
      title: AptosFeeStatement
    AptosGasConfigRequest:
      properties:
        max_gas:
          title: Max Gas
          description: The maximum gas amount payed in the transaction (in Octa).
          type: string
          pattern: ^0*[1-9]\d*$
          example: '1000000000000000000'
        price:
          oneOf:
            - $ref: '#/components/schemas/AptosCustomGasPriceRequest'
            - $ref: '#/components/schemas/AptosPriorityGasPriceRequest'
          description: The price details per gas unit.
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/AptosCustomGasPriceRequest'
              priority: '#/components/schemas/AptosPriorityGasPriceRequest'
      type: object
      required:
        - price
      title: AptosGasConfigRequest
    AptosGasData:
      properties:
        gas_limit:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Gas Limit
          description: The gas limit of the transaction.
          example: '1000000000000000000'
        price:
          $ref: '#/components/schemas/AptosGasPrice'
          description: The price per gas unit.
      type: object
      required:
        - gas_limit
        - price
      title: AptosGasData
    AptosGasPrice:
      properties:
        priority_level:
          $ref: '#/components/schemas/FeePriorityLevel'
          description: The priority level of the gas price.
        price:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Price
          description: The price per gas unit (in Octa).
          example: '1000000000000000000'
        fiat_price:
          description: The price of the asset used to pay the gas.
          $ref: '#/components/schemas/Price'
      type: object
      required:
        - priority_level
        - price
      title: AptosGasPrice
    AptosMessage:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state of the message.
        state_changes:
          items:
            $ref: '#/components/schemas/NonPushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the message.
        type:
          type: string
          const: aptos_message
          title: Type
          description: Aptos message type.
        aptos_message_type:
          $ref: '#/components/schemas/AptosMessageType'
          description: The type of the Aptos message.
        raw_original_message_to_sign:
          type: string
          title: Raw Original Message To Sign
          description: >-
            The original message that was requested to be signed, encoded in
            base64.
          example: SGVsbG8=
        string_original_message_to_sign:
          type: string
          title: String Original Message To Sign
          description: The original message that was requested to be signed.
        raw_full_message_to_sign:
          type: string
          title: Raw Full Message To Sign
          description: The full message to be signed, encoded in base64.
          example: SGVsbG8=
        string_full_message_to_sign:
          type: string
          title: String Full Message To Sign
          description: The full message to be signed.
        chain:
          $ref: '#/components/schemas/EnrichedAptosChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedAptosAddress'
          description: The sender of the message.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - aptos_message_type
        - raw_original_message_to_sign
        - string_original_message_to_sign
        - raw_full_message_to_sign
        - string_full_message_to_sign
        - chain
        - sender
      title: AptosMessage
    AptosMessageType:
      type: string
      enum:
        - personal_message_type
      title: AptosMessageType
    AptosNativeAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: native
          title: Type
          description: Aptos asset identifier type.
        chain:
          $ref: '#/components/schemas/AptosChainUniqueId'
          description: The details of the chain of the native asset.
      type: object
      required:
        - type
        - chain
      title: AptosNativeAssetIdentifierRequest
    AptosNativeTransferDetails:
      properties:
        type:
          type: string
          const: native_transfer
          title: Type
          description: >-
            A transaction involving the transfer of APT coin from one address to
            another. 
        sender:
          $ref: '#/components/schemas/EnrichedAptosAddress'
          description: The sender of the coins.
        recipient:
          $ref: '#/components/schemas/EnrichedAptosAddress'
          description: The recipient of the coins.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - sender
        - recipient
      title: AptosNativeTransferDetails
    AptosNewCoinAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: new_coin
          title: Type
          description: New coin asset identifier type.
        new_coin_type:
          $ref: '#/components/schemas/AptosNewCoinTypeRequest'
          description: The new coin details.
      type: object
      required:
        - type
        - new_coin_type
      title: AptosNewCoinAssetIdentifierRequest
    AptosNewCoinTypeRequest:
      properties:
        chain:
          $ref: '#/components/schemas/AptosChainUniqueId'
          description: The chain details this address is of.
        metadata_address:
          type: string
          title: Metadata Address
          description: New coin's metadata address.
      type: object
      required:
        - chain
        - metadata_address
      title: AptosNewCoinTypeRequest
      description: New coin type represents a blockchain new coin type.
    AptosPersonalMessageRequest:
      properties:
        type:
          type: string
          const: personal_message_type
          title: Type
          description: Personal message standard.
        should_include_address:
          type: boolean
          title: Should Include Address
          description: Whether the address should be included in the signed message.
        application:
          type: string
          minLength: 1
          title: Application
          description: The application that the message is for.
        should_include_application:
          type: boolean
          title: Should Include Application
          description: Whether the application should be included in the signed message.
        chain:
          $ref: '#/components/schemas/AptosChainUniqueId'
          description: The details of the chain of the native asset.
        should_include_chain:
          type: boolean
          title: Should Include Chain
          description: Whether the chain should be included in the signed message.
        message_to_sign:
          type: string
          minLength: 1
          title: Message To Sign
          description: The message to be signed, encoded in base64.
          example: SGVsbG8=
        nonce:
          type: string
          title: Nonce
          description: The nonce of the message.
      type: object
      required:
        - type
        - should_include_address
        - application
        - should_include_application
        - chain
        - should_include_chain
        - message_to_sign
        - nonce
      title: AptosPersonalMessageRequest
    AptosPriorityGasPriceRequest:
      properties:
        type:
          type: string
          const: priority
          title: Type
        priority:
          $ref: '#/components/schemas/FeePriorityLevelRequest'
          description: >-
            Using the Gas Priority option, you allocate gas according to
            `gas_limit` and `priority_level`, the range of fee you are willing
            to add: low, medium, or high. Fordefi then does its best to achieve
            success, based on these parameters.
      type: object
      required:
        - type
        - priority
      title: AptosPriorityGasPriceRequest
    AptosRecipientHex:
      properties:
        type:
          type: string
          const: hex
          title: Type
          description: The type of the recipient.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address of the recipient.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
      type: object
      required:
        - type
        - address
      title: AptosRecipientHex
    AptosReversion:
      properties:
        state:
          $ref: '#/components/schemas/AptosReversionState'
          description: >-
            The state of the reversion. Is one of the
            following:<ul><li>`not_reverted`: No reversion, meaning, completed
            successfully.<li>`unknown_revert`: Fordefi does not know the reason
            for the reversion.<li>`contract_asserted`: The smart contract
            originally made an assertion that was later rejected and the
            transaction was halted. <li>`insufficient_funds_gas_and_value`: A
            transaction was sent for which there were insufficient funds.</ul>
        reason:
          title: Reason
          description: The reason for the reversion (additional information).
          type: string
      type: object
      required:
        - state
      title: AptosReversion
    AptosReversionState:
      type: string
      enum:
        - not_reverted
        - unknown_revert
        - contract_asserted
        - insufficient_funds_gas_and_value
      title: AptosReversionState
    AptosScriptDetails:
      properties:
        type:
          type: string
          const: script
          title: Type
          description: A transaction with running a move script.
      type: object
      required:
        - type
      title: AptosScriptDetails
    AptosSuggestedFees:
      properties:
        type:
          type: string
          const: aptos
          title: Type
          description: The type of the chain.
        low:
          type: string
          pattern: ^\d+$
          title: Low
          description: The low suggested fee price.
          example: '1000000000000000000'
        medium:
          type: string
          pattern: ^\d+$
          title: Medium
          description: The medium suggested fee price.
          example: '1000000000000000000'
        high:
          type: string
          pattern: ^\d+$
          title: High
          description: The high suggested fee price
          example: '1000000000000000000'
        chain_unique_id:
          $ref: '#/components/schemas/AptosChainUniqueId'
          description: The APTOS chain unique id.
      type: object
      required:
        - type
        - low
        - medium
        - high
        - chain_unique_id
      title: AptosSuggestedFees
    AptosTransaction:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state of the transaction.
        state_changes:
          items:
            $ref: '#/components/schemas/PushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the transaction.
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        incoming_aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchIncoming'
        type:
          type: string
          const: aptos_transaction
          title: Type
          description: Aptos transaction type.
        aptos_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/AptosNativeTransferDetails'
            - $ref: '#/components/schemas/AptosCoinTransferDetails'
            - $ref: '#/components/schemas/AptosEntryPointDetails'
            - $ref: '#/components/schemas/AptosScriptDetails'
          description: Details of the Aptos transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              coin_transfer: '#/components/schemas/AptosCoinTransferDetails'
              entry_point: '#/components/schemas/AptosEntryPointDetails'
              native_transfer: '#/components/schemas/AptosNativeTransferDetails'
              script: '#/components/schemas/AptosScriptDetails'
        chain:
          $ref: '#/components/schemas/EnrichedAptosChain'
          description: The details of the chain this transaction is on.
        version:
          title: Version
          description: The version of the transaction.
          type: integer
        nonce:
          title: Nonce
          description: The nonce of the transaction.
          type: integer
        sender:
          $ref: '#/components/schemas/EnrichedAptosAddress'
          description: The sender of the transaction.
        payload:
          oneOf:
            - $ref: '#/components/schemas/AptosEntryFunctionPayload'
            - $ref: '#/components/schemas/ScriptPayload'
          description: The payload of the transaction.
          discriminator:
            propertyName: type
            mapping:
              entry_point: '#/components/schemas/AptosEntryFunctionPayload'
              script: '#/components/schemas/ScriptPayload'
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          example: '0x780f21260f89d610f24eed21b34d29229611a37e0003e83dd0da91981d7131ae'
        block:
          description: The block in which the transaction was mined.
          $ref: '#/components/schemas/AptosBlock'
        gas_submitted:
          $ref: '#/components/schemas/AptosGasData'
          description: The gas details submitted for the transaction.
        serialized_signed_transaction:
          title: Serialized Signed Transaction
          description: The serialized signed transaction.
          type: string
          example: SGVsbG8=
        expected_result:
          description: The expected result of the transaction in case it is mined.
          $ref: '#/components/schemas/AptosTransactionResult'
        simulation_status_result:
          description: Whether simulation succeeded or failed.
          $ref: '#/components/schemas/SimulationStatusResult'
        mined_result:
          description: The result of the transaction after it was mined.
          $ref: '#/components/schemas/AptosTransactionResult'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of this transaction in a blockchain explorer. For example,
            explorer.aptoslabs.com
          example: >-
            https://explorer.aptoslabs.com/txn/0xe2b537430a0b30d05272f4cb99945d3355fdcb5d1390b348cdc320645786799d?network=mainnet
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - aptos_transaction_type_details
        - chain
        - sender
        - payload
        - gas_submitted
      title: AptosTransaction
    AptosTransactionResult:
      properties:
        reversion:
          $ref: '#/components/schemas/AptosReversion'
          description: Details whether the transaction was reverted or not.
        fee_statement:
          $ref: '#/components/schemas/AptosFeeStatement'
          description: The fee statement of the transaction.
        effects:
          $ref: '#/components/schemas/AptosEffects'
          description: The effects of the transaction.
        raw_result:
          title: Raw Result
          description: The raw result of the transaction.
          type: string
      type: object
      required:
        - reversion
        - fee_statement
        - effects
      title: AptosTransactionResult
    AptosTransactionType:
      type: string
      enum:
        - native_transfer
        - coin_transfer
        - entry_point
        - script
      title: AptosTransactionType
    AptosTransferEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the transfer.
          example: '1000000000000000000'
        from:
          $ref: '#/components/schemas/EnrichedAptosAddress'
          description: The sender of the transfer.
        to:
          $ref: '#/components/schemas/EnrichedAptosAddress'
          description: The receiver of the transfer.
      type: object
      required:
        - priced_asset
        - amount
        - type
        - from
        - to
      title: AptosTransferEffect
    AptosTransferEffectType:
      type: string
      enum:
        - native
        - coin
      title: AptosTransferEffectType
    AptosVault:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        metadata:
          title: Metadata
          description: Metadata in a form of map<str, bool | str | int | array[str]>.
          additionalProperties:
            anyOf:
              - items:
                  type: string
                type: array
              - type: string
              - type: integer
              - type: boolean
          type: object
        name:
          type: string
          title: Name
          description: The name of the vault.
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: Details of the vault creator.
        vault_group:
          $ref: '#/components/schemas/VaultGroupRef'
          description: The vault group this vault belongs to.
        pending_vault_group_action:
          description: Details of pending vault movement to another vault group.
          oneOf:
            - $ref: '#/components/schemas/PendingVaultGroupActionAdd'
            - $ref: '#/components/schemas/PendingVaultGroupActionRemove'
          discriminator:
            propertyName: type
            mapping:
              add: '#/components/schemas/PendingVaultGroupActionAdd'
              remove: '#/components/schemas/PendingVaultGroupActionRemove'
        state:
          $ref: '#/components/schemas/VaultState'
          description: State of the vault.
        public_key_compressed:
          type: string
          title: Public Key Compressed
          description: >-
            The public key of the vault in its compressed form: <ul> <li>For
            ECDSA and Schnorr keys, the public key is represented as 33 bytes
            (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1
            standard](https://www.secg.org/SEC1-Ver-1.0.pdf). <li>For EdDSA, the
            public key is represented as a 32-byte value, as defined by [RFC
            8032](https://datatracker.ietf.org/doc/html/rfc8032). </ul>
          example: SGVsbG8=
        derivation_info:
          $ref: '#/components/schemas/VaultDerivationInfo'
          description: The derivation info of the vault.
        key_holder:
          description: >-
            The user who owns the keyset of the vault. If not provided, the
            vault is owned by the organization.
          $ref: '#/components/schemas/EndUserRef'
        origin_type:
          $ref: '#/components/schemas/VaultOriginType'
          description: The origin type of the vault.
        type:
          type: string
          const: aptos
          title: Type
          description: Aptos vault type.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address of the vault on Aptos chain types.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - created_by
        - vault_group
        - state
        - are_all_chains_disabled
        - derivation_path
        - public_key_compressed
        - derivation_info
        - keyset
        - origin_type
        - type
        - address
      title: AptosVault
      description: Represents an Aptos vault in the Fordefi platform
    Asset:
      oneOf:
        - $ref: '#/components/schemas/CosmosAsset'
        - $ref: '#/components/schemas/EvmAsset'
        - $ref: '#/components/schemas/SolanaAsset'
        - $ref: '#/components/schemas/SuiAsset'
        - $ref: '#/components/schemas/UtxoAsset'
      discriminator:
        propertyName: type
        mapping:
          cosmos_asset: '#/components/schemas/CosmosAsset'
          evm_asset: '#/components/schemas/EvmAsset'
          solana_asset: '#/components/schemas/SolanaAsset'
          sui_asset: '#/components/schemas/SuiAsset'
          utxo_asset: '#/components/schemas/UtxoAsset'
    AssetIdentifier:
      oneOf:
        - $ref: '#/components/schemas/AptosAssetIdentifier'
        - $ref: '#/components/schemas/CosmosAssetIdentifier'
        - $ref: '#/components/schemas/EvmAssetIdentifier'
        - $ref: '#/components/schemas/ExchangeAssetIdentifier'
        - $ref: '#/components/schemas/SolanaAssetIdentifier'
        - $ref: '#/components/schemas/StacksAssetIdentifier'
        - $ref: '#/components/schemas/StarknetAssetIdentifier'
        - $ref: '#/components/schemas/SuiAssetIdentifier'
        - $ref: '#/components/schemas/TonAssetIdentifier'
        - $ref: '#/components/schemas/TronAssetIdentifier'
        - $ref: '#/components/schemas/UtxoAssetIdentifier'
      discriminator:
        propertyName: type
        mapping:
          aptos: '#/components/schemas/AptosAssetIdentifier'
          cosmos: '#/components/schemas/CosmosAssetIdentifier'
          evm: '#/components/schemas/EvmAssetIdentifier'
          exchange: '#/components/schemas/ExchangeAssetIdentifier'
          solana: '#/components/schemas/SolanaAssetIdentifier'
          stacks: '#/components/schemas/StacksAssetIdentifier'
          starknet: '#/components/schemas/StarknetAssetIdentifier'
          sui: '#/components/schemas/SuiAssetIdentifier'
          ton: '#/components/schemas/TonAssetIdentifier'
          tron: '#/components/schemas/TronAssetIdentifier'
          utxo: '#/components/schemas/UtxoAssetIdentifier'
    AssetIdentifierRequest:
      oneOf:
        - $ref: '#/components/schemas/AptosAssetIdentifierRequest'
        - $ref: '#/components/schemas/CosmosAssetIdentifierRequest'
        - $ref: '#/components/schemas/EvmAssetIdentifierRequest'
        - $ref: '#/components/schemas/ExchangeAssetIdentifierRequest'
        - $ref: '#/components/schemas/SolanaAssetIdentifierRequest'
        - $ref: '#/components/schemas/StacksAssetIdentifierRequest'
        - $ref: '#/components/schemas/StarknetAssetIdentifierRequest'
        - $ref: '#/components/schemas/SuiAssetIdentifierRequest'
        - $ref: '#/components/schemas/TonAssetIdentifierRequest'
        - $ref: '#/components/schemas/TronAssetIdentifierRequest'
        - $ref: '#/components/schemas/UtxoAssetIdentifierRequest'
      discriminator:
        propertyName: type
        mapping:
          aptos: '#/components/schemas/AptosAssetIdentifierRequest'
          cosmos: '#/components/schemas/CosmosAssetIdentifierRequest'
          evm: '#/components/schemas/EvmAssetIdentifierRequest'
          exchange: '#/components/schemas/ExchangeAssetIdentifierRequest'
          solana: '#/components/schemas/SolanaAssetIdentifierRequest'
          stacks: '#/components/schemas/StacksAssetIdentifierRequest'
          starknet: '#/components/schemas/StarknetAssetIdentifierRequest'
          sui: '#/components/schemas/SuiAssetIdentifierRequest'
          ton: '#/components/schemas/TonAssetIdentifierRequest'
          tron: '#/components/schemas/TronAssetIdentifierRequest'
          utxo: '#/components/schemas/UtxoAssetIdentifierRequest'
    AssetInfo:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The asset ID.
        asset_identifier:
          $ref: '#/components/schemas/AssetIdentifier'
          description: The asset identifier.
        name:
          type: string
          title: Name
          description: The name of the asset.
        symbol:
          type: string
          title: Symbol
          description: The symbol (ticker) of the asset.
        decimals:
          type: integer
          minimum: 0
          title: Decimals
        verified:
          type: boolean
          title: Verified
          description: '`True` if this asset is verified by Fordefi, `False` otherwise.'
        metadata_uri:
          title: Metadata Uri
          description: The URI of the asset metadata.
          type: string
        is_spam:
          type: boolean
          title: Is Spam
          description: '`True` if this asset is spam, `False` otherwise.'
        logo_url:
          title: Logo Url
          description: The URL of the asset logo.
          type: string
          minLength: 1
          format: uri
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of a blockchain explorer that provides real-time information
            about the asset.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
      type: object
      required:
        - id
        - asset_identifier
        - name
        - symbol
        - decimals
        - verified
        - is_spam
      title: AssetInfo
    AuditLogCategory:
      type: string
      enum:
        - policy
        - quorum_threshold
        - user_management
        - vaults
        - address_book
        - address_group
        - backup
        - webhook
        - vault_group
        - user_group
        - aml_policy
        - chains
        - device_backup
        - import_keys
      title: AuditLogCategory
    AuditLogRecord:
      properties:
        timestamp:
          type: string
          format: date-time
          title: Timestamp
          description: The timestamp of the audit log record.
        request_id:
          type: string
          title: Request Id
          description: The request ID of the audit log record.
        category:
          $ref: '#/components/schemas/AuditLogCategory'
          description: The category of the audit log record.
        action:
          type: string
          title: Action
          description: The action of the audit log record.
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: The user who created the audit log record.
        description:
          type: string
          title: Description
          description: The description of the audit log record.
        client_ip:
          type: string
          title: Client Ip
          description: The client IP of the audit log record.
      type: object
      required:
        - timestamp
        - request_id
        - category
        - action
        - created_by
        - description
        - client_ip
      title: AuditLogRecord
    AuthToken:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        user_id:
          type: string
          format: uuid
          title: User Id
          description: ID of the end user the authorization token is issued for.
        expired_at:
          type: string
          format: date-time
          title: Expired At
          description: Token expiration time.
        user_type:
          type: string
          const: end_user
          title: User Type
          description: Type of the user the authorization token is issued for.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - user_id
        - expired_at
        - user_type
      title: AuthToken
    Balances:
      properties:
        mined:
          type: string
          pattern: ^\d+$
          title: Mined
          description: The cryptocurrency mined balance of the asset.
          example: '1000000000000000000'
        pending_incoming:
          type: string
          pattern: ^\d+$
          title: Pending Incoming
          description: The balance of incoming cryptocurrency, pending confirmation.
          example: '1000000000000000000'
      type: object
      required:
        - mined
        - pending_incoming
      title: Balances
      description: The cryptocurrency balances of the asset.
    BaseError:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
      type: object
      required:
        - title
        - detail
      title: BaseError
    BaseSuiPureInput:
      properties:
        value:
          oneOf:
            - $ref: '#/components/schemas/SuiPureNumberInput'
            - $ref: '#/components/schemas/SuiPureByteArrayInput'
            - $ref: '#/components/schemas/SuiPureStringInput'
            - $ref: '#/components/schemas/SuiPureBoolInput'
          discriminator:
            propertyName: type
            mapping:
              bool_pure_input: '#/components/schemas/SuiPureBoolInput'
              byte_array_pure_input: '#/components/schemas/SuiPureByteArrayInput'
              number_pure_input: '#/components/schemas/SuiPureNumberInput'
              string_pure_input: '#/components/schemas/SuiPureStringInput'
      type: object
      required:
        - value
      title: BaseSuiPureInput
    BatchData:
      properties:
        batch_id:
          type: string
          format: uuid
          title: Batch Id
          description: The unique identifier of the batch.
        index_in_batch:
          type: integer
          title: Index In Batch
          description: Index of transaction in the batch.
        batch_size:
          type: integer
          title: Batch Size
          description: The number of transactions in the batch.
      type: object
      required:
        - batch_id
        - index_in_batch
        - batch_size
      title: BatchData
    BatchSolanaTransactionInstanceDetails:
      properties:
        version:
          $ref: '#/components/schemas/SolanaMessageVersion'
          description: The version of the transaction message.
        instructions:
          items:
            $ref: '#/components/schemas/SolanaCompiledInstructionRequest'
          type: array
          title: Instructions
          description: The instructions of the transaction.
        accounts:
          items:
            $ref: '#/components/schemas/SolanaTransactionAccountRequest'
          type: array
          title: Accounts
          description: Accounts used in the transaction.
        address_table_lookups:
          items:
            $ref: '#/components/schemas/SolanaMessageAddressTableLookupRequest'
          type: array
          title: Address Table Lookups
          description: Lookup tables of accounts used in the transaction.
        signatures:
          title: Signatures
          description: Any partial signatures on the transaction.
          items:
            $ref: '#/components/schemas/SolanaTransactionSignaturesRequest'
          type: array
        recent_blockhash:
          title: Recent Blockhash
          description: The transaction nonce (a recently processed blockhash).
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          example: 4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZAMdL4VZHirAn
      type: object
      required:
        - version
        - instructions
        - accounts
        - address_table_lookups
      title: BatchSolanaTransactionInstanceDetails
    BatchSolanaTransactionRequestDetails:
      properties:
        fee:
          description: The fee configuration for the transaction.
          oneOf:
            - $ref: '#/components/schemas/SolanaCustomFeeRequest'
            - $ref: '#/components/schemas/SolanaPriorityFeeRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/SolanaCustomFeeRequest'
              priority: '#/components/schemas/SolanaPriorityFeeRequest'
        type:
          type: string
          const: solana_raw_transaction
          title: Type
          description: A Solana raw transaction is for any operation.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        skip_simulation:
          type: boolean
          title: Skip Simulation
          description: '`True` to perform the action without simulation, `False` otherwise.'
          default: false
        chain:
          $ref: '#/components/schemas/SolanaChainUniqueId'
          description: >-
            The chain that this transaction is on. Specify the chain name (for
            example, `solana_mainnet`).
        transactions:
          items:
            $ref: '#/components/schemas/BatchSolanaTransactionInstanceDetails'
          type: array
          minItems: 1
          title: Transactions
          description: Details of the transactions in the batch.
      type: object
      required:
        - type
        - chain
        - transactions
      title: BatchSolanaTransactionRequestDetails
    BinaryHashPayload:
      properties:
        format:
          type: string
          const: hash_binary
          title: Format
          description: ''
        hash_binary:
          type: string
          minLength: 1
          title: Hash Binary
          description: The payload to sign, encoded in base64 format.
          example: SGVsbG8=
      type: object
      required:
        - format
        - hash_binary
      title: BinaryHashPayload
    BitcoinVaultCreateAddressType:
      type: string
      enum:
        - legacy
        - segwit
        - taproot
      title: BitcoinVaultCreateAddressType
    BlackBoxSignature:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          $ref: '#/components/schemas/ManagedTransactionData'
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state of the message.
        state_changes:
          items:
            $ref: '#/components/schemas/NonPushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the message.
        type:
          type: string
          const: black_box_signature
          title: Type
          description: Black Box signature type.
        vault:
          $ref: '#/components/schemas/VaultRef'
          description: The vault whose key has been used for signing.
        details:
          oneOf:
            - $ref: '#/components/schemas/BlackBoxSignatureEcdsaStarkDetails'
            - $ref: '#/components/schemas/BlackBoxSignatureEcdsaSecp256k1Details'
            - $ref: '#/components/schemas/BlackBoxSignatureEddsaEd25519Details'
            - $ref: '#/components/schemas/BlackBoxSignatureSchnorrSecp256k1Details'
          discriminator:
            propertyName: type
            mapping:
              ecdsa_secp256k1: '#/components/schemas/BlackBoxSignatureEcdsaSecp256k1Details'
              ecdsa_stark: '#/components/schemas/BlackBoxSignatureEcdsaStarkDetails'
              eddsa_ed25519: '#/components/schemas/BlackBoxSignatureEddsaEd25519Details'
              schnorr_secp256k1: '#/components/schemas/BlackBoxSignatureSchnorrSecp256k1Details'
      type: object
      required:
        - id
        - created_at
        - modified_at
        - managed_transaction_data
        - signatures
        - direction
        - state
        - state_changes
        - type
        - payload
        - vault
        - details
      title: BlackBoxSignature
    BlackBoxSignatureEcdsaSecp256k1Details:
      properties:
        type:
          type: string
          const: ecdsa_secp256k1
          title: Type
          description: ECDSA over the secp256k1 curve signature.
        signature:
          description: The ECDSA signature.
          $ref: '#/components/schemas/EcdsaSignature'
        hash_binary:
          type: string
          minLength: 1
          title: Hash Binary
          description: The payload to sign, encoded in base64 format.
          example: SGVsbG8=
      type: object
      required:
        - type
        - hash_binary
      title: BlackBoxSignatureEcdsaSecp256k1Details
    BlackBoxSignatureEcdsaStarkDetails:
      properties:
        type:
          type: string
          const: ecdsa_stark
          title: Type
          description: ECDSA over the Stark curve signature.
        signature:
          description: The ECDSA signature over the Stark curve.
          $ref: '#/components/schemas/EcdsaSignature'
        hash_binary:
          type: string
          minLength: 1
          title: Hash Binary
          description: 'The payload to sign, encoded in base64 format. '
          example: SGVsbG8=
      type: object
      required:
        - type
        - hash_binary
        - hash_integer
      title: BlackBoxSignatureEcdsaStarkDetails
    BlackBoxSignatureEddsaEd25519Details:
      properties:
        type:
          type: string
          const: eddsa_ed25519
          title: Type
          description: EDDSA signature.
        signature:
          title: Signature
          description: The signature, encoded in base64 format.
          type: string
          example: SGVsbG8=
        hash_binary:
          type: string
          minLength: 1
          title: Hash Binary
          description: The payload to sign, encoded in base64 format.
          example: SGVsbG8=
      type: object
      required:
        - type
        - hash_binary
      title: BlackBoxSignatureEddsaEd25519Details
    BlackBoxSignatureSchnorrSecp256k1Details:
      properties:
        type:
          type: string
          const: schnorr_secp256k1
          title: Type
          description: Schnorr over the secp256k1 curve signature.
        signature:
          title: Signature
          description: The signature, encoded in base64 format.
          type: string
          example: SGVsbG8=
        hash_binary:
          type: string
          minLength: 1
          title: Hash Binary
          description: The payload to sign, encoded in base64 format.
          example: SGVsbG8=
      type: object
      required:
        - type
        - hash_binary
      title: BlackBoxSignatureSchnorrSecp256k1Details
    BlackBoxVault:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        metadata:
          title: Metadata
          description: Metadata in a form of map<str, bool | str | int | array[str]>.
          additionalProperties:
            anyOf:
              - items:
                  type: string
                type: array
              - type: string
              - type: integer
              - type: boolean
          type: object
        name:
          type: string
          title: Name
          description: The name of the vault.
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: Details of the vault creator.
        vault_group:
          $ref: '#/components/schemas/VaultGroupRef'
          description: The vault group this vault belongs to.
        pending_vault_group_action:
          description: Details of pending vault movement to another vault group.
          oneOf:
            - $ref: '#/components/schemas/PendingVaultGroupActionAdd'
            - $ref: '#/components/schemas/PendingVaultGroupActionRemove'
          discriminator:
            propertyName: type
            mapping:
              add: '#/components/schemas/PendingVaultGroupActionAdd'
              remove: '#/components/schemas/PendingVaultGroupActionRemove'
        state:
          $ref: '#/components/schemas/VaultState'
          description: State of the vault.
        public_key_compressed:
          type: string
          title: Public Key Compressed
          description: >-
            The public key of the vault in its compressed form: <ul> <li>For
            ECDSA and Schnorr keys, the public key is represented as 33 bytes
            (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1
            standard](https://www.secg.org/SEC1-Ver-1.0.pdf). <li>For EdDSA, the
            public key is represented as a 32-byte value, as defined by [RFC
            8032](https://datatracker.ietf.org/doc/html/rfc8032). </ul>
          example: SGVsbG8=
        derivation_info:
          $ref: '#/components/schemas/VaultDerivationInfo'
          description: The derivation info of the vault.
        key_holder:
          description: >-
            The user who owns the keyset of the vault. If not provided, the
            vault is owned by the organization.
          $ref: '#/components/schemas/EndUserRef'
        origin_type:
          $ref: '#/components/schemas/VaultOriginType'
          description: The origin type of the vault.
        type:
          type: string
          const: black_box
          title: Type
          description: Black Box vault type.
        details:
          oneOf:
            - $ref: '#/components/schemas/EcdsaStarkBlackBoxVault'
            - $ref: '#/components/schemas/EcdsaSecp256k1BlackBoxVault'
            - $ref: '#/components/schemas/EddsaED25519BlackBoxVault'
            - $ref: '#/components/schemas/SchnorrSecp256k1BlackBoxValue'
          discriminator:
            propertyName: type
            mapping:
              ecdsa_secp256k1: '#/components/schemas/EcdsaSecp256k1BlackBoxVault'
              ecdsa_stark: '#/components/schemas/EcdsaStarkBlackBoxVault'
              eddsa_ed25519: '#/components/schemas/EddsaED25519BlackBoxVault'
              schnorr_secp256k1: '#/components/schemas/SchnorrSecp256k1BlackBoxValue'
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - created_by
        - vault_group
        - state
        - are_all_chains_disabled
        - derivation_path
        - public_key_compressed
        - derivation_info
        - keyset
        - origin_type
        - type
        - details
      title: BlackBoxVault
      description: Represents a Black Box vault in the Fordefi platform
    BlockchainExplorer:
      properties:
        transaction_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Transaction Url
          example: https://etherscan.io/tx/
        address_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Address Url
          example: https://etherscan.io/address/
        root_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Root Url
          example: https://etherscan.io/
        transaction_format_url:
          title: Transaction Format Url
          example: https://etherscan.io/tx/%s
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        address_format_url:
          title: Address Format Url
          example: https://etherscan.io/address/%s
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        asset_format_url:
          title: Asset Format Url
          example: https://etherscan.io/address/%s
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
      type: object
      required:
        - transaction_url
        - address_url
        - root_url
      title: BlockchainExplorer
      description: A blockchain explorer entry point.
    BridgeDetails:
      properties:
        type:
          type: string
          const: cross_chain_bridge
          title: Type
          description: >-
            A transaction involving the transfer of funds from one blockchain to
            another.
        bridge_effect:
          $ref: '#/components/schemas/EvmBridgeEffect'
          description: The bridge effects of the transaction.
      type: object
      required:
        - type
        - bridge_effect
      title: BridgeDetails
    Category:
      properties:
        id:
          type: integer
          title: Id
          description: The category ID.
        name:
          type: string
          title: Name
          description: The category name.
      type: object
      required:
        - id
        - name
      title: Category
    ChainSource:
      type: string
      enum:
        - default
        - custom
      title: ChainSource
    ChainType:
      type: string
      enum:
        - aptos
        - cosmos
        - evm
        - exchange
        - solana
        - stacks
        - starknet
        - sui
        - ton
        - tron
        - utxo
      title: ChainType
    ChainalysisAlert:
      properties:
        category:
          $ref: '#/components/schemas/Category'
          description: The category of the AML rule.
        risk_rating:
          $ref: '#/components/schemas/RiskRating'
          description: Defines the alert's risk as SEVERE, HIGH, MEDIUM, or LOW.
        exposure_type:
          $ref: '#/components/schemas/ExposureType'
          description: >-
            Defines the exposure direction as DIRECT. Currently, we don't
            provide indirect exposure for withdrawal attempt alerts.
        service:
          title: Service
          description: >-
            The name of the service as defined by Chainalysis. If null returns,
            Chainalysis has not yet identified the service's name.
          type: string
      type: object
      required:
        - category
        - risk_rating
        - exposure_type
      title: ChainalysisAlert
    ChainalysisScanResult:
      properties:
        type:
          type: string
          const: chainalysis
          title: Type
          description: The type of the policy.
        alerts:
          items:
            $ref: '#/components/schemas/ChainalysisAlert'
          type: array
          title: Alerts
          description: The list of alerts.
        external_id:
          type: string
          format: uuid
          title: External Id
          description: A unique identifier of the scan.
      type: object
      required:
        - type
        - alerts
        - external_id
      title: ChainalysisScanResult
    Cloud:
      properties:
        validation_hash:
          type: string
          title: Validation Hash
          example: SGVsbG8=
        type:
          type: string
          const: cloud
          title: Type
          description: Cloud backup type.
        cloud_type:
          $ref: '#/components/schemas/CloudType'
        account:
          type: string
          title: Account
        pin_code:
          type: string
          pattern: ^\d{6}$
          title: Pin Code
      type: object
      required:
        - validation_hash
        - type
        - cloud_type
        - account
        - pin_code
      title: Cloud
    CloudType:
      type: string
      enum:
        - google_drive
        - icloud
      title: CloudType
    ContactRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: >-
            The unique identifier of the address book contact in the Fordefi
            platform.
        name:
          type: string
          title: Name
          description: The name of the contact.
        address_ref:
          oneOf:
            - $ref: '#/components/schemas/AptosAddressBookContactAddressRef'
            - $ref: '#/components/schemas/CosmosAddressBookContactAddressRef'
            - $ref: '#/components/schemas/EVMAddressBookContactAddressRef'
            - $ref: '#/components/schemas/SolanaAddressBookContactAddressRef'
            - $ref: '#/components/schemas/StacksAddressBookContactAddressRef'
            - $ref: '#/components/schemas/StarknetAddressBookContactAddressRef'
            - $ref: '#/components/schemas/SuiAddressBookContactAddressRef'
            - $ref: '#/components/schemas/TonAddressBookContactAddressRef'
            - $ref: '#/components/schemas/TronAddressBookContactAddressRef'
            - $ref: '#/components/schemas/UtxoAddressBookContactAddressRef'
          discriminator:
            propertyName: chain_type
            mapping:
              aptos: '#/components/schemas/AptosAddressBookContactAddressRef'
              cosmos: '#/components/schemas/CosmosAddressBookContactAddressRef'
              evm: '#/components/schemas/EVMAddressBookContactAddressRef'
              solana: '#/components/schemas/SolanaAddressBookContactAddressRef'
              stacks: '#/components/schemas/StacksAddressBookContactAddressRef'
              starknet: '#/components/schemas/StarknetAddressBookContactAddressRef'
              sui: '#/components/schemas/SuiAddressBookContactAddressRef'
              ton: '#/components/schemas/TonAddressBookContactAddressRef'
              tron: '#/components/schemas/TronAddressBookContactAddressRef'
              utxo: '#/components/schemas/UtxoAddressBookContactAddressRef'
      type: object
      required:
        - id
        - name
        - address_ref
      title: ContactRef
      description: >-
        Represents a reference to an address book contact in the Fordefi
        platform.
    ContactSortableFields:
      type: string
      enum:
        - created_at_asc
        - created_at_desc
        - modified_at_asc
        - modified_at_desc
        - name_asc
        - name_desc
      title: ContactSortableFields
    ContractCallDetails:
      properties:
        type:
          type: string
          const: contract_call
          title: Type
          description: A transaction involving a generic call to a smart contract.
      type: object
      required:
        - type
      title: ContractCallDetails
    ContractDeploymentDetails:
      properties:
        type:
          type: string
          const: contract_deployment
          title: Type
          description: A transaction that deploys a new contract.
        contract_address:
          $ref: '#/components/schemas/EnrichedEvmAddress'
      type: object
      required:
        - type
        - contract_address
      title: ContractDeploymentDetails
    CosmosAddressBookContact:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        name:
          type: string
          title: Name
          description: The name of the contact.
        modified_by:
          $ref: '#/components/schemas/UserRef'
          description: Address last modifier.
        state:
          $ref: '#/components/schemas/AddressBookContactState'
          description: The state of the contact.
        groups:
          items:
            $ref: '#/components/schemas/GroupRef'
          type: array
          title: Groups
          description: List of contact's groups.
        pending_changes:
          description: Pending changes for the contact.
          $ref: '#/components/schemas/AddressBookContactChanges'
        asset_infos:
          items:
            $ref: '#/components/schemas/AssetInfo'
          type: array
          title: Asset Infos
          description: >-
            A list of asset infos for the contact. Can be used to enforce
            trading of specific assets intransfers to this address
        chain_type:
          type: string
          const: cosmos
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          title: Address
          description: The address on the cosmos chain.
        chain:
          $ref: '#/components/schemas/EnrichedCosmosChain'
          description: The chain the contact belongs to.
        memo:
          title: Memo
          description: >-
            Memo is an additional address feature used for identifying a
            recipient.
          type: string
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - modified_by
        - state
        - groups
        - asset_infos
        - chain_type
        - address
        - chain
      title: CosmosAddressBookContact
      description: Represents a contact in the Fordefi platform
    CosmosAddressBookContactAddressRef:
      properties:
        chain_type:
          type: string
          const: cosmos
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          title: Address
          description: The address on the cosmos chain.
          example: cosmos1tdk0g5d4ry9lq0erejttyufqcvwpqdj6tdql38
        chain:
          $ref: '#/components/schemas/CosmosChain'
          description: The chain the contact belongs to.
      type: object
      required:
        - chain_type
        - address
        - chain
      title: CosmosAddressBookContactAddressRef
    CosmosArbitraryMessageRequest:
      properties:
        type:
          type: string
          const: arbitrary_message_type
          title: Type
          description: Arbitrary message standard.
        chain:
          $ref: '#/components/schemas/CosmosChainUniqueId'
          description: The details of the chain of the native asset.
        data:
          $ref: '#/components/schemas/CosmosMessageData'
          description: The message to be signed.
      type: object
      required:
        - type
        - chain
        - data
      title: CosmosArbitraryMessageRequest
    CosmosAsset:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The asset ID.
        decimals:
          type: integer
          minimum: 0
          title: Decimals
        price:
          description: The price of the asset.
          $ref: '#/components/schemas/Price'
        name:
          type: string
          title: Name
          description: The name of the asset.
        symbol:
          type: string
          title: Symbol
          description: The symbol (ticker) of the asset.
        hidden:
          type: boolean
          title: Hidden
          description: '`True` if this asset was set to be hidden, `False` otherwise.'
        verified:
          type: boolean
          title: Verified
          description: '`True` if this asset is verified by Fordefi, `False` otherwise.'
        asset_identifier:
          $ref: '#/components/schemas/EnrichedAssetIdentifier'
          description: The asset identifier.
        metadata_uri:
          title: Metadata Uri
          description: The URI of the asset metadata.
          type: string
      type: object
      required:
        - id
        - decimals
        - name
        - symbol
        - hidden
        - verified
        - asset_identifier
        - type
        - details
      title: CosmosAsset
    CosmosAssetIdentifier:
      properties:
        type:
          type: string
          const: cosmos
          title: Type
          description: Cosmos asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CosmosNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/CosmosTokenAssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              native: '#/components/schemas/CosmosNativeAssetIdentifierRequest'
              token: '#/components/schemas/CosmosTokenAssetIdentifierRequest'
        chain:
          $ref: '#/components/schemas/EnrichedCosmosChain'
      type: object
      required:
        - type
        - details
        - chain
      title: CosmosAssetIdentifier
    CosmosAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: cosmos
          title: Type
          description: Cosmos asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CosmosNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/CosmosTokenAssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              native: '#/components/schemas/CosmosNativeAssetIdentifierRequest'
              token: '#/components/schemas/CosmosTokenAssetIdentifierRequest'
      type: object
      required:
        - type
        - details
      title: CosmosAssetIdentifierRequest
    CosmosBalanceChangeEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        diff:
          type: string
          pattern: ^-?\d+$
          title: Diff
          description: >-
            The amount of that was added to or deducted from the owner's
            balance. If the amount was deducted, the value is negative; if the
            amount was added, the value is positive.
          example: '1000000000000000000'
        address:
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
          description: The address affected by the balance change.
      type: object
      required:
        - priced_asset
        - diff
        - type
        - coin_info
        - address
      title: CosmosBalanceChangeEffect
    CosmosBalanceChangeEffectType:
      type: string
      enum:
        - native
        - token
      title: CosmosBalanceChangeEffectType
    CosmosBech32Prefix:
      type: string
      enum:
        - agoric
        - akash
        - archway
        - axelar
        - bbn
        - celestia
        - cosmos
        - dydx
        - dym
        - inj
        - neutron
        - nillion
        - noble
        - osmo
        - sei
        - stride
        - thor
        - mantra
      title: CosmosBech32Prefix
    CosmosBechAddress:
      properties:
        chain:
          $ref: '#/components/schemas/CosmosChainUniqueId'
          description: The Cosmos chain.
        address:
          type: string
          title: Address
          description: The address as bech32.
          example: cosmos1tdk0g5d4ry9lq0erejttyufqcvwpqdj6tdql38
        hex_repr:
          title: Hex Repr
          description: The hex representation of the address.
          type: string
          minLength: 40
          pattern: ^[a-fA-F0-9]+$
          example: DBCE78FD2D006A3BAC2C548D93271ABA3D63F01E
        key_type:
          $ref: '#/components/schemas/CosmosKeyType'
          description: The type of the key that this address is derived from.
          default: secp256k1
      type: object
      required:
        - chain
        - address
      title: CosmosBechAddress
    CosmosBechAddressEnrichedChain:
      properties:
        chain:
          $ref: '#/components/schemas/CosmosChainUniqueId'
          description: The Cosmos chain.
        address:
          type: string
          title: Address
          description: The address as bech32.
          example: cosmos1tdk0g5d4ry9lq0erejttyufqcvwpqdj6tdql38
        hex_repr:
          title: Hex Repr
          description: The hex representation of the address.
          type: string
          minLength: 40
          pattern: ^[a-fA-F0-9]+$
          example: DBCE78FD2D006A3BAC2C548D93271ABA3D63F01E
        key_type:
          $ref: '#/components/schemas/CosmosKeyType'
          description: The type of the key that this address is derived from.
          default: secp256k1
        enriched_chain:
          $ref: '#/components/schemas/EnrichedCosmosChain'
          description: Enriched chain of the address.
      type: object
      required:
        - chain
        - address
        - enriched_chain
      title: CosmosBechAddressEnrichedChain
    CosmosChain:
      properties:
        chain_type:
          type: string
          const: cosmos
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/CosmosChainUniqueId'
          description: The Cosmos chain unique id.
      type: object
      required:
        - chain_type
        - unique_id
      title: CosmosChain
    CosmosChainUniqueId:
      type: string
      enum:
        - cosmos_agoric-3
        - cosmos_akashnet-2
        - cosmos_archway-1
        - cosmos_axelar-dojo-1
        - cosmos_bbn-1
        - cosmos_celestia
        - cosmos_cosmoshub-4
        - cosmos_dydx-mainnet-1
        - cosmos_dydx-testnet-4
        - cosmos_dymension_1100-1
        - cosmos_injective-1
        - cosmos_neutron-1
        - cosmos_nillion-1
        - cosmos_noble-1
        - cosmos_osmosis-1
        - cosmos_pacific-1
        - cosmos_stride-1
        - cosmos_thorchain-1
        - cosmos_mantra-1
      title: CosmosChainUniqueId
    CosmosCoinWithAmount:
      properties:
        coin_with_amount:
          oneOf:
            - $ref: '#/components/schemas/CosmosNativeCoinWithAmount'
            - $ref: '#/components/schemas/CosmosTokenWithAmount'
          description: The coin info.
          discriminator:
            propertyName: type
            mapping:
              native: '#/components/schemas/CosmosNativeCoinWithAmount'
              token: '#/components/schemas/CosmosTokenWithAmount'
      type: object
      required:
        - coin_with_amount
      title: CosmosCoinWithAmount
    CosmosEffects:
      properties:
        balance_changes:
          items:
            $ref: '#/components/schemas/CosmosBalanceChangeEffect'
          type: array
          title: Balance Changes
          description: The aggregated balance changes of addresses.
        transfers:
          items:
            $ref: '#/components/schemas/CosmosTransferEffect'
          type: array
          title: Transfers
          description: The transfer events of the transaction.
      type: object
      required:
        - balance_changes
        - transfers
      title: CosmosEffects
    CosmosGasDebit:
      properties:
        gas_used:
          type: string
          pattern: ^\d+$
          title: Gas Used
          description: Gas used while processing the transaction.
          example: '1000000000000000000'
        total_fee:
          items:
            $ref: '#/components/schemas/CosmosCoinWithAmount'
          type: array
          title: Total Fee
          description: The total fee paid.
        fiat_prices:
          items:
            $ref: '#/components/schemas/Price'
          type: array
          title: Fiat Prices
          description: The prices of the coins used to pay the fee.
      type: object
      required:
        - gas_used
        - total_fee
        - fiat_prices
      title: CosmosGasDebit
    CosmosKeyType:
      type: string
      enum:
        - secp256k1
        - ethsecp256k1
      title: CosmosKeyType
    CosmosMessage:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state of the message.
        state_changes:
          items:
            $ref: '#/components/schemas/NonPushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the message.
        type:
          type: string
          const: cosmos_message
          title: Type
          description: Cosmos message type.
        cosmos_message_type:
          $ref: '#/components/schemas/CosmosMessageType'
          description: The type of the Cosmos message.
        data:
          $ref: '#/components/schemas/CosmosMessageData'
          description: >-
            The raw data of the message, encoded in base64 if bytes, else plain
            string.
        chain:
          $ref: '#/components/schemas/EnrichedCosmosChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
          description: The sender of the message.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - cosmos_message_type
        - data
        - chain
        - sender
      title: CosmosMessage
    CosmosMessageBase64Data:
      properties:
        type:
          type: string
          const: base64
          title: Type
          description: The type of the Cosmos message data.
        data:
          type: string
          title: Data
          description: The data encoded in base64.
          example: SGVsbG8=
      type: object
      required:
        - type
        - data
      title: CosmosMessageBase64Data
    CosmosMessageData:
      oneOf:
        - $ref: '#/components/schemas/CosmosMessageStrData'
        - $ref: '#/components/schemas/CosmosMessageBase64Data'
      discriminator:
        propertyName: type
        mapping:
          base64: '#/components/schemas/CosmosMessageBase64Data'
          string: '#/components/schemas/CosmosMessageStrData'
    CosmosMessageStrData:
      properties:
        type:
          type: string
          const: string
          title: Type
          description: The type of the Cosmos message data.
        data:
          type: string
          title: Data
          description: The data as plain string.
      type: object
      required:
        - type
        - data
      title: CosmosMessageStrData
    CosmosMessageType:
      type: string
      enum:
        - arbitrary_message_type
      title: CosmosMessageType
    CosmosMultipleMessagesTransactionDetails:
      properties:
        transaction_data:
          $ref: '#/components/schemas/MessagesList'
          description: List of transaction's messages.
        type:
          type: string
          const: messages
          title: Type
          description: A transaction of multiple messages.
      type: object
      required:
        - transaction_data
        - type
      title: CosmosMultipleMessagesTransactionDetails
    CosmosNativeAsset:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedCosmosChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: cosmos_native_asset
          title: Type
          description: Cosmos asset type.
      type: object
      required:
        - chain
        - type
      title: CosmosNativeAsset
    CosmosNativeAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: native
          title: Type
          description: Cosmos asset identifier type.
        chain:
          $ref: '#/components/schemas/CosmosChainUniqueId'
          description: The unique id of the chain of the asset.
      type: object
      required:
        - type
        - chain
      title: CosmosNativeAssetIdentifierRequest
    CosmosNativeCoin:
      properties:
        name:
          type: string
          title: Name
          description: The name of the coin.
        symbol:
          type: string
          title: Symbol
          description: The symbol of the coin.
        base_denom:
          type: string
          title: Base Denom
          description: The base denom of the coin.
        denom:
          type: string
          title: Denom
          description: The denom of the coin.
        decimals:
          type: integer
          title: Decimals
          description: The decimals relative to the base coin.
        logo_url:
          title: Logo Url
          description: The coin logo url.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        explorer_url:
          title: Explorer Url
          description: The explorer url of the coin.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        type:
          type: string
          const: native
          title: Type
      type: object
      required:
        - name
        - symbol
        - base_denom
        - denom
        - decimals
        - type
      title: CosmosNativeCoin
    CosmosNativeCoinInfo:
      properties:
        is_verified:
          type: boolean
          title: Is Verified
          description: '`True` if the contract is verified, `False` otherwise.'
        coin:
          $ref: '#/components/schemas/CosmosNativeCoin'
      type: object
      required:
        - is_verified
        - coin
      title: CosmosNativeCoinInfo
    CosmosNativeCoinWithAmount:
      properties:
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the coin in base unit (for example uatom).
          example: '1000000000000000000'
        type:
          type: string
          const: native
          title: Type
        coin:
          $ref: '#/components/schemas/CosmosNativeCoin'
          description: The coin.
      type: object
      required:
        - amount
        - type
        - coin
      title: CosmosNativeCoinWithAmount
    CosmosNativeTransferDetails:
      properties:
        transaction_data:
          $ref: '#/components/schemas/MessagesList'
          description: List of transaction's messages.
        sender:
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
          description: The sender.
        recipient:
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
          description: The recipient.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
        type:
          type: string
          const: native_transfer
          title: Type
          description: >-
            A transaction involving a native transfer from one address to
            another.
      type: object
      required:
        - transaction_data
        - direction
        - sender
        - recipient
        - type
      title: CosmosNativeTransferDetails
    CosmosPushData:
      properties:
        type:
          type: string
          const: cosmos_transaction
          title: Type
          description: The type of the transaction.
        transaction_body:
          title: Transaction Body
          description: |-
            The byte sequence of the serialized signed
                    transaction to be sent to the chain.
          type: string
          example: SGVsbG8=
      type: object
      required:
        - type
      title: CosmosPushData
    CosmosSuggestedFees:
      properties:
        type:
          type: string
          const: cosmos
          title: Type
          description: The type of the chain.
        chain_unique_id:
          $ref: '#/components/schemas/CosmosChainUniqueId'
          description: The cosmos chain unique id.
        fee_per_signature:
          title: Fee Per Signature
          description: The fee paid for each signature in the transaction.
          type: number
      type: object
      required:
        - type
        - chain_unique_id
      title: CosmosSuggestedFees
    CosmosToken:
      properties:
        name:
          type: string
          title: Name
          description: The name of the coin.
        symbol:
          type: string
          title: Symbol
          description: The symbol of the coin.
        base_denom:
          type: string
          title: Base Denom
          description: The base denom of the coin.
        denom:
          type: string
          title: Denom
          description: The denom of the coin.
        decimals:
          type: integer
          title: Decimals
          description: The decimals relative to the base coin.
        logo_url:
          title: Logo Url
          description: The coin logo url.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        explorer_url:
          title: Explorer Url
          description: The explorer url of the coin.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        type:
          type: string
          const: token
          title: Type
      type: object
      required:
        - name
        - symbol
        - base_denom
        - denom
        - decimals
        - type
      title: CosmosToken
    CosmosTokenAsset:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedCosmosChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: cosmos_token_asset
          title: Type
          description: Cosmos asset type.
      type: object
      required:
        - chain
        - type
      title: CosmosTokenAsset
    CosmosTokenAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: token
          title: Type
          description: Token asset identifier type.
        chain:
          $ref: '#/components/schemas/CosmosChainUniqueId'
          description: The unique id of the chain of the asset.
        denom:
          type: string
          title: Denom
          description: The denom of the asset.
      type: object
      required:
        - type
        - chain
        - denom
      title: CosmosTokenAssetIdentifierRequest
    CosmosTokenInfo:
      properties:
        is_verified:
          type: boolean
          title: Is Verified
          description: '`True` if the contract is verified, `False` otherwise.'
        coin:
          $ref: '#/components/schemas/CosmosToken'
      type: object
      required:
        - is_verified
        - coin
      title: CosmosTokenInfo
    CosmosTokenTransferDetails:
      properties:
        transaction_data:
          $ref: '#/components/schemas/MessagesList'
          description: List of transaction's messages.
        sender:
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
          description: The sender.
        recipient:
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
          description: The recipient.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
        type:
          type: string
          const: token_transfer
          title: Type
          description: >-
            A transaction involving a token transfer from one address to
            another.
      type: object
      required:
        - transaction_data
        - direction
        - sender
        - recipient
        - type
      title: CosmosTokenTransferDetails
    CosmosTokenWithAmount:
      properties:
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the coin in base unit (for example uatom).
          example: '1000000000000000000'
        type:
          type: string
          const: token
          title: Type
        coin:
          $ref: '#/components/schemas/CosmosToken'
          description: The coin.
      type: object
      required:
        - amount
        - type
        - coin
      title: CosmosTokenWithAmount
    CosmosTransaction:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state of the transaction.
        state_changes:
          items:
            $ref: '#/components/schemas/PushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the transaction.
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        incoming_aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchIncoming'
        cosmos_transaction_type_details:
          $ref: '#/components/schemas/CosmosTransactionTypeDetails'
          description: Transaction details
        memo:
          type: string
          title: Memo
          description: Transaction memo.
          default: ''
        chain:
          $ref: '#/components/schemas/EnrichedCosmosChain'
          description: The details of the chain this transaction is on.
        sender:
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
          description: The address that originated the transaction.
        type:
          type: string
          const: cosmos_transaction
          title: Type
          description: The type of the transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 64
          minLength: 64
          pattern: ^[a-fA-F0-9]+$
          example: 12BE33E7F1B6CA644CC006FB8CBD0C4C7C95B1072DA90E9F4C39CB837072BBF5
        explorer_url:
          title: Explorer Url
          description: The URL of this transaction in a blockchain explorer.
          example: >-
            https://www.mintscan.io/cosmos/txs/65A22C9050C8A29DE15CD8D0D08C847766B734403008C428C3148A23137ED3EF
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        signers_info:
          items:
            $ref: '#/components/schemas/SignerInfo'
          type: array
          title: Signers Info
          description: List of signers info.
        expected_result:
          description: The expected result of the transaction in case it is mined.
          $ref: '#/components/schemas/CosmosTransactionResult'
        mined_result:
          description: The result of the transaction after it was mined.
          $ref: '#/components/schemas/CosmosTransactionResult'
        sign_doc:
          description: The signed document of the transaction.
          $ref: '#/components/schemas/SignDoc'
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - cosmos_transaction_type_details
        - chain
        - from
        - sender
        - type
        - signers_info
      title: CosmosTransaction
    CosmosTransactionResult:
      properties:
        message:
          title: Message
          description: In case of error, the message describes what failed.
          type: string
        gas_debit:
          $ref: '#/components/schemas/CosmosGasDebit'
          description: The gas debit of the transaction.
        effects:
          $ref: '#/components/schemas/CosmosEffects'
          description: The effects of the transaction.
      type: object
      required:
        - gas_debit
        - effects
      title: CosmosTransactionResult
    CosmosTransactionType:
      type: string
      enum:
        - messages
        - native_transfer
        - token_transfer
      title: CosmosTransactionType
    CosmosTransactionTypeDetails:
      oneOf:
        - $ref: '#/components/schemas/CosmosMultipleMessagesTransactionDetails'
        - $ref: '#/components/schemas/CosmosNativeTransferDetails'
        - $ref: '#/components/schemas/CosmosTokenTransferDetails'
      discriminator:
        propertyName: type
        mapping:
          messages: '#/components/schemas/CosmosMultipleMessagesTransactionDetails'
          native_transfer: '#/components/schemas/CosmosNativeTransferDetails'
          token_transfer: '#/components/schemas/CosmosTokenTransferDetails'
    CosmosTransferEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the transfer.
          example: '1000000000000000000'
        from:
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
          description: The sender of the transfer.
        to:
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
          description: The receiver of the transfer.
      type: object
      required:
        - priced_asset
        - amount
        - type
        - coin_info
        - from
        - to
      title: CosmosTransferEffect
    CosmosTransferEffectType:
      type: string
      enum:
        - native
        - token
      title: CosmosTransferEffectType
    CosmosTransferToAddressRequest:
      properties:
        type:
          type: string
          const: address
          title: Type
        address:
          $ref: '#/components/schemas/CosmosBechAddress'
          description: The cosmos bech32 to transfer to.
      type: object
      required:
        - type
        - address
      title: CosmosTransferToAddressRequest
    CosmosVault:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        metadata:
          title: Metadata
          description: Metadata in a form of map<str, bool | str | int | array[str]>.
          additionalProperties:
            anyOf:
              - items:
                  type: string
                type: array
              - type: string
              - type: integer
              - type: boolean
          type: object
        name:
          type: string
          title: Name
          description: The name of the vault.
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: Details of the vault creator.
        vault_group:
          $ref: '#/components/schemas/VaultGroupRef'
          description: The vault group this vault belongs to.
        pending_vault_group_action:
          description: Details of pending vault movement to another vault group.
          oneOf:
            - $ref: '#/components/schemas/PendingVaultGroupActionAdd'
            - $ref: '#/components/schemas/PendingVaultGroupActionRemove'
          discriminator:
            propertyName: type
            mapping:
              add: '#/components/schemas/PendingVaultGroupActionAdd'
              remove: '#/components/schemas/PendingVaultGroupActionRemove'
        state:
          $ref: '#/components/schemas/VaultState'
          description: State of the vault.
        public_key_compressed:
          type: string
          title: Public Key Compressed
          description: >-
            The public key of the vault in its compressed form: <ul> <li>For
            ECDSA and Schnorr keys, the public key is represented as 33 bytes
            (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1
            standard](https://www.secg.org/SEC1-Ver-1.0.pdf). <li>For EdDSA, the
            public key is represented as a 32-byte value, as defined by [RFC
            8032](https://datatracker.ietf.org/doc/html/rfc8032). </ul>
          example: SGVsbG8=
        derivation_info:
          $ref: '#/components/schemas/VaultDerivationInfo'
          description: The derivation info of the vault.
        key_holder:
          description: >-
            The user who owns the keyset of the vault. If not provided, the
            vault is owned by the organization.
          $ref: '#/components/schemas/EndUserRef'
        origin_type:
          $ref: '#/components/schemas/VaultOriginType'
          description: The origin type of the vault.
        type:
          type: string
          const: cosmos
          title: Type
          description: Cosmos vault type.
        main_address:
          type: string
          minLength: 40
          pattern: ^[a-fA-F0-9]+$
          title: Main Address
          description: >-
            The address of the vault on Cosmos chains (hex representation
            without chain prefix).
          example: DBCE78FD2D006A3BAC2C548D93271ABA3D63F01E
        evm_address:
          type: string
          pattern: ^[a-fA-F0-9]+$
          title: Evm Address
          description: >-
            The address of the vault on Cosmos chains that uses ethermint public
            key format, (hex representation without 0x).
        chains_addresses:
          items:
            $ref: '#/components/schemas/CosmosBechAddressEnrichedChain'
          type: array
          title: Chains Addresses
          description: >-
            List of addresses of the vault on each chain (bech32 format) with
            chain info.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - created_by
        - vault_group
        - state
        - are_all_chains_disabled
        - derivation_path
        - public_key_compressed
        - derivation_info
        - keyset
        - origin_type
        - type
        - main_address
        - evm_address
        - chains_addresses
      title: CosmosVault
      description: Represents a Cosmos vault in the Fordefi platform
    CreateAptosContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: aptos
          title: Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address on the Aptos chain.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
        chains:
          items:
            $ref: '#/components/schemas/AptosChainUniqueId'
          type: array
          title: Chains
          description: The chains the contact belongs to.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/AptosAssetIdentifierRequest'
          type: array
      type: object
      required:
        - name
        - type
        - address
        - chains
      title: CreateAptosContactRequest
    CreateAptosMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: aptos_message
          title: Type
          description: Aptos message type.
        details:
          $ref: '#/components/schemas/AptosPersonalMessageRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateAptosMessageRequest
    CreateAptosMessageWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: aptos_message
          title: Type
          description: Aptos message type.
        details:
          $ref: '#/components/schemas/AptosPersonalMessageRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateAptosMessageWithWaitRequest
    CreateAptosSerializedRawTransactionRequest:
      properties:
        type:
          type: string
          const: aptos_serialized_entry_point_payload
          title: Type
          description: An Aptos transaction with serialized entry point payload.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        gas_config:
          description: The gas configuration for the transaction.
          $ref: '#/components/schemas/AptosGasConfigRequest'
        chain:
          $ref: '#/components/schemas/AptosChainUniqueId'
          description: >-
            The chain that this transaction is on. Specify the chain name (for
            example, `aptos_mainnet`).
        serialized_transaction_payload:
          type: string
          title: Serialized Transaction Payload
          description: The serialized transaction payload in base64 format.
          example: SGVsbG8=
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the
            `simulation_status` will be `skipped` and the `expected_result` of
            the transaction will be empty. The policy will be applied on
            information that can be extracted statically from the transaction
            only. This might result in falling back to the default policy rule.
            <br> Note, it is recommended to use the default setting for this
            field and to turn off `fail_on_prediction_failure` instead - unless
            you wish to save time by omitting the prediction phase entirely. 
          default: false
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul> 
          default: auto
      type: object
      required:
        - type
        - chain
        - serialized_transaction_payload
      title: CreateAptosSerializedRawTransactionRequest
    CreateAptosTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: aptos_transaction
          title: Type
          description: Aptos transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateAptosTransferRequest'
            - $ref: '#/components/schemas/CreateAptosSerializedRawTransactionRequest'
          discriminator:
            propertyName: type
            mapping:
              aptos_serialized_entry_point_payload: '#/components/schemas/CreateAptosSerializedRawTransactionRequest'
              aptos_transfer: '#/components/schemas/CreateAptosTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateAptosTransactionRequest
    CreateAptosTransactionWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: aptos_transaction
          title: Type
          description: Aptos transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateAptosTransferRequest'
            - $ref: '#/components/schemas/CreateAptosSerializedRawTransactionRequest'
          discriminator:
            propertyName: type
            mapping:
              aptos_serialized_entry_point_payload: '#/components/schemas/CreateAptosSerializedRawTransactionRequest'
              aptos_transfer: '#/components/schemas/CreateAptosTransferRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateAptosTransactionWithWaitRequest
    CreateAptosTransferRequest:
      properties:
        type:
          type: string
          const: aptos_transfer
          title: Type
          description: >-
            An Aptos transfer transaction. A transaction of this kind is for
            transferring native currency or a coin.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        gas_config:
          description: The gas configuration for the transaction.
          $ref: '#/components/schemas/AptosGasConfigRequest'
        to:
          oneOf:
            - $ref: '#/components/schemas/AptosRecipientHex'
            - $ref: '#/components/schemas/RecipientVaultId'
          discriminator:
            propertyName: type
            mapping:
              hex: '#/components/schemas/AptosRecipientHex'
              vault_id: '#/components/schemas/RecipientVaultId'
        value:
          oneOf:
            - $ref: '#/components/schemas/CreateTransferRequestExplicitAmount'
            - $ref: '#/components/schemas/CreateTransferRequestMaxAmount'
          description: The number of units of currency to transfer.
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateTransferRequestMaxAmount'
              value: '#/components/schemas/CreateTransferRequestExplicitAmount'
        asset_identifier:
          $ref: '#/components/schemas/AptosAssetIdentifierRequest'
          description: The Aptos asset identifier to transfer.
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the
            `simulation_status` will be `skipped` and the `expected_result` of
            the transaction will be empty. The policy will be applied on
            information that can be extracted statically from the transaction
            only. This might result in falling back to the default policy rule.
            <br> Note, it is recommended to use the default setting for this
            field and to turn off `fail_on_prediction_failure` instead - unless
            you wish to save time by omitting the prediction phase entirely. 
          default: false
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul> 
          default: auto
      type: object
      required:
        - type
        - to
        - value
        - asset_identifier
      title: CreateAptosTransferRequest
    CreateAptosVaultRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the vault.
        end_user_id:
          title: End User Id
          description: >-
            The end user id to create a vault for.This field is required for
            end-user vault creation, otherwise, it's optional. If not provided,
            the organization's default keyset will be used.
          type: string
          format: uuid
        vault_group_id:
          title: Vault Group Id
          description: >-
            The group to add this vault to. If not provided, the vault will be
            created in the Default vault group.
          type: string
          format: uuid
        import_vault:
          description: >-
            Additional information when creating a vault from an imported key.
            This field is relevant only for organizations using imported keys.
          $ref: '#/components/schemas/ImportVaultDefaultOptions'
        type:
          type: string
          const: aptos
          title: Type
          description: Aptos vault type.
      type: object
      required:
        - name
        - type
      title: CreateAptosVaultRequest
    CreateAssetInfoRequest:
      properties:
        asset_identifier:
          $ref: '#/components/schemas/AssetIdentifierRequest'
          description: The asset identifier to enrich.
      type: object
      required:
        - asset_identifier
      title: CreateAssetInfoRequest
    CreateAssetInfoResponse:
      $ref: '#/components/schemas/AssetInfo'
      title: CreateAssetInfoResponse
      description: Asset info.
    CreateBatchSolanaTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: solana_transaction
          title: Type
          description: Solana transaction type.
        details:
          $ref: '#/components/schemas/CreateBatchTransactionRequestDetails'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateBatchSolanaTransactionRequest
    CreateBatchTransactionInstanceDetails:
      properties:
        version:
          $ref: '#/components/schemas/SolanaMessageVersion'
          description: The version of the transaction message.
        instructions:
          items:
            $ref: '#/components/schemas/SolanaCompiledInstructionRequest'
          type: array
          minItems: 1
          title: Instructions
          description: The instructions of the transaction.
        accounts:
          items:
            $ref: '#/components/schemas/SolanaTransactionAccountRequest'
          type: array
          minItems: 1
          title: Accounts
          description: Accounts used in the transaction.
        address_table_lookups:
          title: Address Table Lookups
          description: Lookup tables of accounts used in the transaction.
          items:
            $ref: '#/components/schemas/SolanaMessageAddressTableLookupRequest'
          type: array
        signatures:
          title: Signatures
          description: Any partial signatures on the transaction.
          items:
            $ref: '#/components/schemas/SolanaTransactionSignaturesRequest'
          type: array
        recent_blockhash:
          title: Recent Blockhash
          description: The transaction nonce (a recently processed blockhash).
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          example: 4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZAMdL4VZHirAn
      type: object
      required:
        - version
        - instructions
        - accounts
        - address_table_lookups
      title: CreateBatchTransactionInstanceDetails
    CreateBatchTransactionInstanceResponse:
      oneOf:
        - $ref: '#/components/schemas/SolanaTransaction'
      discriminator:
        propertyName: type
        mapping:
          solana_transaction: '#/components/schemas/SolanaTransaction'
    CreateBatchTransactionRequest:
      oneOf:
        - $ref: '#/components/schemas/CreateBatchSolanaTransactionRequest'
      discriminator:
        propertyName: type
        mapping:
          solana_transaction: '#/components/schemas/CreateBatchSolanaTransactionRequest'
    CreateBatchTransactionRequestDetails:
      properties:
        fee:
          description: The fee configuration for the transaction.
          oneOf:
            - $ref: '#/components/schemas/SolanaCustomFeeRequest'
            - $ref: '#/components/schemas/SolanaPriorityFeeRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/SolanaCustomFeeRequest'
              priority: '#/components/schemas/SolanaPriorityFeeRequest'
        type:
          type: string
          const: solana_raw_transaction
          title: Type
          description: A Solana raw transaction is for any operation.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the simulation
            status will be skipped and the expected result of the transaction
            will be empty. The policy will be applied on information that can be
            extracted statically from the transaction only. This might result in
            falling back to the default policy rule. <br> Note, it is
            recommended to use the default setting for this field and to turn
            off `fail_on_prediction_failure` instead - unless you wish to save
            time by omitting the prediction phase entirely. 
          default: false
        chain:
          $ref: '#/components/schemas/SolanaChainUniqueId'
        transactions:
          items:
            $ref: '#/components/schemas/CreateBatchTransactionInstanceDetails'
          type: array
          minItems: 1
          title: Transactions
          description: Details of the transactions in the batch.
      type: object
      required:
        - type
        - chain
        - transactions
      title: CreateBatchTransactionRequestDetails
    CreateBatchTransactionResponse:
      properties:
        batch_id:
          type: string
          format: uuid
          title: Batch Id
          description: ID of the batch of transactions.
        transactions:
          items:
            $ref: '#/components/schemas/CreateBatchTransactionInstanceResponse'
          type: array
          title: Transactions
      type: object
      required:
        - batch_id
        - transactions
      title: CreateBatchTransactionResponse
    CreateBlackBoxSignatureRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: black_box_signature
          title: Type
          description: Black Box signature type.
        details:
          oneOf:
            - $ref: '#/components/schemas/BinaryHashPayload'
            - $ref: '#/components/schemas/IntegerHashPayload'
          discriminator:
            propertyName: format
            mapping:
              hash_binary: '#/components/schemas/BinaryHashPayload'
              hash_integer: '#/components/schemas/IntegerHashPayload'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateBlackBoxSignatureRequest
    CreateBlackBoxSignatureWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: black_box_signature
          title: Type
          description: Black Box signature type.
        details:
          oneOf:
            - $ref: '#/components/schemas/BinaryHashPayload'
            - $ref: '#/components/schemas/IntegerHashPayload'
          discriminator:
            propertyName: format
            mapping:
              hash_binary: '#/components/schemas/BinaryHashPayload'
              hash_integer: '#/components/schemas/IntegerHashPayload'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateBlackBoxSignatureWithWaitRequest
    CreateBlackBoxVaultRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the vault.
        end_user_id:
          title: End User Id
          description: >-
            The end user id to create a vault for.This field is required for
            end-user vault creation, otherwise, it's optional. If not provided,
            the organization's default keyset will be used.
          type: string
          format: uuid
        vault_group_id:
          title: Vault Group Id
          description: >-
            The group to add this vault to. If not provided, the vault will be
            created in the Default vault group.
          type: string
          format: uuid
        import_vault:
          description: >-
            Additional information when creating a vault from an imported key.
            This field is relevant only for organizations using imported keys.
          $ref: '#/components/schemas/ImportVaultDefaultOptions'
        type:
          type: string
          const: black_box
          title: Type
          description: Black Box vault type.
        key_type:
          type: string
          enum:
            - ecdsa_stark
            - ecdsa_secp256k1
            - eddsa_ed25519
            - schnorr_secp256k1
          title: Key Type
          description: >-
            The key type of the signing scheme used by the vault. Can be: <ul>  
            <li>`ecdsa_stark`</li>   <li>`ecdsa_secp256k1`</li>  
            <li>`eddsa_ed25519`</li>   <li>`schnorr_secp256k1`</li></ul>
      type: object
      required:
        - name
        - type
        - key_type
      title: CreateBlackBoxVaultRequest
    CreateContactRequest:
      oneOf:
        - $ref: '#/components/schemas/CreateAptosContactRequest'
        - $ref: '#/components/schemas/CreateCosmosContactRequest'
        - $ref: '#/components/schemas/CreateEVMContactRequest'
        - $ref: '#/components/schemas/CreateSolanaContactRequest'
        - $ref: '#/components/schemas/CreateStacksContactRequest'
        - $ref: '#/components/schemas/CreateStarknetContactRequest'
        - $ref: '#/components/schemas/CreateSuiContactRequest'
        - $ref: '#/components/schemas/CreateTonContactRequest'
        - $ref: '#/components/schemas/CreateTronContactRequest'
        - $ref: '#/components/schemas/CreateUtxoContactRequest'
      discriminator:
        propertyName: type
        mapping:
          aptos: '#/components/schemas/CreateAptosContactRequest'
          cosmos: '#/components/schemas/CreateCosmosContactRequest'
          evm: '#/components/schemas/CreateEVMContactRequest'
          solana: '#/components/schemas/CreateSolanaContactRequest'
          stacks: '#/components/schemas/CreateStacksContactRequest'
          starknet: '#/components/schemas/CreateStarknetContactRequest'
          sui: '#/components/schemas/CreateSuiContactRequest'
          ton: '#/components/schemas/CreateTonContactRequest'
          tron: '#/components/schemas/CreateTronContactRequest'
          utxo: '#/components/schemas/CreateUtxoContactRequest'
    CreateCosmosContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: cosmos
          title: Type
          description: The type of the chain.
        address:
          type: string
          title: Address
          description: The address on the cosmos chain in bech32 representation.
        chain:
          $ref: '#/components/schemas/CosmosChainUniqueId'
          description: The chain the contact belongs to.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/CosmosAssetIdentifierRequest'
          type: array
        memo:
          title: Memo
          description: >-
            Memo is an additional address feature used for identifying a
            recipient.
          type: string
      type: object
      required:
        - name
        - type
        - address
        - chain
      title: CreateCosmosContactRequest
    CreateCosmosMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: cosmos_message
          title: Type
          description: Cosmos message type.
        details:
          $ref: '#/components/schemas/CosmosArbitraryMessageRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateCosmosMessageRequest
    CreateCosmosMessageWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: cosmos_message
          title: Type
          description: Cosmos message type.
        details:
          $ref: '#/components/schemas/CosmosArbitraryMessageRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateCosmosMessageWithWaitRequest
    CreateCosmosTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: cosmos_transaction
          title: Type
          description: Cosmos transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/TypedCosmosRawTransactionRequest'
            - $ref: '#/components/schemas/TypedCosmosTransferRequest'
          description: Transaction details.
          discriminator:
            propertyName: type
            mapping:
              cosmos_raw_transaction: '#/components/schemas/TypedCosmosRawTransactionRequest'
              cosmos_transfer: '#/components/schemas/TypedCosmosTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateCosmosTransactionRequest
    CreateCosmosTransactionWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: cosmos_transaction
          title: Type
          description: Cosmos transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/TypedCosmosRawTransactionRequest'
            - $ref: '#/components/schemas/TypedCosmosTransferRequest'
          description: Transaction details.
          discriminator:
            propertyName: type
            mapping:
              cosmos_raw_transaction: '#/components/schemas/TypedCosmosRawTransactionRequest'
              cosmos_transfer: '#/components/schemas/TypedCosmosTransferRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateCosmosTransactionWithWaitRequest
    CreateCosmosVaultRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the vault.
        end_user_id:
          title: End User Id
          description: >-
            The end user id to create a vault for.This field is required for
            end-user vault creation, otherwise, it's optional. If not provided,
            the organization's default keyset will be used.
          type: string
          format: uuid
        vault_group_id:
          title: Vault Group Id
          description: >-
            The group to add this vault to. If not provided, the vault will be
            created in the Default vault group.
          type: string
          format: uuid
        import_vault:
          description: >-
            Additional information when creating a vault from an imported key.
            This field is relevant only for organizations using imported keys.
          $ref: '#/components/schemas/ImportVaultDefaultOptions'
        type:
          type: string
          const: cosmos
          title: Type
          description: Cosmos vault type.
      type: object
      required:
        - name
        - type
      title: CreateCosmosVaultRequest
    CreateEVMContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: evm
          title: Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 42
          minLength: 42
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address of the contact.
          example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        chains:
          items:
            type: string
            minLength: 1
            title: EvmChainUniqueId
            description: >-
              The unique EVM chain ID. </br>Can be either one of those supported
              by the default chains below or a custom numeric chain ID
              `evm_<numeric_chain_id>` if one was added to your organization.
              <ul><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_137"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43114"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_123420000987"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li><li>`"evm_clink_testnet"`</li></ul>
          type: array
          title: Chains
          description: The chains the contact belongs to.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/EvmAssetIdentifierRequest'
          type: array
      type: object
      required:
        - name
        - type
        - address
        - chains
      title: CreateEVMContactRequest
    CreateEndUserErrorType:
      type: string
      enum:
        - unsupported_organization
        - backup_not_ready
      title: CreateEndUserErrorType
    CreateEndUserRequest:
      properties:
        external_id:
          type: string
          title: External Id
          description: The ID that you assign to an end user.
      type: object
      required:
        - external_id
      title: CreateEndUserRequest
    CreateEndUserResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        external_id:
          type: string
          title: External Id
          description: The ID that you assigned to the end user.
          example: user|1234
        last_login_at:
          type: string
          format: date-time
          title: Last Login At
          description: The timestamp when the end user last logged into the mobile SDK.
        desired_key_types:
          title: Desired Key Types
          description: >-
            Desired key types. This field is populated by the user during keyset
            generation.
          items:
            $ref: '#/components/schemas/KeyType'
          type: array
        keyset_id:
          type: string
          format: uuid
          title: Keyset Id
          description: The unique identifier of the keyset.
        ecdsa:
          description: >-
            ECDSA key. The key is used to generate ECDSA-based vaults (for
            example, EVM vaults).
          $ref: '#/components/schemas/KeysetKey'
        eddsa:
          description: >-
            EdDSA key. The key is used to generate EdDSA-based vaults (for
            example, Solana vaults).
          $ref: '#/components/schemas/KeysetKey'
        ecdsa_stark:
          description: >-
            ECDSA-Stark key. The key is used to generate ECDSA-Stark-based
            vaults (for example, Stark Blackbox vaults).
          $ref: '#/components/schemas/KeysetKey'
        schnorr_secp256k1:
          description: >-
            Schnorr Secp256k1 key. The key is used to generate
            Schnorr-Secp256k1-based vaults.
          $ref: '#/components/schemas/KeysetKey'
        auth_public_key:
          title: Auth Public Key
          description: The public key of the user's auth-key.
          type: string
          example: SGVsbG8=
        encrypted_device_shares_backups:
          title: Encrypted Device Shares Backups
          description: Encrypted device shares backups.
          items:
            $ref: '#/components/schemas/EncryptedDeviceSharesBackup'
          type: array
        last_backup_at:
          type: string
          format: date-time
          title: Last Backup At
          description: The last time backup was intitated.
        export_allowed:
          type: boolean
          title: Export Allowed
          description: Whether the user is allowed to export the keyset.
        last_export_at:
          type: string
          format: date-time
          title: Last Export At
          description: The last time the keyset was exported.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - external_id
        - last_login_at
        - keyset_id
        - last_backup_at
        - export_allowed
        - last_export_at
      title: CreateEndUserResponse
    CreateEvmMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: evm_message
          title: Type
          description: EVM message type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateEvmTypedMessageRequest'
            - $ref: '#/components/schemas/CreateEvmTypedV1MessageRequest'
            - $ref: '#/components/schemas/CreateEvmPersonalMessageRequest'
          discriminator:
            propertyName: type
            mapping:
              personal_message_type: '#/components/schemas/CreateEvmPersonalMessageRequest'
              typed_message_type: '#/components/schemas/CreateEvmTypedMessageRequest'
              typed_message_type_v1: '#/components/schemas/CreateEvmTypedV1MessageRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateEvmMessageRequest
    CreateEvmMessageWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: evm_message
          title: Type
          description: EVM message type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateEvmTypedMessageRequest'
            - $ref: '#/components/schemas/CreateEvmTypedV1MessageRequest'
            - $ref: '#/components/schemas/CreateEvmPersonalMessageRequest'
          discriminator:
            propertyName: type
            mapping:
              personal_message_type: '#/components/schemas/CreateEvmPersonalMessageRequest'
              typed_message_type: '#/components/schemas/CreateEvmTypedMessageRequest'
              typed_message_type_v1: '#/components/schemas/CreateEvmTypedV1MessageRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateEvmMessageWithWaitRequest
    CreateEvmPersonalMessageRequest:
      properties:
        type:
          type: string
          const: personal_message_type
          title: Type
          description: Personal message standard.
        chain:
          $ref: '#/components/schemas/EvmChainRequest'
          description: >-
            The EVM chain that this message is intended for. Specify either the
            chain ID (for example `1` for `ethereum_mainnet`) or the chain name
            (for example, `ethereum_goerli`).
        raw_data:
          type: string
          minLength: 1
          title: Raw Data
          description: >-
            The raw data of the message to be signed, provided as a string or
            hex-encoded.
      type: object
      required:
        - type
        - chain
        - raw_data
      title: CreateEvmPersonalMessageRequest
    CreateEvmRawTransactionRequest:
      properties:
        type:
          type: string
          const: evm_raw_transaction
          title: Type
          description: >-
            An EVM raw transaction receives raw data and is for general
            transactions.
        use_secure_node:
          type: boolean
          title: Use Secure Node
          description: >-
            Use a secure node to send the transaction. By using a secure node,
            you avoid maximal extractable value (MEV) attacks.
          default: false
        gas:
          description: >-
            The gas details of the transaction. The details depend on which
            option you choose:<ul><li>Gas Priority or <li>Custom Gas Request
            </ul>
          oneOf:
            - $ref: '#/components/schemas/GasPriorityRequest'
            - $ref: '#/components/schemas/CustomGasRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/CustomGasRequest'
              priority: '#/components/schemas/GasPriorityRequest'
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if transaction creation should fail in case prediction
            failed, `False` otherwise. <br> In case simulation has failed upon
            continuation, the expected result of the transaction will be partial
            and policy will be applied on information that can be extracted
            statically from the transaction only. This might result in falling
            back to the default policy rule. 
          default: true
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the simulation
            status will be skipped and the expected result of the transaction
            will be empty. The policy will be applied on information that can be
            extracted statically from the transaction only. This might result in
            falling back to the default policy rule. <br> Note, it is
            recommended to use the default setting for this field and to turn
            off `fail_on_prediction_failure` instead - unless you wish to save
            time by omitting the prediction phase entirely. 
          default: false
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        funder:
          title: Funder
          description: >-
            The unique identifier of the vault that pays the fee for this
            transaction.
          type: string
          format: uuid
        chain:
          $ref: '#/components/schemas/EvmChainRequest'
          description: >-
            The chain that this transaction is on. Specify either the chain name
            (for example `ethereum_mainnet`), the chain ID as a string (for
            example `evm_1`), or the chain ID as an integer (for example, `1`).
        to:
          title: To
          description: >-
            The address of the recipient of the transaction, or null for
            contract creation.
          type: string
          maxLength: 42
          minLength: 42
          pattern: ^0[xX][a-fA-F0-9]+$
          example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        value:
          type: string
          pattern: ^\d+$
          title: Value
          description: The value of native currency to send this transaction with.
          example: '1000000000000000000'
        data:
          description: >-
            The format of the data request. The following formats are
            available:<ul><li>Base64 raw data</li><li>Hex raw data</li><li>Smart
            contract call of method and arguments</li></ul>
          $ref: '#/components/schemas/EvmDataRequest'
      type: object
      required:
        - type
        - chain
        - value
      title: CreateEvmRawTransactionRequest
    CreateEvmRevokeAllowanceRequest:
      properties:
        type:
          type: string
          const: evm_revoke_allowance
          title: Type
          description: >-
            An EVM revoke allowance transaction is for revoking a spender's
            allowance for a specific token.
        use_secure_node:
          type: boolean
          title: Use Secure Node
          description: >-
            Use a secure node to send the transaction. By using a secure node,
            you avoid maximal extractable value (MEV) attacks.
          default: false
        gas:
          description: >-
            The gas details of the transaction. The details depend on which
            option you choose:<ul><li>Gas Priority or <li>Custom Gas Request
            </ul>
          oneOf:
            - $ref: '#/components/schemas/GasPriorityRequest'
            - $ref: '#/components/schemas/CustomGasRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/CustomGasRequest'
              priority: '#/components/schemas/GasPriorityRequest'
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if transaction creation should fail in case prediction
            failed, `False` otherwise. <br> In case simulation has failed upon
            continuation, the expected result of the transaction will be partial
            and policy will be applied on information that can be extracted
            statically from the transaction only. This might result in falling
            back to the default policy rule. 
          default: true
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the simulation
            status will be skipped and the expected result of the transaction
            will be empty. The policy will be applied on information that can be
            extracted statically from the transaction only. This might result in
            falling back to the default policy rule. <br> Note, it is
            recommended to use the default setting for this field and to turn
            off `fail_on_prediction_failure` instead - unless you wish to save
            time by omitting the prediction phase entirely. 
          default: false
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        funder:
          title: Funder
          description: >-
            The unique identifier of the vault that pays the fee for this
            transaction.
          type: string
          format: uuid
        chain:
          $ref: '#/components/schemas/EvmChainRequest'
          description: >-
            The chain that this transaction is on. Specify either the chain name
            (for example `ethereum_mainnet`), the chain ID as a string
            (`evm_1`), or the chain ID as an integer (`1`).
        token:
          type: string
          maxLength: 42
          minLength: 42
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Token
          description: The ERC-20 token contract for which to revoke allowance.
          example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        spender:
          type: string
          maxLength: 42
          minLength: 42
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Spender
          description: >-
            The EOA or contract address of the spender for whom to revoke
            allowance.
          example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
      type: object
      required:
        - type
        - chain
        - token
        - spender
      title: CreateEvmRevokeAllowanceRequest
    CreateEvmTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: evm_transaction
          title: Type
          description: EVM transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateEvmRawTransactionRequest'
            - $ref: '#/components/schemas/CreateEvmTransferRequest'
            - $ref: '#/components/schemas/CreateEvmRevokeAllowanceRequest'
          discriminator:
            propertyName: type
            mapping:
              evm_raw_transaction: '#/components/schemas/CreateEvmRawTransactionRequest'
              evm_revoke_allowance: '#/components/schemas/CreateEvmRevokeAllowanceRequest'
              evm_transfer: '#/components/schemas/CreateEvmTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateEvmTransactionRequest
    CreateEvmTransactionWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: evm_transaction
          title: Type
          description: EVM transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateEvmRawTransactionRequest'
            - $ref: '#/components/schemas/CreateEvmTransferRequest'
            - $ref: '#/components/schemas/CreateEvmRevokeAllowanceRequest'
          discriminator:
            propertyName: type
            mapping:
              evm_raw_transaction: '#/components/schemas/CreateEvmRawTransactionRequest'
              evm_revoke_allowance: '#/components/schemas/CreateEvmRevokeAllowanceRequest'
              evm_transfer: '#/components/schemas/CreateEvmTransferRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateEvmTransactionWithWaitRequest
    CreateEvmTransferRequest:
      properties:
        type:
          type: string
          const: evm_transfer
          title: Type
          description: >-
            An EVM transfer transaction is for transferring native currency or
            ERC20/721/1155 tokens.
        use_secure_node:
          type: boolean
          title: Use Secure Node
          description: >-
            Use a secure node to send the transaction. By using a secure node,
            you avoid maximal extractable value (MEV) attacks.
          default: false
        gas:
          description: >-
            The gas details of the transaction. The details depend on which
            option you choose:<ul><li>Gas Priority or <li>Custom Gas Request
            </ul>
          oneOf:
            - $ref: '#/components/schemas/GasPriorityRequest'
            - $ref: '#/components/schemas/CustomGasRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/CustomGasRequest'
              priority: '#/components/schemas/GasPriorityRequest'
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if transaction creation should fail in case prediction
            failed, `False` otherwise. <br> In case simulation has failed upon
            continuation, the expected result of the transaction will be partial
            and policy will be applied on information that can be extracted
            statically from the transaction only. This might result in falling
            back to the default policy rule. 
          default: true
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the simulation
            status will be skipped and the expected result of the transaction
            will be empty. The policy will be applied on information that can be
            extracted statically from the transaction only. This might result in
            falling back to the default policy rule. <br> Note, it is
            recommended to use the default setting for this field and to turn
            off `fail_on_prediction_failure` instead - unless you wish to save
            time by omitting the prediction phase entirely. 
          default: false
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        funder:
          title: Funder
          description: >-
            The unique identifier of the vault that pays the fee for this
            transaction.
          type: string
          format: uuid
        to:
          anyOf:
            - type: string
              maxLength: 42
              minLength: 42
              pattern: ^0[xX][a-fA-F0-9]+$
              example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
            - type: string
              format: uuid
          title: To
          description: >-
            The recipient of the transfer. Specify either a general address (a
            hex string of length 42 characters) or the ID of another vault (a
            UUID string).
        asset_identifier:
          $ref: '#/components/schemas/EvmAssetIdentifierRequest'
          description: The asset to be transferred.
        value:
          oneOf:
            - $ref: '#/components/schemas/CreateTransferRequestExplicitAmount'
            - $ref: '#/components/schemas/CreateTransferRequestMaxAmount'
          description: 'Specify one of the following: <ul><li>`value`<li>`max`</ul>'
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateTransferRequestMaxAmount'
              value: '#/components/schemas/CreateTransferRequestExplicitAmount'
      type: object
      required:
        - type
        - to
        - asset_identifier
        - value
      title: CreateEvmTransferRequest
    CreateEvmTypedMessageRequest:
      properties:
        type:
          type: string
          const: typed_message_type
          title: Type
          description: Typed message standard (version 4).
        chain:
          $ref: '#/components/schemas/EvmChainRequest'
          description: >-
            The EVM chain that this message is intended for. Specify either the
            chain ID (for example `1` for `ethereum_mainnet`) or the chain name
            (for example, `ethereum_goerli`).
        raw_data:
          type: string
          minLength: 1
          title: Raw Data
          description: >-
            The raw data of the message to be signed, provided as a string or
            hex-encoded.
      type: object
      required:
        - type
        - chain
        - raw_data
      title: CreateEvmTypedMessageRequest
    CreateEvmTypedV1MessageRequest:
      properties:
        type:
          type: string
          const: typed_message_type_v1
          title: Type
          description: Typed message standard (version 1).
        chain:
          $ref: '#/components/schemas/EvmChainRequest'
          description: >-
            The EVM chain that this message is intended for. Specify either the
            chain ID (for example `1` for `ethereum_mainnet`) or the chain name
            (for example, `ethereum_goerli`).
        raw_data:
          type: string
          minLength: 1
          title: Raw Data
          description: >-
            The raw data of the message to be signed, provided as a string or
            hex-encoded.
      type: object
      required:
        - type
        - chain
        - raw_data
      title: CreateEvmTypedV1MessageRequest
    CreateEvmVaultRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the vault.
        end_user_id:
          title: End User Id
          description: >-
            The end user id to create a vault for.This field is required for
            end-user vault creation, otherwise, it's optional. If not provided,
            the organization's default keyset will be used.
          type: string
          format: uuid
        vault_group_id:
          title: Vault Group Id
          description: >-
            The group to add this vault to. If not provided, the vault will be
            created in the Default vault group.
          type: string
          format: uuid
        import_vault:
          description: >-
            Additional information when creating a vault from an imported key.
            This field is relevant only for organizations using imported keys.
          $ref: '#/components/schemas/ImportVaultDefaultOptions'
        type:
          type: string
          const: evm
          title: Type
          description: EVM vault type.
      type: object
      required:
        - name
        - type
      title: CreateEvmVaultRequest
    CreateExchangeExternalWithdrawRequest:
      properties:
        type:
          type: string
          const: external_withdraw
          title: Type
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise.
          default: true
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise.
          default: false
        asset_identifier:
          $ref: '#/components/schemas/ExchangeAssetIdentifierRequest'
          description: The exchange asset identifier to transfer.
        chain:
          type: string
          minLength: 1
          title: ChainUniqueId
          description: The chain on which to make the transfer.
        to:
          oneOf:
            - $ref: >-
                #/components/schemas/ExchangeTransferExternalRecipientTypeAddress
            - $ref: '#/components/schemas/ExchangeTransferExternalRecipientTypeVault'
          description: The recipient of the transfer.
          discriminator:
            propertyName: type
            mapping:
              address: >-
                #/components/schemas/ExchangeTransferExternalRecipientTypeAddress
              vault: '#/components/schemas/ExchangeTransferExternalRecipientTypeVault'
        value:
          oneOf:
            - $ref: >-
                #/components/schemas/CreateExchangeExternalWithdrawRequestExplicitAmount
            - $ref: '#/components/schemas/CreateExchangeTransferRequestMaxAmount'
          description: The number of units of currency to transfer.
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateExchangeTransferRequestMaxAmount'
              value: >-
                #/components/schemas/CreateExchangeExternalWithdrawRequestExplicitAmount
        memo:
          title: Memo
          description: Transaction memo.
          type: string
      type: object
      required:
        - type
        - asset_identifier
        - chain
        - to
        - value
      title: CreateExchangeExternalWithdrawRequest
    CreateExchangeExternalWithdrawRequestExplicitAmount:
      properties:
        type:
          type: string
          const: value
          title: Type
        value:
          type: string
          pattern: ^\d+$
          title: Value
          description: The amount of the transfer.
          example: '1000000000000000000'
        is_net_amount:
          type: boolean
          title: Is Net Amount
          description: >-
            `True` to add fee on top of transfer amount.`False` to include fee
            in the transfer amount.
          default: false
      type: object
      required:
        - type
        - value
      title: CreateExchangeExternalWithdrawRequestExplicitAmount
    CreateExchangeTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          type: string
          enum:
            - initiator
            - api_signer
          title: Signer Type
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment. </ul>
          default: initiator
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: exchange_transaction
          title: Type
          description: EXCHANGE transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateExchangeExternalWithdrawRequest'
          discriminator:
            propertyName: type
            mapping:
              external_withdraw: '#/components/schemas/CreateExchangeExternalWithdrawRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateExchangeTransactionRequest
    CreateExchangeTransferRequestMaxAmount:
      properties:
        type:
          type: string
          const: max
          title: Type
      type: object
      required:
        - type
      title: CreateExchangeTransferRequestMaxAmount
    CreateSolanaContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: solana
          title: Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          title: Address
          description: The address on the solana chain.
          example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
        chains:
          items:
            $ref: '#/components/schemas/SolanaChainUniqueId'
          type: array
          title: Chains
          description: The chains the contact belongs to.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/SolanaAssetIdentifierRequest'
          type: array
      type: object
      required:
        - name
        - type
        - address
        - chains
      title: CreateSolanaContactRequest
    CreateSolanaMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: solana_message
          title: Type
          description: Solana message type.
        details:
          $ref: '#/components/schemas/SolanaPersonalMessageRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateSolanaMessageRequest
    CreateSolanaMessageWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: solana_message
          title: Type
          description: Solana message type.
        details:
          $ref: '#/components/schemas/SolanaPersonalMessageRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateSolanaMessageWithWaitRequest
    CreateSolanaRawTransactionRequest:
      properties:
        version:
          $ref: '#/components/schemas/SolanaMessageVersion'
          description: The version of the transaction message.
        instructions:
          items:
            $ref: '#/components/schemas/SolanaCompiledInstructionRequest'
          type: array
          minItems: 1
          title: Instructions
          description: The instructions of the transaction.
        accounts:
          items:
            $ref: '#/components/schemas/SolanaTransactionAccountRequest'
          type: array
          minItems: 1
          title: Accounts
          description: Accounts used in the transaction.
        address_table_lookups:
          title: Address Table Lookups
          description: Lookup tables of accounts used in the transaction.
          items:
            $ref: '#/components/schemas/SolanaMessageAddressTableLookupRequest'
          type: array
        signatures:
          title: Signatures
          description: Any partial signatures on the transaction.
          items:
            $ref: '#/components/schemas/SolanaTransactionSignaturesRequest'
          type: array
        recent_blockhash:
          title: Recent Blockhash
          description: The transaction nonce (a recently processed blockhash).
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          example: 4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZAMdL4VZHirAn
        fee:
          description: The fee configuration for the transaction.
          oneOf:
            - $ref: '#/components/schemas/SolanaCustomFeeRequest'
            - $ref: '#/components/schemas/SolanaPriorityFeeRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/SolanaCustomFeeRequest'
              priority: '#/components/schemas/SolanaPriorityFeeRequest'
        type:
          type: string
          const: solana_raw_transaction
          title: Type
          description: A Solana raw transaction is for any operation.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the simulation
            status will be skipped and the expected result of the transaction
            will be empty. The policy will be applied on information that can be
            extracted statically from the transaction only. This might result in
            falling back to the default policy rule. <br> Note, it is
            recommended to use the default setting for this field and to turn
            off `fail_on_prediction_failure` instead - unless you wish to save
            time by omitting the prediction phase entirely. 
          default: false
        chain:
          $ref: '#/components/schemas/SolanaChainUniqueId'
      type: object
      required:
        - version
        - instructions
        - accounts
        - address_table_lookups
        - type
        - chain
      title: CreateSolanaRawTransactionRequest
    CreateSolanaSerializedTransactionMessageRequest:
      properties:
        fee:
          description: The fee configuration for the transaction.
          oneOf:
            - $ref: '#/components/schemas/SolanaCustomFeeRequest'
            - $ref: '#/components/schemas/SolanaPriorityFeeRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/SolanaCustomFeeRequest'
              priority: '#/components/schemas/SolanaPriorityFeeRequest'
        type:
          type: string
          const: solana_serialized_transaction_message
          title: Type
          description: A Solana serialized transaction message request.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the simulation
            status will be skipped and the expected result of the transaction
            will be empty. The policy will be applied on information that can be
            extracted statically from the transaction only. This might result in
            falling back to the default policy rule. <br> Note, it is
            recommended to use the default setting for this field and to turn
            off `fail_on_prediction_failure` instead - unless you wish to save
            time by omitting the prediction phase entirely. 
          default: false
        chain:
          $ref: '#/components/schemas/SolanaChainUniqueId'
        data:
          type: string
          title: Data
          description: >-
            The base64 encoded binary transaction message. Can be either a
            serialized legacy Message or a serialized MessageV0.

            The first account in the serialized transaction message must match
            theaddress of the vault in the request.

            If the serialized message contains a recent block hash, the server
            may override it to prevent the transaction from expiring.

            Additionally, if the transaction does not include a priority fee
            (ComputeBudget instruction), the server might add it to increase the
            chances of the transaction landing on chain.
          example: SGVsbG8=
        signatures:
          title: Signatures
          description: >-
            List of Base64 encoded partial signatures.

            Can be omitted if the transaction requires no partial signatures, or
            if ephemeral_keys are passed instead.

            If passed, then the size of this array must match the total number
            of signers in the transaction, and elements in positions
            corresponding to vault accounts must be `{data: null}`
          items:
            $ref: '#/components/schemas/SolanaTransactionSignaturesRequest'
          type: array
        ephemeral_keys:
          title: Ephemeral Keys
          description: >-
            A list of 64-byte Solana secret keys, encoded as base64, for any
            non-vault signer accounts.

            Can be omitted if the transaction requires no partial signatures, or
            if signatures are passed instead.

            If passed, then the size of this array must match the total number
            of signers in the transaction, and elements in positions
            corresponding to vault accounts must be `{data: null}`
          items:
            $ref: '#/components/schemas/SolanaSecretKeyRequest'
          type: array
      type: object
      required:
        - type
        - chain
        - data
      title: CreateSolanaSerializedTransactionMessageRequest
    CreateSolanaSpotSwapRequest:
      properties:
        quote_id:
          type: string
          format: uuid
          title: Quote Id
          description: The quote ID of the swap.
        input_asset_identifier:
          $ref: '#/components/schemas/SolanaAssetIdentifierRequest'
          description: The Solana asset identifier of the input asset.
        output_asset_identifier:
          $ref: '#/components/schemas/SolanaAssetIdentifierRequest'
          description: The Solana asset identifier of the output asset.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The number of units of currency to swap.
          example: '1000000000000000000'
        fee:
          description: >-
            The fee configuration for the transaction, including broadcast mode
            selection.
          oneOf:
            - $ref: '#/components/schemas/SolanaPriorityFeeTypeRequest'
            - $ref: '#/components/schemas/SolanaJitoFeeTypeRequest'
          discriminator:
            propertyName: type
            mapping:
              jito: '#/components/schemas/SolanaJitoFeeTypeRequest'
              priority_fee: '#/components/schemas/SolanaPriorityFeeTypeRequest'
        slippage_bps:
          title: Slippage Bps
          description: The slippage in basis points.
          type: string
          pattern: ^\d+$
          example: '1000000000000000000'
        type:
          type: string
          const: solana_spot_swap
          title: Type
          description: A Solana spot swap transaction is for swapping between two assets.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the simulation
            status will be skipped and the expected result of the transaction
            will be empty. The policy will be applied on information that can be
            extracted statically from the transaction only. This might result in
            falling back to the default policy rule. <br> Note, it is
            recommended to use the default setting for this field and to turn
            off `fail_on_prediction_failure` instead - unless you wish to save
            time by omitting the prediction phase entirely. 
          default: false
      type: object
      required:
        - quote_id
        - input_asset_identifier
        - output_asset_identifier
        - amount
        - type
      title: CreateSolanaSpotSwapRequest
    CreateSolanaTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: solana_transaction
          title: Type
          description: Solana transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateSolanaTransferRequest'
            - $ref: '#/components/schemas/CreateSolanaRawTransactionRequest'
            - $ref: >-
                #/components/schemas/CreateSolanaSerializedTransactionMessageRequest
          discriminator:
            propertyName: type
            mapping:
              solana_raw_transaction: '#/components/schemas/CreateSolanaRawTransactionRequest'
              solana_serialized_transaction_message: >-
                #/components/schemas/CreateSolanaSerializedTransactionMessageRequest
              solana_transfer: '#/components/schemas/CreateSolanaTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateSolanaTransactionRequest
    CreateSolanaTransactionWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: solana_transaction
          title: Type
          description: Solana transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateSolanaTransferRequest'
            - $ref: '#/components/schemas/CreateSolanaRawTransactionRequest'
            - $ref: >-
                #/components/schemas/CreateSolanaSerializedTransactionMessageRequest
          discriminator:
            propertyName: type
            mapping:
              solana_raw_transaction: '#/components/schemas/CreateSolanaRawTransactionRequest'
              solana_serialized_transaction_message: >-
                #/components/schemas/CreateSolanaSerializedTransactionMessageRequest
              solana_transfer: '#/components/schemas/CreateSolanaTransferRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateSolanaTransactionWithWaitRequest
    CreateSolanaTransferRequest:
      properties:
        fee:
          description: The fee configuration for the transaction.
          oneOf:
            - $ref: '#/components/schemas/SolanaCustomFeeRequest'
            - $ref: '#/components/schemas/SolanaPriorityFeeRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/SolanaCustomFeeRequest'
              priority: '#/components/schemas/SolanaPriorityFeeRequest'
        type:
          type: string
          const: solana_transfer
          title: Type
          description: >-
            A Solana transfer transaction is for transferring native currency or
            a token.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the simulation
            status will be skipped and the expected result of the transaction
            will be empty. The policy will be applied on information that can be
            extracted statically from the transaction only. This might result in
            falling back to the default policy rule. <br> Note, it is
            recommended to use the default setting for this field and to turn
            off `fail_on_prediction_failure` instead - unless you wish to save
            time by omitting the prediction phase entirely. 
          default: false
        to:
          anyOf:
            - type: string
              maxLength: 44
              minLength: 32
              pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
              example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
            - type: string
              format: uuid
          title: To
          description: >-
            The recipient of the transfer. Specify either a general address (a
            base58 string) or the id of another vault (a UUID string).
        value:
          oneOf:
            - $ref: '#/components/schemas/CreateTransferRequestExplicitAmount'
            - $ref: '#/components/schemas/CreateTransferRequestMaxAmount'
          description: The number of units of currency to transfer.
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateTransferRequestMaxAmount'
              value: '#/components/schemas/CreateTransferRequestExplicitAmount'
        asset_identifier:
          $ref: '#/components/schemas/SolanaAssetIdentifierRequest'
          description: The Solana asset identifier to transfer.
      type: object
      required:
        - type
        - to
        - value
        - asset_identifier
      title: CreateSolanaTransferRequest
    CreateSolanaVaultRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the vault.
        end_user_id:
          title: End User Id
          description: >-
            The end user id to create a vault for.This field is required for
            end-user vault creation, otherwise, it's optional. If not provided,
            the organization's default keyset will be used.
          type: string
          format: uuid
        vault_group_id:
          title: Vault Group Id
          description: >-
            The group to add this vault to. If not provided, the vault will be
            created in the Default vault group.
          type: string
          format: uuid
        import_vault:
          description: >-
            Additional information when creating a vault from an imported key.
            This field is relevant only for organizations using imported keys.
          $ref: '#/components/schemas/ImportVaultDefaultOptions'
        type:
          type: string
          const: solana
          title: Type
          description: Solana vault type.
      type: object
      required:
        - name
        - type
      title: CreateSolanaVaultRequest
    CreateStacksContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: stacks
          title: Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 171
          minLength: 39
          pattern: ^S[0-9A-Za-z._-]+$
          title: Address
          description: The address on the Stacks chain.
          example: SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9
        chains:
          items:
            $ref: '#/components/schemas/StacksChainUniqueId'
          type: array
          title: Chains
          description: The chains the contact belongs to.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/StacksAssetIdentifierRequest'
          type: array
        memo:
          title: Memo
          description: >-
            Memo is an additional address feature used for identifying a
            recipient.
          type: string
      type: object
      required:
        - name
        - type
        - address
        - chains
      title: CreateStacksContactRequest
    CreateStacksTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: stacks_transaction
          title: Type
          description: Stacks transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateStacksTransferRequest'
            - $ref: '#/components/schemas/CreateStacksTransactionSerializedRequest'
          discriminator:
            propertyName: type
            mapping:
              stacks_serialized_transaction: '#/components/schemas/CreateStacksTransactionSerializedRequest'
              stacks_transfer: '#/components/schemas/CreateStacksTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateStacksTransactionRequest
    CreateStacksTransactionSerializedRequest:
      properties:
        type:
          type: string
          const: stacks_serialized_transaction
          title: Type
          description: A serialized Stacks transaction.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise.
          default: true
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise.
          default: false
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        fee:
          description: The fee configuration for the transaction.
          oneOf:
            - $ref: '#/components/schemas/StacksCustomFeeRequest'
            - $ref: '#/components/schemas/StacksPriorityFeeRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/StacksCustomFeeRequest'
              priority: '#/components/schemas/StacksPriorityFeeRequest'
        serialized_transaction:
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Serialized Transaction
          description: The serialized transaction to create in hex-encoded format.
        chain:
          $ref: '#/components/schemas/StacksChainUniqueId'
          description: >-
            The chain that this transaction is on. Specify the chain name (for
            example, `stacks_mainnet`).
      type: object
      required:
        - type
        - serialized_transaction
        - chain
      title: CreateStacksTransactionSerializedRequest
    CreateStacksTransactionWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: stacks_transaction
          title: Type
          description: Stacks transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateStacksTransferRequest'
            - $ref: '#/components/schemas/CreateStacksTransactionSerializedRequest'
          discriminator:
            propertyName: type
            mapping:
              stacks_serialized_transaction: '#/components/schemas/CreateStacksTransactionSerializedRequest'
              stacks_transfer: '#/components/schemas/CreateStacksTransferRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateStacksTransactionWithWaitRequest
    CreateStacksTransferRequest:
      properties:
        type:
          type: string
          const: stacks_transfer
          title: Type
          description: >-
            A Stacks transfer transaction. A transaction of this kind is for
            transferring native currency or a sip10 token.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise.
          default: true
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise.
          default: false
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        fee:
          description: The fee configuration for the transaction.
          oneOf:
            - $ref: '#/components/schemas/StacksCustomFeeRequest'
            - $ref: '#/components/schemas/StacksPriorityFeeRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/StacksCustomFeeRequest'
              priority: '#/components/schemas/StacksPriorityFeeRequest'
        to:
          oneOf:
            - $ref: '#/components/schemas/StacksRecipientHex'
            - $ref: '#/components/schemas/RecipientVaultId'
          discriminator:
            propertyName: type
            mapping:
              hex: '#/components/schemas/StacksRecipientHex'
              vault_id: '#/components/schemas/RecipientVaultId'
        value:
          oneOf:
            - $ref: '#/components/schemas/CreateTransferRequestExplicitAmount'
            - $ref: '#/components/schemas/CreateTransferRequestMaxAmount'
          description: The number of units of currency to transfer.
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateTransferRequestMaxAmount'
              value: '#/components/schemas/CreateTransferRequestExplicitAmount'
        asset_identifier:
          $ref: '#/components/schemas/StacksAssetIdentifierRequest'
          description: The Stacks asset identifier to transfer.
        memo:
          title: Memo
          description: The memo to include in the transaction.
          type: string
      type: object
      required:
        - type
        - to
        - value
        - asset_identifier
      title: CreateStacksTransferRequest
    CreateStacksVaultRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the vault.
        end_user_id:
          title: End User Id
          description: >-
            The end user id to create a vault for.This field is required for
            end-user vault creation, otherwise, it's optional. If not provided,
            the organization's default keyset will be used.
          type: string
          format: uuid
        vault_group_id:
          title: Vault Group Id
          description: >-
            The group to add this vault to. If not provided, the vault will be
            created in the Default vault group.
          type: string
          format: uuid
        type:
          type: string
          const: stacks
          title: Type
          description: Stacks vault type.
      type: object
      required:
        - name
        - type
      title: CreateStacksVaultRequest
    CreateStarknetContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: starknet
          title: Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address on the Starknet chain.
          example: '0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8'
        chains:
          items:
            $ref: '#/components/schemas/StarknetChainUniqueId'
          type: array
          title: Chains
          description: The chains the contact belongs to.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/StarknetAssetIdentifierRequest'
          type: array
      type: object
      required:
        - name
        - type
        - address
        - chains
      title: CreateStarknetContactRequest
    CreateStarknetContractDeploymentRequest:
      properties:
        type:
          type: string
          const: starknet_contract_deployment
          title: Type
          description: A Starknet transaction to deploy a contract account.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise.
          default: true
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise.
          default: false
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        chain:
          $ref: '#/components/schemas/StarknetChainUniqueId'
          description: >-
            The chain that this transaction is on. Specify the chain name (for
            example, `starknet_mainnet`).
      type: object
      required:
        - type
        - chain
      title: CreateStarknetContractDeploymentRequest
    CreateStarknetMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: starknet_message
          title: Type
          description: Starknet message type.
        details:
          $ref: '#/components/schemas/StarknetTypedMessageRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateStarknetMessageRequest
    CreateStarknetMessageWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: starknet_message
          title: Type
          description: Starknet message type.
        details:
          $ref: '#/components/schemas/StarknetTypedMessageRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateStarknetMessageWithWaitRequest
    CreateStarknetTransactionInvokeRequest:
      properties:
        type:
          type: string
          const: starknet_contract_call
          title: Type
          description: A Starknet transaction with contract call payload.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise.
          default: true
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise.
          default: false
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        chain:
          $ref: '#/components/schemas/StarknetChainUniqueId'
          description: >-
            The chain that this transaction is on. Specify the chain name (for
            example, `starknet_mainnet`).
        call_data:
          items:
            $ref: '#/components/schemas/StarknetCallDataRequest'
          type: array
          title: Call Data
          description: The call data of the transaction.
      type: object
      required:
        - type
        - chain
        - call_data
      title: CreateStarknetTransactionInvokeRequest
    CreateStarknetTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: starknet_transaction
          title: Type
          description: Starknet transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateStarknetTransferRequest'
            - $ref: '#/components/schemas/CreateStarknetTransactionInvokeRequest'
            - $ref: '#/components/schemas/CreateStarknetContractDeploymentRequest'
          discriminator:
            propertyName: type
            mapping:
              starknet_contract_call: '#/components/schemas/CreateStarknetTransactionInvokeRequest'
              starknet_contract_deployment: '#/components/schemas/CreateStarknetContractDeploymentRequest'
              starknet_transfer: '#/components/schemas/CreateStarknetTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateStarknetTransactionRequest
    CreateStarknetTransactionWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: starknet_transaction
          title: Type
          description: Starknet transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateStarknetTransferRequest'
            - $ref: '#/components/schemas/CreateStarknetTransactionInvokeRequest'
            - $ref: '#/components/schemas/CreateStarknetContractDeploymentRequest'
          discriminator:
            propertyName: type
            mapping:
              starknet_contract_call: '#/components/schemas/CreateStarknetTransactionInvokeRequest'
              starknet_contract_deployment: '#/components/schemas/CreateStarknetContractDeploymentRequest'
              starknet_transfer: '#/components/schemas/CreateStarknetTransferRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateStarknetTransactionWithWaitRequest
    CreateStarknetTransferRequest:
      properties:
        type:
          type: string
          const: starknet_transfer
          title: Type
          description: >-
            A Starknet transfer transaction. A transaction of this kind is for
            transferring native currency or an erc20 token.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise.
          default: true
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise.
          default: false
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        to:
          oneOf:
            - $ref: '#/components/schemas/StarknetRecipientHex'
            - $ref: '#/components/schemas/RecipientVaultId'
          discriminator:
            propertyName: type
            mapping:
              hex: '#/components/schemas/StarknetRecipientHex'
              vault_id: '#/components/schemas/RecipientVaultId'
        value:
          oneOf:
            - $ref: '#/components/schemas/CreateTransferRequestExplicitAmount'
            - $ref: '#/components/schemas/CreateTransferRequestMaxAmount'
          description: The number of units of currency to transfer.
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateTransferRequestMaxAmount'
              value: '#/components/schemas/CreateTransferRequestExplicitAmount'
        asset_identifier:
          $ref: '#/components/schemas/StarknetAssetIdentifierRequest'
          description: The Starknet asset identifier to transfer.
      type: object
      required:
        - type
        - to
        - value
        - asset_identifier
      title: CreateStarknetTransferRequest
    CreateStarknetVaultRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the vault.
        end_user_id:
          title: End User Id
          description: >-
            The end user id to create a vault for.This field is required for
            end-user vault creation, otherwise, it's optional. If not provided,
            the organization's default keyset will be used.
          type: string
          format: uuid
        vault_group_id:
          title: Vault Group Id
          description: >-
            The group to add this vault to. If not provided, the vault will be
            created in the Default vault group.
          type: string
          format: uuid
        import_vault:
          description: >-
            Additional information when creating a vault from an imported key.
            This field is relevant only for organizations using imported keys.
          $ref: '#/components/schemas/ImportVaultDefaultOptions'
        type:
          type: string
          const: starknet
          title: Type
          description: Starknet vault type.
      type: object
      required:
        - name
        - type
      title: CreateStarknetVaultRequest
    CreateSuiContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: sui
          title: Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address on the sui chain.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
        chains:
          items:
            $ref: '#/components/schemas/SuiChainUniqueId'
          type: array
          title: Chains
          description: The chains the contact belongs to.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/SuiAssetIdentifierRequest'
          type: array
      type: object
      required:
        - name
        - type
        - address
        - chains
      title: CreateSuiContactRequest
    CreateSuiMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: sui_message
          title: Type
          description: Sui message type.
        details:
          $ref: '#/components/schemas/SuiPersonalMessageRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateSuiMessageRequest
    CreateSuiMessageWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: sui_message
          title: Type
          description: Sui message type.
        details:
          $ref: '#/components/schemas/SuiPersonalMessageRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateSuiMessageWithWaitRequest
    CreateSuiProgrammableTransactionBlockRequest:
      properties:
        type:
          type: string
          const: sui_programmable_transaction_block
          title: Type
          description: >-
            Create a Sui programmable transaction block transaction. A
            transaction of this kind is for any operation.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the simulation
            status will be skipped and the expected result of the transaction
            will be empty. The policy will be applied on information that can be
            extracted statically from the transaction only. This might result in
            falling back to the default policy rule. <br> Note, it is
            recommended to use the default setting for this field and to turn
            off `fail_on_prediction_failure` instead - unless you wish to save
            time by omitting the prediction phase entirely. 
          default: false
        chain:
          $ref: '#/components/schemas/SuiChainUniqueId'
          description: >-
            The chain that this transaction is on. Specify the chain name (for
            example, `sui_mainnet`).
        gas_config:
          description: The gas configuration for the transaction.
          $ref: '#/components/schemas/SuiGasConfig'
        inputs:
          items:
            $ref: '#/components/schemas/SuiInput'
          type: array
          title: Inputs
          description: The inputs of the transaction.
        commands:
          items:
            $ref: '#/components/schemas/SuiCommand'
          type: array
          title: Commands
          description: The commands of the transaction.
      type: object
      required:
        - type
        - chain
        - inputs
        - commands
      title: CreateSuiProgrammableTransactionBlockRequest
    CreateSuiSerializedTransactionDataRequest:
      properties:
        type:
          type: string
          const: sui_binary_canonical_serialization
          title: Type
          description: A Sui Binary Canonical Serialization (or BCS) of a transaction.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the simulation
            status will be skipped and the expected result of the transaction
            will be empty. The policy will be applied on information that can be
            extracted statically from the transaction only. This might result in
            falling back to the default policy rule. <br> Note, it is
            recommended to use the default setting for this field and to turn
            off `fail_on_prediction_failure` instead - unless you wish to save
            time by omitting the prediction phase entirely. 
          default: false
        chain:
          $ref: '#/components/schemas/SuiChainUniqueId'
          description: >-
            The chain that this transaction is on. Specify the chain name (for
            example, `sui_mainnet`).
        data:
          type: string
          title: Data
          description: The base64 encoded BCS of the transaction.
          example: SGVsbG8=
      type: object
      required:
        - type
        - chain
        - data
      title: CreateSuiSerializedTransactionDataRequest
    CreateSuiTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: sui_transaction
          title: Type
          description: Sui transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateSuiTransferRequest'
            - $ref: >-
                #/components/schemas/CreateSuiProgrammableTransactionBlockRequest
            - $ref: '#/components/schemas/CreateSuiSerializedTransactionDataRequest'
          discriminator:
            propertyName: type
            mapping:
              sui_binary_canonical_serialization: '#/components/schemas/CreateSuiSerializedTransactionDataRequest'
              sui_programmable_transaction_block: >-
                #/components/schemas/CreateSuiProgrammableTransactionBlockRequest
              sui_transfer: '#/components/schemas/CreateSuiTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateSuiTransactionRequest
    CreateSuiTransactionWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: sui_transaction
          title: Type
          description: Sui transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateSuiTransferRequest'
            - $ref: >-
                #/components/schemas/CreateSuiProgrammableTransactionBlockRequest
            - $ref: '#/components/schemas/CreateSuiSerializedTransactionDataRequest'
          discriminator:
            propertyName: type
            mapping:
              sui_binary_canonical_serialization: '#/components/schemas/CreateSuiSerializedTransactionDataRequest'
              sui_programmable_transaction_block: >-
                #/components/schemas/CreateSuiProgrammableTransactionBlockRequest
              sui_transfer: '#/components/schemas/CreateSuiTransferRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateSuiTransactionWithWaitRequest
    CreateSuiTransferRequest:
      properties:
        type:
          type: string
          const: sui_transfer
          title: Type
          description: >-
            Create a Sui transfer transaction. A transaction of this kind is for
            transferring native currency or a coin.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the simulation
            status will be skipped and the expected result of the transaction
            will be empty. The policy will be applied on information that can be
            extracted statically from the transaction only. This might result in
            falling back to the default policy rule. <br> Note, it is
            recommended to use the default setting for this field and to turn
            off `fail_on_prediction_failure` instead - unless you wish to save
            time by omitting the prediction phase entirely. 
          default: false
        to:
          oneOf:
            - $ref: '#/components/schemas/SuiRecipientHex'
            - $ref: '#/components/schemas/RecipientVaultId'
          discriminator:
            propertyName: type
            mapping:
              hex: '#/components/schemas/SuiRecipientHex'
              vault_id: '#/components/schemas/RecipientVaultId'
        gas_config:
          description: The gas configuration for the transaction.
          $ref: '#/components/schemas/SuiGasConfig'
        value:
          oneOf:
            - $ref: '#/components/schemas/CreateTransferRequestExplicitAmount'
            - $ref: '#/components/schemas/CreateTransferRequestMaxAmount'
          description: The number of units of currency to transfer.
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateTransferRequestMaxAmount'
              value: '#/components/schemas/CreateTransferRequestExplicitAmount'
        asset_identifier:
          $ref: '#/components/schemas/SuiAssetIdentifierRequest'
          description: The Sui asset identifier to transfer.
      type: object
      required:
        - type
        - to
        - value
        - asset_identifier
      title: CreateSuiTransferRequest
    CreateSuiVaultRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the vault.
        end_user_id:
          title: End User Id
          description: >-
            The end user id to create a vault for.This field is required for
            end-user vault creation, otherwise, it's optional. If not provided,
            the organization's default keyset will be used.
          type: string
          format: uuid
        vault_group_id:
          title: Vault Group Id
          description: >-
            The group to add this vault to. If not provided, the vault will be
            created in the Default vault group.
          type: string
          format: uuid
        import_vault:
          description: >-
            Additional information when creating a vault from an imported key.
            This field is relevant only for organizations using imported keys.
          $ref: '#/components/schemas/ImportVaultDefaultOptions'
        type:
          type: string
          const: sui
          title: Type
          description: Sui vault type.
      type: object
      required:
        - name
        - type
      title: CreateSuiVaultRequest
    CreateTonContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: ton
          title: Type
          description: The type of the chain.
        address:
          type: string
          title: Address
          description: The address TON contract in any format.
        chains:
          items:
            $ref: '#/components/schemas/TonChainUniqueId'
          type: array
          title: Chains
          description: The chain details this address is of.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/TonAssetIdentifierRequest'
          type: array
        comment:
          title: Comment
          description: >-
            Comment is an additional address feature used for identifying a
            recipient.
          type: string
      type: object
      required:
        - name
        - type
        - address
        - chains
      title: CreateTonContactRequest
    CreateTonMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: ton_message
          title: Type
          description: TON message type.
        details:
          $ref: '#/components/schemas/TonProofMessageRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateTonMessageRequest
    CreateTonMessageWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: ton_message
          title: Type
          description: TON message type.
        details:
          $ref: '#/components/schemas/TonProofMessageRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateTonMessageWithWaitRequest
    CreateTonSerializedRawTransactionRequest:
      properties:
        type:
          type: string
          const: ton_raw_transaction
          title: Type
          description: An Ton transaction with raw payload.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise.
          default: true
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        chain:
          $ref: '#/components/schemas/TonChainUniqueId'
          description: >-
            The chain that this transaction is on. Specify the chain name (for
            example, `ton_mainnet`).
        transaction_payload:
          $ref: '#/components/schemas/TonTransactionPayload'
          description: The transaction payload
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise.
          default: false
      type: object
      required:
        - type
        - chain
        - transaction_payload
      title: CreateTonSerializedRawTransactionRequest
    CreateTonTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: ton_transaction
          title: Type
          description: TON transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateTonTransferRequest'
            - $ref: '#/components/schemas/CreateTonSerializedRawTransactionRequest'
          discriminator:
            propertyName: type
            mapping:
              ton_raw_transaction: '#/components/schemas/CreateTonSerializedRawTransactionRequest'
              ton_transfer: '#/components/schemas/CreateTonTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateTonTransactionRequest
    CreateTonTransactionWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: ton_transaction
          title: Type
          description: TON transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateTonTransferRequest'
            - $ref: '#/components/schemas/CreateTonSerializedRawTransactionRequest'
          discriminator:
            propertyName: type
            mapping:
              ton_raw_transaction: '#/components/schemas/CreateTonSerializedRawTransactionRequest'
              ton_transfer: '#/components/schemas/CreateTonTransferRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateTonTransactionWithWaitRequest
    CreateTonTransferRequest:
      properties:
        type:
          type: string
          const: ton_transfer
          title: Type
          description: >-
            An TON transfer transaction. A transaction of this kind is for
            transferring native currency or a jetton.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise.
          default: true
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        to:
          oneOf:
            - $ref: '#/components/schemas/TonRecipientHex'
            - $ref: '#/components/schemas/RecipientVaultId'
          discriminator:
            propertyName: type
            mapping:
              hex: '#/components/schemas/TonRecipientHex'
              vault_id: '#/components/schemas/RecipientVaultId'
        value:
          oneOf:
            - $ref: '#/components/schemas/CreateTransferRequestExplicitAmount'
            - $ref: '#/components/schemas/CreateTransferRequestMaxAmount'
          description: The number of units of currency to transfer.
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateTransferRequestMaxAmount'
              value: '#/components/schemas/CreateTransferRequestExplicitAmount'
        asset_identifier:
          $ref: '#/components/schemas/TonAssetIdentifierRequest'
          description: The TON asset identifier to transfer.
        comment:
          title: Comment
          description: A comment to attach to the transaction.
          type: string
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise.
          default: false
      type: object
      required:
        - type
        - to
        - value
        - asset_identifier
      title: CreateTonTransferRequest
    CreateTonVaultRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the vault.
        end_user_id:
          title: End User Id
          description: >-
            The end user id to create a vault for.This field is required for
            end-user vault creation, otherwise, it's optional. If not provided,
            the organization's default keyset will be used.
          type: string
          format: uuid
        vault_group_id:
          title: Vault Group Id
          description: >-
            The group to add this vault to. If not provided, the vault will be
            created in the Default vault group.
          type: string
          format: uuid
        import_vault:
          description: >-
            Additional information when creating a vault from an imported key.
            This field is relevant only for organizations using imported keys.
          $ref: '#/components/schemas/ImportVaultDefaultOptions'
        type:
          type: string
          const: ton
          title: Type
          description: TON vault type.
      type: object
      required:
        - name
        - type
      title: CreateTonVaultRequest
    CreateTransactionErrorType:
      type: string
      enum:
        - reverted_transaction
        - partial_signed_raw_request
        - blocked_by_policy
        - transaction_contains_restricted_addresses
        - vault_not_found
        - missing_signed_raw_request
        - redundant_signed_raw_request
        - transaction_to_non_contract
        - insecure_key_derivation
        - invalid_signed_raw_request
        - invalid_signer_type
        - invalid_evm_message
        - invalid_evm_transaction_data
        - insufficient_funds
        - vault_type_mismatch
        - invalid_creator_type
        - invalid_recipient
        - dust_not_allowed
        - invalid_gas_type
        - insufficient_approvers
        - funding_blocked_by_policy
        - funder_not_allowed_for_transaction_type
        - origin_vault_used_as_funder
        - mixed_secure_and_non_secure_transactions
        - invalid_push_mode
        - chain_does_not_support_secure_node
        - invalid_solana_secret_key
        - invalid_solana_raw_transaction_accounts_field
        - insufficient_gas_coins
        - invalid_aptos_serialized_entry_point
        - invalid_aptos_serialized_type
        - invalid_aptos_rotate_key
        - sui_package_address_not_found
        - transaction_already_mined
        - invalid_utxo_message_address_type
        - invalid_starknet_vault_state
        - missing_secret_key_or_recent_blockhash
        - missing_secret_key_or_signature
        - revoke_allowance_gas_limit_too_high
        - chain_is_disabled
        - priority_fee_already_set
        - quote_not_found
        - invalid_transaction_gas_config_field
      title: CreateTransactionErrorType
    CreateTransactionRequest:
      oneOf:
        - $ref: '#/components/schemas/CreateAptosMessageRequest'
        - $ref: '#/components/schemas/CreateAptosTransactionRequest'
        - $ref: '#/components/schemas/CreateBlackBoxSignatureRequest'
        - $ref: '#/components/schemas/CreateCosmosTransactionRequest'
        - $ref: '#/components/schemas/CreateCosmosMessageRequest'
        - $ref: '#/components/schemas/CreateEvmMessageRequest'
        - $ref: '#/components/schemas/CreateEvmTransactionRequest'
        - $ref: '#/components/schemas/CreateExchangeTransactionRequest'
        - $ref: '#/components/schemas/CreateSolanaMessageRequest'
        - $ref: '#/components/schemas/CreateSolanaTransactionRequest'
        - $ref: '#/components/schemas/CreateStacksTransactionRequest'
        - $ref: '#/components/schemas/CreateStarknetMessageRequest'
        - $ref: '#/components/schemas/CreateStarknetTransactionRequest'
        - $ref: '#/components/schemas/CreateSuiMessageRequest'
        - $ref: '#/components/schemas/CreateSuiTransactionRequest'
        - $ref: '#/components/schemas/CreateTonMessageRequest'
        - $ref: '#/components/schemas/CreateTonTransactionRequest'
        - $ref: '#/components/schemas/CreateTronTransactionRequest'
        - $ref: '#/components/schemas/CreateUtxoMessageRequest'
        - $ref: '#/components/schemas/CreateUtxoTransactionRequest'
      discriminator:
        propertyName: type
        mapping:
          aptos_message: '#/components/schemas/CreateAptosMessageRequest'
          aptos_transaction: '#/components/schemas/CreateAptosTransactionRequest'
          black_box_signature: '#/components/schemas/CreateBlackBoxSignatureRequest'
          cosmos_message: '#/components/schemas/CreateCosmosMessageRequest'
          cosmos_transaction: '#/components/schemas/CreateCosmosTransactionRequest'
          evm_message: '#/components/schemas/CreateEvmMessageRequest'
          evm_transaction: '#/components/schemas/CreateEvmTransactionRequest'
          exchange_transaction: '#/components/schemas/CreateExchangeTransactionRequest'
          solana_message: '#/components/schemas/CreateSolanaMessageRequest'
          solana_transaction: '#/components/schemas/CreateSolanaTransactionRequest'
          stacks_transaction: '#/components/schemas/CreateStacksTransactionRequest'
          starknet_message: '#/components/schemas/CreateStarknetMessageRequest'
          starknet_transaction: '#/components/schemas/CreateStarknetTransactionRequest'
          sui_message: '#/components/schemas/CreateSuiMessageRequest'
          sui_transaction: '#/components/schemas/CreateSuiTransactionRequest'
          ton_message: '#/components/schemas/CreateTonMessageRequest'
          ton_transaction: '#/components/schemas/CreateTonTransactionRequest'
          tron_transaction: '#/components/schemas/CreateTronTransactionRequest'
          utxo_message: '#/components/schemas/CreateUtxoMessageRequest'
          utxo_transaction: '#/components/schemas/CreateUtxoTransactionRequest'
    CreateTransactionResponse:
      oneOf:
        - $ref: '#/components/schemas/AptosMessage'
        - $ref: '#/components/schemas/AptosTransaction'
        - $ref: '#/components/schemas/BlackBoxSignature'
        - $ref: '#/components/schemas/CosmosTransaction'
        - $ref: '#/components/schemas/CosmosMessage'
        - $ref: '#/components/schemas/EvmMessage'
        - $ref: '#/components/schemas/EvmTransaction'
        - $ref: '#/components/schemas/ExchangeTransaction'
        - $ref: '#/components/schemas/SolanaMessage'
        - $ref: '#/components/schemas/SolanaTransaction'
        - $ref: '#/components/schemas/StacksTransaction'
        - $ref: '#/components/schemas/StarknetMessage'
        - $ref: '#/components/schemas/StarknetTransaction'
        - $ref: '#/components/schemas/SuiMessage'
        - $ref: '#/components/schemas/SuiTransaction'
        - $ref: '#/components/schemas/TonMessage'
        - $ref: '#/components/schemas/TonTransaction'
        - $ref: '#/components/schemas/TronTransaction'
        - $ref: '#/components/schemas/UtxoMessage'
        - $ref: '#/components/schemas/UtxoTransaction'
      discriminator:
        propertyName: type
        mapping:
          aptos_message: '#/components/schemas/AptosMessage'
          aptos_transaction: '#/components/schemas/AptosTransaction'
          black_box_signature: '#/components/schemas/BlackBoxSignature'
          cosmos_message: '#/components/schemas/CosmosMessage'
          cosmos_transaction: '#/components/schemas/CosmosTransaction'
          evm_message: '#/components/schemas/EvmMessage'
          evm_transaction: '#/components/schemas/EvmTransaction'
          exchange_transaction: '#/components/schemas/ExchangeTransaction'
          solana_message: '#/components/schemas/SolanaMessage'
          solana_transaction: '#/components/schemas/SolanaTransaction'
          stacks_transaction: '#/components/schemas/StacksTransaction'
          starknet_message: '#/components/schemas/StarknetMessage'
          starknet_transaction: '#/components/schemas/StarknetTransaction'
          sui_message: '#/components/schemas/SuiMessage'
          sui_transaction: '#/components/schemas/SuiTransaction'
          ton_message: '#/components/schemas/TonMessage'
          ton_transaction: '#/components/schemas/TonTransaction'
          tron_transaction: '#/components/schemas/TronTransaction'
          utxo_message: '#/components/schemas/UtxoMessage'
          utxo_transaction: '#/components/schemas/UtxoTransaction'
    CreateTransactionWithWaitRequest:
      oneOf:
        - $ref: '#/components/schemas/CreateAptosMessageWithWaitRequest'
        - $ref: '#/components/schemas/CreateAptosTransactionWithWaitRequest'
        - $ref: '#/components/schemas/CreateBlackBoxSignatureWithWaitRequest'
        - $ref: '#/components/schemas/CreateCosmosMessageWithWaitRequest'
        - $ref: '#/components/schemas/CreateCosmosTransactionWithWaitRequest'
        - $ref: '#/components/schemas/CreateEvmMessageWithWaitRequest'
        - $ref: '#/components/schemas/CreateEvmTransactionWithWaitRequest'
        - $ref: '#/components/schemas/CreateSolanaMessageWithWaitRequest'
        - $ref: '#/components/schemas/CreateSolanaTransactionWithWaitRequest'
        - $ref: '#/components/schemas/CreateStacksTransactionWithWaitRequest'
        - $ref: '#/components/schemas/CreateStarknetMessageWithWaitRequest'
        - $ref: '#/components/schemas/CreateStarknetTransactionWithWaitRequest'
        - $ref: '#/components/schemas/CreateSuiMessageWithWaitRequest'
        - $ref: '#/components/schemas/CreateSuiTransactionWithWaitRequest'
        - $ref: '#/components/schemas/CreateTonMessageWithWaitRequest'
        - $ref: '#/components/schemas/CreateTonTransactionWithWaitRequest'
        - $ref: '#/components/schemas/CreateTronTransactionWithWaitRequest'
        - $ref: '#/components/schemas/CreateUtxoMessageWithWaitRequest'
        - $ref: '#/components/schemas/CreateUtxoTransactionWithWaitRequest'
      discriminator:
        propertyName: type
        mapping:
          aptos_message: '#/components/schemas/CreateAptosMessageWithWaitRequest'
          aptos_transaction: '#/components/schemas/CreateAptosTransactionWithWaitRequest'
          black_box_signature: '#/components/schemas/CreateBlackBoxSignatureWithWaitRequest'
          cosmos_message: '#/components/schemas/CreateCosmosMessageWithWaitRequest'
          cosmos_transaction: '#/components/schemas/CreateCosmosTransactionWithWaitRequest'
          evm_message: '#/components/schemas/CreateEvmMessageWithWaitRequest'
          evm_transaction: '#/components/schemas/CreateEvmTransactionWithWaitRequest'
          solana_message: '#/components/schemas/CreateSolanaMessageWithWaitRequest'
          solana_transaction: '#/components/schemas/CreateSolanaTransactionWithWaitRequest'
          stacks_transaction: '#/components/schemas/CreateStacksTransactionWithWaitRequest'
          starknet_message: '#/components/schemas/CreateStarknetMessageWithWaitRequest'
          starknet_transaction: '#/components/schemas/CreateStarknetTransactionWithWaitRequest'
          sui_message: '#/components/schemas/CreateSuiMessageWithWaitRequest'
          sui_transaction: '#/components/schemas/CreateSuiTransactionWithWaitRequest'
          ton_message: '#/components/schemas/CreateTonMessageWithWaitRequest'
          ton_transaction: '#/components/schemas/CreateTonTransactionWithWaitRequest'
          tron_transaction: '#/components/schemas/CreateTronTransactionWithWaitRequest'
          utxo_message: '#/components/schemas/CreateUtxoMessageWithWaitRequest'
          utxo_transaction: '#/components/schemas/CreateUtxoTransactionWithWaitRequest'
    CreateTransactionWithWaitResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        signatures:
          items:
            type: string
            example: SGVsbG8=
          type: array
          title: Signatures
          description: The transaction signatures.
        state:
          anyOf:
            - $ref: '#/components/schemas/PushableTransactionState'
            - $ref: '#/components/schemas/NonPushableTransactionState'
            - $ref: '#/components/schemas/ExchangeTransactionState'
          title: State
          description: The state of the transaction.
        has_timed_out:
          type: boolean
          title: Has Timed Out
          description: >-
            Whether the transaction has timed out while waiting for the
            requested state.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - state
        - has_timed_out
      title: CreateTransactionWithWaitResponse
    CreateTransferRequestExplicitAmount:
      properties:
        type:
          type: string
          const: value
          title: Type
        value:
          type: string
          pattern: ^\d+$
          title: Value
          description: The amount of the transfer.
          example: '1000000000000000000'
      type: object
      required:
        - type
        - value
      title: CreateTransferRequestExplicitAmount
    CreateTransferRequestMaxAmount:
      properties:
        type:
          type: string
          const: max
          title: Type
      type: object
      required:
        - type
      title: CreateTransferRequestMaxAmount
    CreateTronContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: tron
          title: Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 34
          minLength: 34
          pattern: ^T[a-km-zA-HJ-NP-Z1-9]+$
          title: Address
          description: The address on the TRON chain.
          example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW
        chains:
          items:
            $ref: '#/components/schemas/TronChainUniqueId'
          type: array
          title: Chains
          description: The chains the contact belongs to.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/TronAssetIdentifierRequest'
          type: array
        memo:
          title: Memo
          description: >-
            Memo is an additional address feature used for identifying a
            recipient.
          type: string
      type: object
      required:
        - name
        - type
        - address
        - chains
      title: CreateTronContactRequest
    CreateTronTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: tron_transaction
          title: Type
          description: TRON transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateTronTransferRequest'
          discriminator:
            propertyName: type
            mapping:
              tron_transfer: '#/components/schemas/CreateTronTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateTronTransactionRequest
    CreateTronTransactionWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: tron_transaction
          title: Type
          description: TRON transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateTronTransferRequest'
          discriminator:
            propertyName: type
            mapping:
              tron_transfer: '#/components/schemas/CreateTronTransferRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateTronTransactionWithWaitRequest
    CreateTronTransferRequest:
      properties:
        type:
          type: string
          const: tron_transfer
          title: Type
          description: >-
            A TRON transfer transaction for transferring native currency or
            tokens.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise.
          default: true
        skip_prediction:
          type: boolean
          title: Skip Prediction
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise.
          default: false
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: The push mode of the transaction (auto, manual, or deferred)
          default: auto
        to:
          oneOf:
            - $ref: '#/components/schemas/TronRecipientHex'
            - $ref: '#/components/schemas/RecipientVaultId'
          discriminator:
            propertyName: type
            mapping:
              hex: '#/components/schemas/TronRecipientHex'
              vault_id: '#/components/schemas/RecipientVaultId'
        value:
          oneOf:
            - $ref: '#/components/schemas/CreateTransferRequestExplicitAmount'
            - $ref: '#/components/schemas/CreateTransferRequestMaxAmount'
          description: The number of units to transfer.
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateTransferRequestMaxAmount'
              value: '#/components/schemas/CreateTransferRequestExplicitAmount'
        asset_identifier:
          $ref: '#/components/schemas/TronAssetIdentifierRequest'
          description: The TRON asset identifier to transfer.
        memo:
          title: Memo
          description: Optional memo to include with the transaction
          type: string
      type: object
      required:
        - type
        - to
        - value
        - asset_identifier
      title: CreateTronTransferRequest
    CreateTronVaultRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the vault.
        end_user_id:
          title: End User Id
          description: >-
            The end user id to create a vault for.This field is required for
            end-user vault creation, otherwise, it's optional. If not provided,
            the organization's default keyset will be used.
          type: string
          format: uuid
        vault_group_id:
          title: Vault Group Id
          description: >-
            The group to add this vault to. If not provided, the vault will be
            created in the Default vault group.
          type: string
          format: uuid
        type:
          type: string
          const: tron
          title: Type
          description: TRON vault type.
      type: object
      required:
        - name
        - type
      title: CreateTronVaultRequest
    CreateUtxoContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: utxo
          title: Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 74
          minLength: 14
          title: Address
          description: The address on the utxo chain.
          example: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
        chain:
          $ref: '#/components/schemas/UtxoChainUniqueId'
          description: The chain the contact belongs to.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/UtxoAssetIdentifierRequest'
          type: array
      type: object
      required:
        - name
        - type
        - address
        - chain
      title: CreateUtxoContactRequest
    CreateUtxoMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: utxo_message
          title: Type
          description: Utxo message type.
        details:
          $ref: '#/components/schemas/UtxoMessageDetails'
          description: The details of the transaction
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateUtxoMessageRequest
    CreateUtxoMessageWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: utxo_message
          title: Type
          description: Utxo message type.
        details:
          $ref: '#/components/schemas/UtxoMessageDetails'
          description: The details of the transaction
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateUtxoMessageWithWaitRequest
    CreateUtxoTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: utxo_transaction
          title: Type
          description: UTXO transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/TransactionDetailsUtxoTransferRequest'
            - $ref: '#/components/schemas/TransactionDetailsUtxoPsbtRequest'
          description: Transaction details.
          discriminator:
            propertyName: type
            mapping:
              utxo_partially_signed_bitcoin_transaction: '#/components/schemas/TransactionDetailsUtxoPsbtRequest'
              utxo_transfer: '#/components/schemas/TransactionDetailsUtxoTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: CreateUtxoTransactionRequest
    CreateUtxoTransactionWithWaitRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The signer of the transaction. Can be: <ul><li>`initiator`: The
            creator of the transaction (default).<li>`api_signer`: A service
            that you run on your own network or cloud environment.
            <li>`end_user`: A mobile device using Fordefi's SDK.</ul>
          default: initiator
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
        dapp_info:
          description: The dapp info.
          $ref: '#/components/schemas/DappInfo'
        type:
          type: string
          const: utxo_transaction
          title: Type
          description: UTXO transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/TransactionDetailsUtxoTransferRequest'
            - $ref: '#/components/schemas/TransactionDetailsUtxoPsbtRequest'
          description: Transaction details.
          discriminator:
            propertyName: type
            mapping:
              utxo_partially_signed_bitcoin_transaction: '#/components/schemas/TransactionDetailsUtxoPsbtRequest'
              utxo_transfer: '#/components/schemas/TransactionDetailsUtxoTransferRequest'
        timeout:
          type: integer
          maximum: 50
          minimum: 1
          title: Timeout
          description: >-
            The maximum time in seconds to wait for the transaction to reach the
            specified state. For states that require more than 50 seconds, using
            webhooks or polling is preferable.
          default: 10
        wait_for_state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state to wait for.
      type: object
      required:
        - vault_id
        - type
        - details
        - wait_for_state
      title: CreateUtxoTransactionWithWaitRequest
    CreateUtxoVaultAddressRequest:
      properties:
        name:
          title: Name
          description: The name of the address.
          type: string
          minLength: 1
        address_type:
          $ref: '#/components/schemas/BitcoinVaultCreateAddressType'
          description: The type of the address.
          default: segwit
        import_address:
          description: >-
            Additional information when creating an address from an imported
            key. This field is relevant only for organizations using imported
            keys.Imported addresses much be either of type LEGACY or SEGWIT.
          $ref: '#/components/schemas/ImportVaultAddressOptions'
      type: object
      title: CreateUtxoVaultAddressRequest
    CreateUtxoVaultRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the vault.
        end_user_id:
          title: End User Id
          description: >-
            The end user id to create a vault for.This field is required for
            end-user vault creation, otherwise, it's optional. If not provided,
            the organization's default keyset will be used.
          type: string
          format: uuid
        vault_group_id:
          title: Vault Group Id
          description: >-
            The group to add this vault to. If not provided, the vault will be
            created in the Default vault group.
          type: string
          format: uuid
        type:
          type: string
          const: utxo
          title: Type
          description: UTXO vault type.
        chain:
          $ref: '#/components/schemas/UtxoChainUniqueId'
          description: The UTXO chain type.
        import_vault:
          description: >-
            Additional information when creating a vault from an imported key.
            This field is relevant only for organizations using imported keys.
          $ref: '#/components/schemas/ImportVaultUtxoOptions'
      type: object
      required:
        - name
        - type
        - chain
      title: CreateUtxoVaultRequest
    CreateVaultAddressErrorType:
      type: string
      enum:
        - invalid_vault_type
      title: CreateVaultAddressErrorType
    CreateVaultAddressRequest:
      $ref: '#/components/schemas/CreateUtxoVaultAddressRequest'
      title: CreateVaultAddressRequest
    CreateVaultAddressResponse:
      $ref: '#/components/schemas/UtxoVaultAddress'
      title: CreateVaultAddressResponse
    CreateVaultErrorType:
      type: string
      enum:
        - vault_type_not_supported
        - max_vaults_reached
        - mpc_key_is_missing
        - keyset_is_missing
        - keyset_not_ready
      title: CreateVaultErrorType
    CreateVaultRequest:
      oneOf:
        - $ref: '#/components/schemas/CreateAptosVaultRequest'
        - $ref: '#/components/schemas/CreateBlackBoxVaultRequest'
        - $ref: '#/components/schemas/CreateCosmosVaultRequest'
        - $ref: '#/components/schemas/CreateEvmVaultRequest'
        - $ref: '#/components/schemas/CreateSolanaVaultRequest'
        - $ref: '#/components/schemas/CreateStacksVaultRequest'
        - $ref: '#/components/schemas/CreateStarknetVaultRequest'
        - $ref: '#/components/schemas/CreateSuiVaultRequest'
        - $ref: '#/components/schemas/CreateTonVaultRequest'
        - $ref: '#/components/schemas/CreateTronVaultRequest'
        - $ref: '#/components/schemas/CreateUtxoVaultRequest'
      discriminator:
        propertyName: type
        mapping:
          aptos: '#/components/schemas/CreateAptosVaultRequest'
          black_box: '#/components/schemas/CreateBlackBoxVaultRequest'
          cosmos: '#/components/schemas/CreateCosmosVaultRequest'
          evm: '#/components/schemas/CreateEvmVaultRequest'
          solana: '#/components/schemas/CreateSolanaVaultRequest'
          stacks: '#/components/schemas/CreateStacksVaultRequest'
          starknet: '#/components/schemas/CreateStarknetVaultRequest'
          sui: '#/components/schemas/CreateSuiVaultRequest'
          ton: '#/components/schemas/CreateTonVaultRequest'
          tron: '#/components/schemas/CreateTronVaultRequest'
          utxo: '#/components/schemas/CreateUtxoVaultRequest'
    CreateVaultResponse:
      oneOf:
        - $ref: '#/components/schemas/AptosVault'
        - $ref: '#/components/schemas/BlackBoxVault'
        - $ref: '#/components/schemas/CosmosVault'
        - $ref: '#/components/schemas/EvmVault'
        - $ref: '#/components/schemas/SolanaVault'
        - $ref: '#/components/schemas/StacksVault'
        - $ref: '#/components/schemas/StarknetVault'
        - $ref: '#/components/schemas/SuiVault'
        - $ref: '#/components/schemas/TonVault'
        - $ref: '#/components/schemas/TronVault'
        - $ref: '#/components/schemas/UtxoVault'
        - $ref: '#/components/schemas/ExchangeVault'
      discriminator:
        propertyName: type
        mapping:
          aptos: '#/components/schemas/AptosVault'
          black_box: '#/components/schemas/BlackBoxVault'
          cosmos: '#/components/schemas/CosmosVault'
          evm: '#/components/schemas/EvmVault'
          exchange: '#/components/schemas/ExchangeVault'
          solana: '#/components/schemas/SolanaVault'
          stacks: '#/components/schemas/StacksVault'
          starknet: '#/components/schemas/StarknetVault'
          sui: '#/components/schemas/SuiVault'
          ton: '#/components/schemas/TonVault'
          tron: '#/components/schemas/TronVault'
          utxo: '#/components/schemas/UtxoVault'
    CustomFeeRequest:
      properties:
        type:
          type: string
          const: custom
          title: Type
        fee_per_byte:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Fee Per Byte
          description: The fee per byte.
          example: '1000000000000000000'
      type: object
      required:
        - type
        - fee_per_byte
      title: CustomFeeRequest
    CustomGasRequest:
      properties:
        gas_limit:
          title: Gas Limit
          description: >-
            Specifies the maximum number of gas units to be used for mining the
            transaction. If omitted, Fordefi will automatically estimate the
            required gas and apply that value.
          type: string
          pattern: ^0*[1-9]\d*$
          example: '1000000000000000000'
        type:
          type: string
          const: custom
          title: Type
        details:
          oneOf:
            - $ref: '#/components/schemas/LegacyGasRequest'
            - $ref: '#/components/schemas/DynamicGasRequest'
          description: >-
            Using the Custom Gas Request option, you specify `gas_limit`, as
            well as the following gas details: <ul><li>If you choose `legacy`
            (meaning a chain where gas price can be specified exactly), you must
            specify only the `price` of a gas unit. <li>If you choose `dynamic`
            (meaning a chain where gas price can be determined dynamically), you
            must specify two additional values:
            <ul><li>`max_priority_fee_per_gas`, the maximum tip amount for
            mining your transaction <li>`max_fee_per_gas`, the maximum amount
            you are willing to pay for the fee (ultimately, either you'll pay
            this amount, or less, depending on the network base fee). </ul></ul>
            <br> Note that the Legacy gas price setting is allowed on dynamic
            (EIP-1559) networks as well. <br> You can get information on gas
            fees for different chains by examining the response to a call to
            [List
            Chains](https://documentation.fordefi.com/redoc/#operation/list_chains_api_v1_blockchains_get).
            More information is provided in [EVM chains and their fee
            mechanisms](https://docs.fordefi.com/docs/evm-chains#evm-chains-and-their-fee-mechanisms). 
          discriminator:
            propertyName: type
            mapping:
              dynamic: '#/components/schemas/DynamicGasRequest'
              legacy: '#/components/schemas/LegacyGasRequest'
      type: object
      required:
        - type
        - details
      title: CustomGasRequest
    Dapp:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of this DApp.
        name:
          type: string
          title: Name
          description: The name of the DApp.
        url:
          title: Url
          description: The URL of the DApp.
          type: string
          minLength: 1
          format: uri
        logo_url:
          title: Logo Url
          description: The logo URL of the DApp.
          type: string
          minLength: 1
          format: uri
      type: object
      required:
        - id
        - name
      title: Dapp
    DappInfo:
      properties:
        url:
          type: string
          title: Url
          description: The URL of the dapp.
        name:
          type: string
          title: Name
          description: The name of the dapp.
      type: object
      required:
        - url
        - name
      title: DappInfo
    DefinedPreconditionError_AbortTransactionErrorType_:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
        system_error_code:
          title: System Error Code
          description: An additional system error code in Fordefi.
          type: string
        error_type:
          $ref: '#/components/schemas/AbortTransactionErrorType'
      type: object
      required:
        - title
        - detail
      title: DefinedPreconditionError[AbortTransactionErrorType]
    DefinedPreconditionError_ApproveTransactionErrorType_:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
        system_error_code:
          title: System Error Code
          description: An additional system error code in Fordefi.
          type: string
        error_type:
          $ref: '#/components/schemas/ApproveTransactionErrorType'
      type: object
      required:
        - title
        - detail
      title: DefinedPreconditionError[ApproveTransactionErrorType]
    DefinedPreconditionError_CreateEndUserErrorType_:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
        system_error_code:
          title: System Error Code
          description: An additional system error code in Fordefi.
          type: string
        error_type:
          $ref: '#/components/schemas/CreateEndUserErrorType'
      type: object
      required:
        - title
        - detail
      title: DefinedPreconditionError[CreateEndUserErrorType]
    DefinedPreconditionError_CreateTransactionErrorType_:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
        system_error_code:
          title: System Error Code
          description: An additional system error code in Fordefi.
          type: string
        error_type:
          $ref: '#/components/schemas/CreateTransactionErrorType'
      type: object
      required:
        - title
        - detail
      title: DefinedPreconditionError[CreateTransactionErrorType]
    DefinedPreconditionError_CreateVaultAddressErrorType_:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
        system_error_code:
          title: System Error Code
          description: An additional system error code in Fordefi.
          type: string
        error_type:
          $ref: '#/components/schemas/CreateVaultAddressErrorType'
      type: object
      required:
        - title
        - detail
      title: DefinedPreconditionError[CreateVaultAddressErrorType]
    DefinedPreconditionError_CreateVaultErrorType_:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
        system_error_code:
          title: System Error Code
          description: An additional system error code in Fordefi.
          type: string
        error_type:
          $ref: '#/components/schemas/CreateVaultErrorType'
      type: object
      required:
        - title
        - detail
      title: DefinedPreconditionError[CreateVaultErrorType]
    DefinedPreconditionError_IssueEndUserAuthTokenErrorType_:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
        system_error_code:
          title: System Error Code
          description: An additional system error code in Fordefi.
          type: string
        error_type:
          $ref: '#/components/schemas/IssueEndUserAuthTokenErrorType'
      type: object
      required:
        - title
        - detail
      title: DefinedPreconditionError[IssueEndUserAuthTokenErrorType]
    DefinedPreconditionError_PredictTransactionErrorType_:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
        system_error_code:
          title: System Error Code
          description: An additional system error code in Fordefi.
          type: string
        error_type:
          $ref: '#/components/schemas/PredictTransactionErrorType'
      type: object
      required:
        - title
        - detail
      title: DefinedPreconditionError[PredictTransactionErrorType]
    DefinedPreconditionError_ReleaseTransactionErrorType_:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
        system_error_code:
          title: System Error Code
          description: An additional system error code in Fordefi.
          type: string
        error_type:
          $ref: '#/components/schemas/ReleaseTransactionErrorType'
      type: object
      required:
        - title
        - detail
      title: DefinedPreconditionError[ReleaseTransactionErrorType]
    DefinedPreconditionError_TestWebhookErrorType_:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
        system_error_code:
          title: System Error Code
          description: An additional system error code in Fordefi.
          type: string
        error_type:
          $ref: '#/components/schemas/TestWebhookErrorType'
      type: object
      required:
        - title
        - detail
      title: DefinedPreconditionError[TestWebhookErrorType]
    DeviceBackupInfo:
      oneOf:
        - $ref: '#/components/schemas/Cloud'
        - $ref: '#/components/schemas/Mnemonic'
      description: The type of the backup.
      discriminator:
        propertyName: type
        mapping:
          cloud: '#/components/schemas/Cloud'
          mnemonic: '#/components/schemas/Mnemonic'
    DeviceBackupInfoExt:
      properties:
        device_backup_info:
          $ref: '#/components/schemas/DeviceBackupInfo'
          description: The device backup information.
        backup_created_at:
          type: string
          format: date-time
          title: Backup Created At
          description: The time when the backup was created.
        backup_last_verified_at:
          type: string
          format: date-time
          title: Backup Last Verified At
          description: The time when the backup was last verified.
      type: object
      required:
        - device_backup_info
        - backup_created_at
        - backup_last_verified_at
      title: DeviceBackupInfoExt
    DirectMessage:
      properties:
        type:
          type: string
          title: Type
          description: Message type.
        value:
          type: string
          title: Value
          description: Message bytes, encoded in base64 format.
          example: SGVsbG8=
      type: object
      required:
        - type
        - value
      title: DirectMessage
    DirectMessagesList:
      properties:
        format:
          type: string
          const: direct
          title: Format
        messages:
          items:
            $ref: '#/components/schemas/DirectMessage'
          type: array
          title: Messages
          description: List of messages in direct format.
      type: object
      required:
        - format
        - messages
      title: DirectMessagesList
    DirectRequestData:
      properties:
        format:
          type: string
          const: direct
          title: Format
        body:
          type: string
          title: Body
          description: Body bytes, encoded in base64 format.
          example: SGVsbG8=
        auth_info:
          type: string
          title: Auth Info
          description: AuthInfo bytes, encoded in base64 format.
          example: SGVsbG8=
        account_number:
          title: Account Number
          description: Account number of signer.
          type: string
          pattern: ^\d+$
          example: '1000000000000000000'
      type: object
      required:
        - format
        - body
        - auth_info
      title: DirectRequestData
    DirectSignDoc:
      properties:
        format:
          type: string
          const: direct
          title: Format
        body:
          type: string
          title: Body
          description: Body bytes, encoded in base64 format.
          example: SGVsbG8=
        auth_info:
          type: string
          title: Auth Info
          description: Auth info bytes, encoded in base64 format.
          example: SGVsbG8=
        chain:
          $ref: '#/components/schemas/EnrichedCosmosChain'
          description: The chain the transaction is signed on.
        account_number:
          type: string
          pattern: ^\d+$
          title: Account Number
          description: The account number.
          example: '1000000000000000000'
        signed_body:
          type: string
          title: Signed Body
          description: >-
            Actual body bytes that were used when signing the transaction,
            encoded in base64 format.
          example: SGVsbG8=
        signed_auth_info:
          type: string
          title: Signed Auth Info
          description: >-
            Actual auth info that was used when signing the transaction, encoded
            in base64 format.
          example: SGVsbG8=
      type: object
      required:
        - format
        - body
        - auth_info
        - chain
        - account_number
        - signed_body
        - signed_auth_info
      title: DirectSignDoc
    DynamicGas:
      properties:
        max_priority_fee_per_gas:
          type: string
          pattern: ^\d+$
          title: Max Priority Fee Per Gas
          description: The maximum tip amount for mining the transaction.
          example: '1000000000000000000'
        max_fee_per_gas:
          type: string
          pattern: ^\d+$
          title: Max Fee Per Gas
          description: The maximum amount paid for the fee.
          example: '1000000000000000000'
        priority:
          $ref: '#/components/schemas/GasPriorityLevel'
          description: The gas priority.
        limit:
          type: string
          pattern: ^\d+$
          title: Limit
          description: The gas limit.
          example: '1000000000000000000'
        type:
          type: string
          const: dynamic
          title: Type
          description: The type of gas data.
      type: object
      required:
        - max_priority_fee_per_gas
        - max_fee_per_gas
        - priority
        - limit
        - type
      title: DynamicGas
    DynamicGasFields:
      properties:
        max_priority_fee_per_gas:
          type: string
          pattern: ^\d+$
          title: Max Priority Fee Per Gas
          description: The maximum tip amount for mining the transaction.
          example: '1000000000000000000'
        max_fee_per_gas:
          type: string
          pattern: ^\d+$
          title: Max Fee Per Gas
          description: The maximum amount paid for the fee.
          example: '1000000000000000000'
      type: object
      required:
        - max_priority_fee_per_gas
        - max_fee_per_gas
      title: DynamicGasFields
    DynamicGasRequest:
      properties:
        type:
          type: string
          const: dynamic
          title: Type
          description: The type of gas data.
        max_priority_fee_per_gas:
          type: string
          pattern: ^\d+$
          title: Max Priority Fee Per Gas
          description: Max priority fee per gas.
          example: '1000000000000000000'
        max_fee_per_gas:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Max Fee Per Gas
          description: Max fee per gas.
          example: '1000000000000000000'
      type: object
      required:
        - type
        - max_priority_fee_per_gas
        - max_fee_per_gas
      title: DynamicGasRequest
    EVMAddressBookContact:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        name:
          type: string
          title: Name
          description: The name of the contact.
        modified_by:
          $ref: '#/components/schemas/UserRef'
          description: Address last modifier.
        state:
          $ref: '#/components/schemas/AddressBookContactState'
          description: The state of the contact.
        groups:
          items:
            $ref: '#/components/schemas/GroupRef'
          type: array
          title: Groups
          description: List of contact's groups.
        pending_changes:
          description: Pending changes for the contact.
          $ref: '#/components/schemas/AddressBookContactChanges'
        asset_infos:
          items:
            $ref: '#/components/schemas/AssetInfo'
          type: array
          title: Asset Infos
          description: >-
            A list of asset infos for the contact. Can be used to enforce
            trading of specific assets intransfers to this address
        chain_type:
          type: string
          const: evm
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 42
          minLength: 42
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: TThe address of the contact.
          example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        chains:
          items:
            $ref: '#/components/schemas/EnrichedEvmChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - modified_by
        - state
        - groups
        - asset_infos
        - chain_type
        - address
        - chains
      title: EVMAddressBookContact
    EVMAddressBookContactAddressRef:
      properties:
        chain_type:
          type: string
          const: evm
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 42
          minLength: 42
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address of the contact.
          example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        chains:
          items:
            $ref: '#/components/schemas/EvmChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
      type: object
      required:
        - chain_type
        - address
        - chains
      title: EVMAddressBookContactAddressRef
    EcdsaSecp256k1BlackBoxVault:
      properties:
        type:
          type: string
          const: ecdsa_secp256k1
          title: Type
          description: ECDSA over the secp256k1 curve signing scheme.
      type: object
      required:
        - type
      title: EcdsaSecp256k1BlackBoxVault
    EcdsaSignature:
      properties:
        r:
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
          title: R
          description: >-
            The x-coordinate of the point on the curve, represented in hex
            format.
        s:
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
          title: S
          description: >-
            The scalar, known as the "signature proof", represented in hex
            format.
        v:
          type: integer
          title: V
          description: The recovery id, only relevant for Ethereum signtures.
      type: object
      required:
        - r
        - s
        - v
      title: EcdsaSignature
    EcdsaStarkBlackBoxVault:
      properties:
        type:
          type: string
          const: ecdsa_stark
          title: Type
          description: ECDSA over the Stark curve signing scheme.
        stark_key:
          type: string
          maxLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Stark Key
          description: The stark public key, represented in hex format.
          example: '0x19c78df8f4ff31e78de58575487ce1eaf19922ad9b8a714e61a441c12e0c8b2'
      type: object
      required:
        - type
        - public_key
        - stark_key
      title: EcdsaStarkBlackBoxVault
    EddsaED25519BlackBoxVault:
      properties:
        type:
          type: string
          const: eddsa_ed25519
          title: Type
          description: Ed25519 signing scheme.
      type: object
      required:
        - type
      title: EddsaED25519BlackBoxVault
    EditAptosContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: aptos
          title: Type
          description: The type of the chain.
        chains:
          items:
            $ref: '#/components/schemas/AptosChainUniqueId'
          type: array
          title: Chains
          description: The Aptos chain's unique ID.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/AptosAssetIdentifierRequest'
          type: array
      type: object
      required:
        - name
        - type
        - chains
      title: EditAptosContactRequest
    EditContactRequest:
      oneOf:
        - $ref: '#/components/schemas/EditAptosContactRequest'
        - $ref: '#/components/schemas/EditCosmosContactRequest'
        - $ref: '#/components/schemas/EditEvmContactRequest'
        - $ref: '#/components/schemas/EditSolanaContactRequest'
        - $ref: '#/components/schemas/EditStacksContactRequest'
        - $ref: '#/components/schemas/EditStarknetContactRequest'
        - $ref: '#/components/schemas/EditSuiContactRequest'
        - $ref: '#/components/schemas/EditTonContactRequest'
        - $ref: '#/components/schemas/EditTronContactRequest'
        - $ref: '#/components/schemas/EditUtxoContactRequest'
      discriminator:
        propertyName: type
        mapping:
          aptos: '#/components/schemas/EditAptosContactRequest'
          cosmos: '#/components/schemas/EditCosmosContactRequest'
          evm: '#/components/schemas/EditEvmContactRequest'
          solana: '#/components/schemas/EditSolanaContactRequest'
          stacks: '#/components/schemas/EditStacksContactRequest'
          starknet: '#/components/schemas/EditStarknetContactRequest'
          sui: '#/components/schemas/EditSuiContactRequest'
          ton: '#/components/schemas/EditTonContactRequest'
          tron: '#/components/schemas/EditTronContactRequest'
          utxo: '#/components/schemas/EditUtxoContactRequest'
    EditCosmosContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: cosmos
          title: Type
          description: The type of the chain.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/CosmosAssetIdentifierRequest'
          type: array
        memo:
          title: Memo
          description: >-
            Memo is an additional address feature used for identifying a
            recipient.
          type: string
      type: object
      required:
        - name
        - type
      title: EditCosmosContactRequest
    EditEvmContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: evm
          title: Type
        chains:
          items:
            type: string
            minLength: 1
            title: EvmChainUniqueId
            description: >-
              The unique EVM chain ID. </br>Can be either one of those supported
              by the default chains below or a custom numeric chain ID
              `evm_<numeric_chain_id>` if one was added to your organization.
              <ul><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_137"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43114"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_123420000987"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li><li>`"evm_clink_testnet"`</li></ul>
          type: array
          title: Chains
          description: The EVM chain's name or ID.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/EvmAssetIdentifierRequest'
          type: array
      type: object
      required:
        - name
        - type
        - chains
      title: EditEvmContactRequest
    EditSolanaContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: solana
          title: Type
          description: The type of the chain.
        chains:
          items:
            $ref: '#/components/schemas/SolanaChainUniqueId'
          type: array
          title: Chains
          description: The Solana chain's unique ID.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/SolanaAssetIdentifierRequest'
          type: array
      type: object
      required:
        - name
        - type
        - chains
      title: EditSolanaContactRequest
    EditStacksContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: stacks
          title: Type
          description: The type of the chain.
        chains:
          items:
            $ref: '#/components/schemas/StacksChainUniqueId'
          type: array
          title: Chains
          description: The Stacks chain's unique ID.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/StacksAssetIdentifierRequest'
          type: array
        memo:
          title: Memo
          description: >-
            Memo is an additional address feature used for identifying a
            recipient.
          type: string
      type: object
      required:
        - name
        - type
        - chains
      title: EditStacksContactRequest
    EditStarknetContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: starknet
          title: Type
          description: The type of the chain.
        chains:
          items:
            $ref: '#/components/schemas/StarknetChainUniqueId'
          type: array
          title: Chains
          description: The Starknet chain's unique ID.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/StarknetAssetIdentifierRequest'
          type: array
      type: object
      required:
        - name
        - type
        - chains
      title: EditStarknetContactRequest
    EditSuiContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: sui
          title: Type
          description: The type of the chain.
        chains:
          items:
            $ref: '#/components/schemas/SuiChainUniqueId'
          type: array
          title: Chains
          description: The Sui chain's unique ID.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/SuiAssetIdentifierRequest'
          type: array
      type: object
      required:
        - name
        - type
        - chains
      title: EditSuiContactRequest
    EditTonContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: ton
          title: Type
          description: The type of the chain.
        chains:
          items:
            $ref: '#/components/schemas/TonChainUniqueId'
          type: array
          title: Chains
          description: The TON chain's unique ID.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/TonAssetIdentifierRequest'
          type: array
        comment:
          title: Comment
          description: >-
            Comment is an additional address feature used for identifying a
            recipient.
          type: string
      type: object
      required:
        - name
        - type
        - chains
      title: EditTonContactRequest
    EditTronContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: tron
          title: Type
          description: The type of the chain.
        chains:
          items:
            $ref: '#/components/schemas/TronChainUniqueId'
          type: array
          title: Chains
          description: The TRON chain's unique ID.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/TronAssetIdentifierRequest'
          type: array
        memo:
          title: Memo
          description: >-
            Memo is an additional address feature used for identifying a
            recipient.
          type: string
      type: object
      required:
        - name
        - type
        - chains
      title: EditTronContactRequest
    EditUtxoContactRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the contact.
        type:
          type: string
          const: utxo
          title: Type
          description: The type of the chain.
        assets_identifiers:
          title: Assets Identifiers
          description: The assets identifiers of the contact.
          items:
            $ref: '#/components/schemas/UtxoAssetIdentifierRequest'
          type: array
      type: object
      required:
        - name
        - type
      title: EditUtxoContactRequest
    EncryptedDeviceSharesBackup:
      properties:
        id:
          title: Id
          description: The ID of the backup. Not provided for organization keysets.
          type: string
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The time the backup was created.
        ecdsa:
          title: Ecdsa
          description: Device ECDSA encrypted share
          type: string
          example: SGVsbG8=
        eddsa:
          title: Eddsa
          description: Device EdDSA encrypted share
          type: string
          example: SGVsbG8=
        ecdsa_stark:
          title: Ecdsa Stark
          description: Device ECDSA stark encrypted share
          type: string
          example: SGVsbG8=
        schnorr_secp256k1:
          title: Schnorr Secp256K1
          description: Device Schnorr secp256k1 encrypted share
          type: string
          example: SGVsbG8=
        auth_key:
          title: Auth Key
          description: An encrypted backup of the user's auth-key.
          type: string
          example: SGVsbG8=
      type: object
      required:
        - created_at
      title: EncryptedDeviceSharesBackup
    EndUser:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        external_id:
          type: string
          title: External Id
          description: The ID that you assigned to the end user.
          example: user|1234
        last_login_at:
          type: string
          format: date-time
          title: Last Login At
          description: The timestamp when the end user last logged into the mobile SDK.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - external_id
        - last_login_at
      title: EndUser
      description: Represents an end user in the Fordefi platform.
    EndUserRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the user in the Fordefi platform.
        user_type:
          type: string
          const: end_user
          title: User Type
          description: The type of the user.
        external_id:
          type: string
          title: External Id
          description: External id of the user.
          example: user|1234
        state:
          type: string
          enum:
            - active
            - deleted
          title: State
          description: The state of the user.
      type: object
      required:
        - id
        - user_type
        - external_id
        - state
      title: EndUserRef
    EndUserSortableFields:
      type: string
      enum:
        - created_asc
        - created_desc
        - end_user_last_login_asc
        - end_user_last_login_desc
      title: EndUserSortableFields
    EnrichedAddress:
      oneOf:
        - $ref: '#/components/schemas/EnrichedAptosAddress'
        - $ref: '#/components/schemas/EnrichedCosmosBechAddress'
        - $ref: '#/components/schemas/EnrichedEvmAddress'
        - $ref: '#/components/schemas/EnrichedExchangeAddress'
        - $ref: '#/components/schemas/EnrichedSolanaAddress'
        - $ref: '#/components/schemas/EnrichedStacksAddress'
        - $ref: '#/components/schemas/EnrichedStarknetAddress'
        - $ref: '#/components/schemas/EnrichedSuiAddress'
        - $ref: '#/components/schemas/EnrichedTonAddress'
        - $ref: '#/components/schemas/EnrichedTronAddress'
        - $ref: '#/components/schemas/EnrichedUtxoAddress'
      discriminator:
        propertyName: type
        mapping:
          aptos: '#/components/schemas/EnrichedAptosAddress'
          cosmos: '#/components/schemas/EnrichedCosmosBechAddress'
          evm: '#/components/schemas/EnrichedEvmAddress'
          exchange: '#/components/schemas/EnrichedExchangeAddress'
          solana: '#/components/schemas/EnrichedSolanaAddress'
          stacks: '#/components/schemas/EnrichedStacksAddress'
          starknet: '#/components/schemas/EnrichedStarknetAddress'
          sui: '#/components/schemas/EnrichedSuiAddress'
          ton: '#/components/schemas/EnrichedTonAddress'
          tron: '#/components/schemas/EnrichedTronAddress'
          utxo: '#/components/schemas/EnrichedUtxoAddress'
    EnrichedAptosAddress:
      properties:
        vault:
          description: The vault corresponding to this address.
          $ref: '#/components/schemas/VaultRef'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of a blockchain explorer that provides real-time information
            about the address.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        contact:
          description: The contact details of this address.
          $ref: '#/components/schemas/ContactRef'
        type:
          type: string
          const: aptos
          title: Type
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The Aptos address represented in hex format.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
      type: object
      required:
        - type
        - address
      title: EnrichedAptosAddress
    EnrichedAptosChain:
      properties:
        chain_type:
          type: string
          const: aptos
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/AptosChainUniqueId'
          description: The type of the Aptos-based chain.
        name:
          type: string
          minLength: 1
          title: Name
          description: The full blockchain name.
        native_currency_symbol:
          type: string
          minLength: 1
          title: Native Currency Symbol
          description: The native currency symbol.
          example: ETH
        native_currency_name:
          type: string
          minLength: 1
          title: Native Currency Name
          description: The native currency name.
          example: Ether
        blockchain_explorer:
          $ref: '#/components/schemas/BlockchainExplorer'
        logo_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Logo Url
          description: The logo URL of the chain.
        is_testnet:
          type: boolean
          title: Is Testnet
          description: Whether the chain is on a testnet.
        is_enabled:
          type: boolean
          title: Is Enabled
          description: Whether the chain is enabled.
      type: object
      required:
        - chain_type
        - unique_id
        - name
        - native_currency_symbol
        - native_currency_name
        - logo_url
        - is_testnet
        - is_enabled
      title: EnrichedAptosChain
    EnrichedAssetIdentifier:
      oneOf:
        - $ref: '#/components/schemas/EnrichedCosmosAssetIdentifier'
        - $ref: '#/components/schemas/EnrichedEvmAssetIdentifier'
        - $ref: '#/components/schemas/EnrichedSolanaAssetIdentifier'
        - $ref: '#/components/schemas/EnrichedSuiAssetIdentifier'
        - $ref: '#/components/schemas/EnrichedUtxoAssetIdentifier'
      discriminator:
        propertyName: type
        mapping:
          cosmos: '#/components/schemas/EnrichedCosmosAssetIdentifier'
          evm: '#/components/schemas/EnrichedEvmAssetIdentifier'
          solana: '#/components/schemas/EnrichedSolanaAssetIdentifier'
          sui: '#/components/schemas/EnrichedSuiAssetIdentifier'
          utxo: '#/components/schemas/EnrichedUtxoAssetIdentifier'
    EnrichedChain:
      oneOf:
        - $ref: '#/components/schemas/EnrichedAptosChain'
        - $ref: '#/components/schemas/EnrichedCosmosChain'
        - $ref: '#/components/schemas/EnrichedEvmChain'
        - $ref: '#/components/schemas/EnrichedExchangeChain'
        - $ref: '#/components/schemas/EnrichedSolanaChain'
        - $ref: '#/components/schemas/EnrichedStacksChain'
        - $ref: '#/components/schemas/EnrichedStarknetChain'
        - $ref: '#/components/schemas/EnrichedSuiChain'
        - $ref: '#/components/schemas/EnrichedTonChain'
        - $ref: '#/components/schemas/EnrichedTronChain'
        - $ref: '#/components/schemas/EnrichedUtxoChain'
      description: A blockchain with metadata.
      discriminator:
        propertyName: chain_type
        mapping:
          aptos: '#/components/schemas/EnrichedAptosChain'
          cosmos: '#/components/schemas/EnrichedCosmosChain'
          evm: '#/components/schemas/EnrichedEvmChain'
          exchange: '#/components/schemas/EnrichedExchangeChain'
          solana: '#/components/schemas/EnrichedSolanaChain'
          stacks: '#/components/schemas/EnrichedStacksChain'
          starknet: '#/components/schemas/EnrichedStarknetChain'
          sui: '#/components/schemas/EnrichedSuiChain'
          ton: '#/components/schemas/EnrichedTonChain'
          tron: '#/components/schemas/EnrichedTronChain'
          utxo: '#/components/schemas/EnrichedUtxoChain'
    EnrichedCosmosAssetIdentifier:
      properties:
        type:
          type: string
          const: cosmos
          title: Type
          description: Asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/EnrichedCosmosNativeAssetIdentifier'
            - $ref: '#/components/schemas/EnrichedCosmosTokenAssetIdentifier'
          discriminator:
            propertyName: type
            mapping:
              native: '#/components/schemas/EnrichedCosmosNativeAssetIdentifier'
              token: '#/components/schemas/EnrichedCosmosTokenAssetIdentifier'
      type: object
      required:
        - type
        - details
      title: EnrichedCosmosAssetIdentifier
    EnrichedCosmosBechAddress:
      properties:
        vault:
          description: The vault corresponding to this address.
          $ref: '#/components/schemas/VaultRef'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of a blockchain explorer that provides real-time information
            about the address.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        contact:
          description: The contact details of this address.
          $ref: '#/components/schemas/ContactRef'
        type:
          type: string
          const: cosmos
          title: Type
        address:
          $ref: '#/components/schemas/CosmosBechAddress'
          description: The Bech32 address.
      type: object
      required:
        - type
        - address
      title: EnrichedCosmosBechAddress
    EnrichedCosmosChain:
      properties:
        chain_type:
          type: string
          const: cosmos
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/CosmosChainUniqueId'
          description: The Cosmos chain unique id.
        name:
          type: string
          minLength: 1
          title: Name
          description: The full blockchain name.
        native_currency_symbol:
          type: string
          minLength: 1
          title: Native Currency Symbol
          description: The native currency symbol.
          example: ETH
        native_currency_name:
          type: string
          minLength: 1
          title: Native Currency Name
          description: The native currency name.
          example: Ether
        blockchain_explorer:
          $ref: '#/components/schemas/BlockchainExplorer'
        logo_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Logo Url
          description: The logo URL of the chain.
        is_testnet:
          type: boolean
          title: Is Testnet
          description: Whether the chain is on a testnet.
        is_enabled:
          type: boolean
          title: Is Enabled
          description: Whether the chain is enabled.
        base_denom:
          type: string
          title: Base Denom
          description: The base denom of the chain.
        bech32_prefix:
          $ref: '#/components/schemas/CosmosBech32Prefix'
          description: The bech32 prefix for addresses on the chain.
      type: object
      required:
        - chain_type
        - unique_id
        - name
        - native_currency_symbol
        - native_currency_name
        - logo_url
        - is_testnet
        - is_enabled
        - base_denom
        - bech32_prefix
      title: EnrichedCosmosChain
    EnrichedCosmosNativeAssetIdentifier:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedCosmosChain'
          description: The details of the chain of the asset.
        type:
          type: string
          const: native
          title: Type
          description: Cosmos native asset type.
        coin:
          $ref: '#/components/schemas/CosmosNativeCoin'
          description: The details of the coin.
      type: object
      required:
        - chain
        - type
        - coin
      title: EnrichedCosmosNativeAssetIdentifier
    EnrichedCosmosTokenAssetIdentifier:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedCosmosChain'
          description: The details of the chain of the asset.
        type:
          type: string
          const: token
          title: Type
          description: Cosmos token asset type.
        coin:
          $ref: '#/components/schemas/CosmosToken'
          description: The details of the coin.
      type: object
      required:
        - chain
        - type
        - coin
      title: EnrichedCosmosTokenAssetIdentifier
    EnrichedEvmAddress:
      properties:
        vault:
          description: The vault corresponding to this address.
          $ref: '#/components/schemas/VaultRef'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of a blockchain explorer that provides real-time information
            about the address.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        contact:
          description: The contact details of this address.
          $ref: '#/components/schemas/ContactRef'
        type:
          type: string
          const: evm
          title: Type
        address:
          type: string
          maxLength: 42
          minLength: 42
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The EVM address.
          example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        contract:
          description: The contract details corresponding to this address.
          $ref: '#/components/schemas/EvmContractMetadata'
      type: object
      required:
        - type
        - address
      title: EnrichedEvmAddress
    EnrichedEvmAssetIdentifier:
      properties:
        type:
          type: string
          const: evm
          title: Type
          description: Asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/EnrichedEvmNativeAssetIdentifier'
            - $ref: '#/components/schemas/EnrichedEvmErc20AssetIdentifier'
            - $ref: '#/components/schemas/EnrichedEvmErc721AssetIdentifier'
            - $ref: '#/components/schemas/EnrichedEvmErc1155AssetIdentifier'
            - $ref: '#/components/schemas/EnrichedEvmHyperLiquidAssetIdentifier'
          discriminator:
            propertyName: type
            mapping:
              erc1155: '#/components/schemas/EnrichedEvmErc1155AssetIdentifier'
              erc20: '#/components/schemas/EnrichedEvmErc20AssetIdentifier'
              erc721: '#/components/schemas/EnrichedEvmErc721AssetIdentifier'
              hyperliquid: '#/components/schemas/EnrichedEvmHyperLiquidAssetIdentifier'
              native: '#/components/schemas/EnrichedEvmNativeAssetIdentifier'
      type: object
      required:
        - type
        - details
      title: EnrichedEvmAssetIdentifier
    EnrichedEvmChain:
      properties:
        chain_type:
          type: string
          const: evm
          title: Chain Type
          description: The type of the chain.
        named_chain_id:
          title: EvmChainName
          description: >-
            The EVM chain name can be either one of those supported by the
            default chains below or a custom chain name if one was added to your
            organization.
            <ul><li>`arbitrum_mainnet`</li><li>`arbitrum_sepolia`</li><li>`avalanche_chain`</li><li>`base_mainnet`</li><li>`berachain_mainnet`</li><li>`blast_mainnet`</li><li>`bsc_mainnet`</li><li>`canto_mainnet`</li><li>`clink_mainnet`</li><li>`clink_testnet`</li><li>`conflux_mainnet`</li><li>`dymension_mainnet`</li><li>`ethereum_goerli`</li><li>`ethereum_holesky`</li><li>`ethereum_mainnet`</li><li>`ethereum_sepolia`</li><li>`fantom_mainnet`</li><li>`flare_mainnet`</li><li>`flare_testnet`</li><li>`gnosis_mainnet`</li><li>`kava_mainnet`</li><li>`linea_mainnet`</li><li>`optimism_mainnet`</li><li>`manta_pacific_mainnet`</li><li>`mantle_mainnet`</li><li>`merlin_mainnet`</li><li>`polygon_mainnet`</li><li>`polygon_mumbai`</li><li>`polygon_zkevm_mainnet`</li><li>`reya_mainnet`</li><li>`scroll_mainnet`</li><li>`sei_mainnet`</li><li>`sonic_mainnet`</li><li>`xai_mainnet`</li><li>`zeta_mainnet`</li><li>`zklink_nova_mainnet`</li><li>`zksync_era_mainnet`</li></ul>
          type: string
          minLength: 1
        chain_id:
          type: integer
          minimum: 1
          title: EvmChainId
          description: >-
            The EVM chain ID can be either one of those supported by the default
            chains below or a custom chain ID if one was added to your
            organization.
            <ul><li>1=`ethereum_mainnet`</li><li>5=`ethereum_goerli`</li><li>10=`optimism_mainnet`</li><li>14=`flare_mainnet`</li><li>16=`flare_testnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>137=`polygon_mainnet`</li><li>146=`sonic_mainnet`</li><li>169=`manta_pacific_mainnet`</li><li>250=`fantom_mainnet`</li><li>324=`zksync_era_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1729=`reya_mainnet`</li><li>2222=`kava_mainnet`</li><li>4200=`merlin_mainnet`</li><li>5000=`mantle_mainnet`</li><li>7000=`zeta_mainnet`</li><li>7700=`canto_mainnet`</li><li>8453=`base_mainnet`</li><li>8818=`clink_mainnet`</li><li>17000=`ethereum_holesky`</li><li>80001=`polygon_mumbai`</li><li>80094=`berachain_mainnet`</li><li>42161=`arbitrum_mainnet`</li><li>43114=`avalanche_chain`</li><li>59144=`linea_mainnet`</li><li>81457=`blast_mainnet`</li><li>421614=`arbitrum_sepolia`</li><li>534352=`scroll_mainnet`</li><li>660279=`xai_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</li><li>123420000987=`clink_testnet`</li></ul>
        unique_id:
          type: string
          minLength: 1
          title: EvmChainUniqueId
          description: >-
            The unique EVM chain ID. </br>Can be either one of those supported
            by the default chains below or a custom numeric chain ID
            `evm_<numeric_chain_id>` if one was added to your organization.
            <ul><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_137"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43114"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_123420000987"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li><li>`"evm_clink_testnet"`</li></ul>
        name:
          type: string
          minLength: 1
          title: Name
          description: The full blockchain name.
        native_currency_symbol:
          type: string
          minLength: 1
          title: Native Currency Symbol
          description: The native currency symbol.
          example: ETH
        native_currency_name:
          type: string
          minLength: 1
          title: Native Currency Name
          description: The native currency name.
          example: Ether
        blockchain_explorer:
          $ref: '#/components/schemas/BlockchainExplorer'
        logo_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Logo Url
          description: The logo URL of the chain.
        is_testnet:
          type: boolean
          title: Is Testnet
          description: Whether the chain is on a testnet.
        is_enabled:
          type: boolean
          title: Is Enabled
          description: Whether the chain is enabled.
        gas_type:
          $ref: '#/components/schemas/GasType'
          description: The type of gas used by the chain.
        supports_secure_node:
          type: boolean
          title: Supports Secure Node
          description: '`True` if the chain supports secure nodes, `False` otherwise.'
          default: false
        rpc_url:
          title: Rpc Url
          description: The URL of the chain's RPC. Exists only for custom chains.
          type: string
        source:
          $ref: '#/components/schemas/ChainSource'
          description: >-
            The source of the chain. Can be:<ul><li>`default`: Chains with
            built-in support on Fordefi's platform.<li>`custom`: User-added
            chains with support on Fordefi's platform.</ul>
      type: object
      required:
        - chain_type
        - chain_id
        - unique_id
        - name
        - native_currency_symbol
        - native_currency_name
        - logo_url
        - is_testnet
        - is_enabled
        - gas_type
        - source
      title: EnrichedEvmChain
    EnrichedEvmErc1155AssetIdentifier:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: erc1155
          title: Type
          description: EVM asset identifier type.
        token:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The ERC-1155 token contract.
        token_id:
          type: string
          pattern: ^\d+$
          title: Token Id
          description: The token id of the ERC-1155 token.
          example: '1000000000000000000'
      type: object
      required:
        - chain
        - type
        - token
        - token_id
      title: EnrichedEvmErc1155AssetIdentifier
    EnrichedEvmErc20AssetIdentifier:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: erc20
          title: Type
          description: EVM asset identifier type.
        token:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The ERC-20 token contract.
      type: object
      required:
        - chain
        - type
        - token
      title: EnrichedEvmErc20AssetIdentifier
    EnrichedEvmErc721AssetIdentifier:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: erc721
          title: Type
          description: EVM asset identifier type.
        token:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The ERC-721 token contract.
        token_id:
          type: string
          pattern: ^\d+$
          title: Token Id
          description: The token id of the ERC-721 token.
          example: '1000000000000000000'
      type: object
      required:
        - chain
        - type
        - token
        - token_id
      title: EnrichedEvmErc721AssetIdentifier
    EnrichedEvmHyperLiquidAssetIdentifier:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: hyperliquid
          title: Type
          description: EVM asset identifier type.
        token_id:
          type: string
          title: Token Id
          description: The token id of the asset on Hyperliquid.
        index:
          type: integer
          title: Index
          description: The index of the asset on Hyperliquid.
      type: object
      required:
        - chain
        - type
        - token_id
        - index
      title: EnrichedEvmHyperLiquidAssetIdentifier
    EnrichedEvmNativeAssetIdentifier:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: native
          title: Type
          description: EVM asset identifier type.
      type: object
      required:
        - chain
        - type
      title: EnrichedEvmNativeAssetIdentifier
    EnrichedExchangeAddress:
      properties:
        vault:
          description: The vault corresponding to this address.
          $ref: '#/components/schemas/VaultRef'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of a blockchain explorer that provides real-time information
            about the address.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        contact:
          description: The contact details of this address.
          $ref: '#/components/schemas/ContactRef'
        type:
          type: string
          const: exchange
          title: Type
        exchange_type:
          $ref: '#/components/schemas/ExchangeType'
      type: object
      required:
        - type
        - exchange_type
      title: EnrichedExchangeAddress
    EnrichedExchangeChain:
      properties:
        chain_type:
          type: string
          const: exchange
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/ExchangeChainUniqueId'
          description: The type of the Exchange-based chain.
        name:
          type: string
          minLength: 1
          title: Name
          description: The full blockchain name.
        native_currency_symbol:
          type: string
          minLength: 1
          title: Native Currency Symbol
          description: The native currency symbol.
          example: ETH
        native_currency_name:
          type: string
          minLength: 1
          title: Native Currency Name
          description: The native currency name.
          example: Ether
        blockchain_explorer:
          $ref: '#/components/schemas/BlockchainExplorer'
        logo_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Logo Url
          description: The logo URL of the chain.
        is_testnet:
          type: boolean
          title: Is Testnet
          description: Whether the chain is on a testnet.
        is_enabled:
          type: boolean
          title: Is Enabled
          description: Whether the chain is enabled.
      type: object
      required:
        - chain_type
        - unique_id
        - name
        - native_currency_symbol
        - native_currency_name
        - logo_url
        - is_testnet
        - is_enabled
      title: EnrichedExchangeChain
    EnrichedSolanaAddress:
      properties:
        vault:
          description: The vault corresponding to this address.
          $ref: '#/components/schemas/VaultRef'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of a blockchain explorer that provides real-time information
            about the address.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        contact:
          description: The contact details of this address.
          $ref: '#/components/schemas/ContactRef'
        type:
          type: string
          const: solana
          title: Type
        address:
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          title: Address
          description: The Solana address represented in Base58 format.
          example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
        contract:
          description: The details of the contract corresponding to this address.
          $ref: '#/components/schemas/SolanaContractMetadata'
      type: object
      required:
        - type
        - address
      title: EnrichedSolanaAddress
    EnrichedSolanaAssetIdentifier:
      properties:
        type:
          type: string
          const: solana
          title: Type
          description: Asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/EnrichedSolanaNativeAssetIdentifier'
            - $ref: '#/components/schemas/EnrichedSolanaSplTokenAssetIdentifier'
          discriminator:
            propertyName: type
            mapping:
              native: '#/components/schemas/EnrichedSolanaNativeAssetIdentifier'
              spl_token: '#/components/schemas/EnrichedSolanaSplTokenAssetIdentifier'
      type: object
      required:
        - type
        - details
      title: EnrichedSolanaAssetIdentifier
    EnrichedSolanaChain:
      properties:
        chain_type:
          type: string
          const: solana
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/SolanaChainUniqueId'
          description: The type of the Solana-based chain.
        name:
          type: string
          minLength: 1
          title: Name
          description: The full blockchain name.
        native_currency_symbol:
          type: string
          minLength: 1
          title: Native Currency Symbol
          description: The native currency symbol.
          example: ETH
        native_currency_name:
          type: string
          minLength: 1
          title: Native Currency Name
          description: The native currency name.
          example: Ether
        blockchain_explorer:
          $ref: '#/components/schemas/BlockchainExplorer'
        logo_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Logo Url
          description: The logo URL of the chain.
        is_testnet:
          type: boolean
          title: Is Testnet
          description: Whether the chain is on a testnet.
        is_enabled:
          type: boolean
          title: Is Enabled
          description: Whether the chain is enabled.
      type: object
      required:
        - chain_type
        - unique_id
        - name
        - native_currency_symbol
        - native_currency_name
        - logo_url
        - is_testnet
        - is_enabled
      title: EnrichedSolanaChain
    EnrichedSolanaNativeAssetIdentifier:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedSolanaChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: native
          title: Type
          description: Solana asset type.
      type: object
      required:
        - chain
        - type
      title: EnrichedSolanaNativeAssetIdentifier
    EnrichedSolanaSplTokenAssetIdentifier:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedSolanaChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: spl_token
          title: Type
          description: Solana asset type.
        token:
          $ref: '#/components/schemas/EnrichedSolanaAddress'
          description: The SPL token minter address.
      type: object
      required:
        - chain
        - type
        - token
      title: EnrichedSolanaSplTokenAssetIdentifier
    EnrichedStacksAddress:
      properties:
        vault:
          description: The vault corresponding to this address.
          $ref: '#/components/schemas/VaultRef'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of a blockchain explorer that provides real-time information
            about the address.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        contact:
          description: The contact details of this address.
          $ref: '#/components/schemas/ContactRef'
        type:
          type: string
          const: stacks
          title: Type
        address:
          type: string
          maxLength: 171
          minLength: 39
          pattern: ^S[0-9A-Za-z._-]+$
          title: Address
          description: The Stacks address represented in hex format.
          example: SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9
      type: object
      required:
        - type
        - address
      title: EnrichedStacksAddress
    EnrichedStacksChain:
      properties:
        chain_type:
          type: string
          const: stacks
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/StacksChainUniqueId'
          description: The type of the Stacks-based chain.
        name:
          type: string
          minLength: 1
          title: Name
          description: The full blockchain name.
        native_currency_symbol:
          type: string
          minLength: 1
          title: Native Currency Symbol
          description: The native currency symbol.
          example: ETH
        native_currency_name:
          type: string
          minLength: 1
          title: Native Currency Name
          description: The native currency name.
          example: Ether
        blockchain_explorer:
          $ref: '#/components/schemas/BlockchainExplorer'
        logo_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Logo Url
          description: The logo URL of the chain.
        is_testnet:
          type: boolean
          title: Is Testnet
          description: Whether the chain is on a testnet.
        is_enabled:
          type: boolean
          title: Is Enabled
          description: Whether the chain is enabled.
      type: object
      required:
        - chain_type
        - unique_id
        - name
        - native_currency_symbol
        - native_currency_name
        - logo_url
        - is_testnet
        - is_enabled
      title: EnrichedStacksChain
    EnrichedStarknetAddress:
      properties:
        vault:
          description: The vault corresponding to this address.
          $ref: '#/components/schemas/VaultRef'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of a blockchain explorer that provides real-time information
            about the address.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        contact:
          description: The contact details of this address.
          $ref: '#/components/schemas/ContactRef'
        type:
          type: string
          const: starknet
          title: Type
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The Starknet address represented in hex format.
          example: '0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8'
      type: object
      required:
        - type
        - address
      title: EnrichedStarknetAddress
    EnrichedStarknetChain:
      properties:
        chain_type:
          type: string
          const: starknet
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/StarknetChainUniqueId'
          description: The type of the Starknet-based chain.
        name:
          type: string
          minLength: 1
          title: Name
          description: The full blockchain name.
        native_currency_symbol:
          type: string
          minLength: 1
          title: Native Currency Symbol
          description: The native currency symbol.
          example: ETH
        native_currency_name:
          type: string
          minLength: 1
          title: Native Currency Name
          description: The native currency name.
          example: Ether
        blockchain_explorer:
          $ref: '#/components/schemas/BlockchainExplorer'
        logo_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Logo Url
          description: The logo URL of the chain.
        is_testnet:
          type: boolean
          title: Is Testnet
          description: Whether the chain is on a testnet.
        is_enabled:
          type: boolean
          title: Is Enabled
          description: Whether the chain is enabled.
      type: object
      required:
        - chain_type
        - unique_id
        - name
        - native_currency_symbol
        - native_currency_name
        - logo_url
        - is_testnet
        - is_enabled
      title: EnrichedStarknetChain
    EnrichedSuiAddress:
      properties:
        vault:
          description: The vault corresponding to this address.
          $ref: '#/components/schemas/VaultRef'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of a blockchain explorer that provides real-time information
            about the address.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        contact:
          description: The contact details of this address.
          $ref: '#/components/schemas/ContactRef'
        type:
          type: string
          const: sui
          title: Type
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The Sui address represented in hex format.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
      type: object
      required:
        - type
        - address
      title: EnrichedSuiAddress
    EnrichedSuiAssetIdentifier:
      properties:
        type:
          type: string
          const: sui
          title: Type
          description: Asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/EnrichedSuiNativeAssetIdentifier'
            - $ref: '#/components/schemas/EnrichedSuiCoinAssetIdentifier'
          discriminator:
            propertyName: type
            mapping:
              coin: '#/components/schemas/EnrichedSuiCoinAssetIdentifier'
              native: '#/components/schemas/EnrichedSuiNativeAssetIdentifier'
      type: object
      required:
        - type
        - details
      title: EnrichedSuiAssetIdentifier
    EnrichedSuiChain:
      properties:
        chain_type:
          type: string
          const: sui
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/SuiChainUniqueId'
          description: The type of the Sui-based chain.
        name:
          type: string
          minLength: 1
          title: Name
          description: The full blockchain name.
        native_currency_symbol:
          type: string
          minLength: 1
          title: Native Currency Symbol
          description: The native currency symbol.
          example: ETH
        native_currency_name:
          type: string
          minLength: 1
          title: Native Currency Name
          description: The native currency name.
          example: Ether
        blockchain_explorer:
          $ref: '#/components/schemas/BlockchainExplorer'
        logo_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Logo Url
          description: The logo URL of the chain.
        is_testnet:
          type: boolean
          title: Is Testnet
          description: Whether the chain is on a testnet.
        is_enabled:
          type: boolean
          title: Is Enabled
          description: Whether the chain is enabled.
      type: object
      required:
        - chain_type
        - unique_id
        - name
        - native_currency_symbol
        - native_currency_name
        - logo_url
        - is_testnet
        - is_enabled
      title: EnrichedSuiChain
    EnrichedSuiCoin:
      properties:
        type:
          type: string
          const: coin
          title: Type
          description: The type of the coin
        coin_type:
          type: string
          title: Coin Type
          description: The coin type
        name:
          type: string
          title: Name
          description: The coin name
        symbol:
          type: string
          title: Symbol
          description: The coin symbol or ticker
        decimals:
          type: integer
          title: Decimals
          description: The coin decimals
        logo_url:
          title: Logo Url
          description: The coin logo url
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
      type: object
      required:
        - type
        - coin_type
        - name
        - symbol
        - decimals
      title: EnrichedSuiCoin
    EnrichedSuiCoinAssetIdentifier:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedSuiChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: coin
          title: Type
          description: Sui asset type.
        coin:
          $ref: '#/components/schemas/EnrichedSuiCoin'
          description: The coin.
      type: object
      required:
        - chain
        - type
        - coin
      title: EnrichedSuiCoinAssetIdentifier
    EnrichedSuiNativeAssetIdentifier:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedSuiChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: native
          title: Type
          description: Sui asset type.
      type: object
      required:
        - chain
        - type
      title: EnrichedSuiNativeAssetIdentifier
    EnrichedTonAddress:
      properties:
        vault:
          description: The vault corresponding to this address.
          $ref: '#/components/schemas/VaultRef'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of a blockchain explorer that provides real-time information
            about the address.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        contact:
          description: The contact details of this address.
          $ref: '#/components/schemas/ContactRef'
        type:
          type: string
          const: ton
          title: Type
        raw_account:
          type: string
          maxLength: 67
          pattern: ^[-0-9]+:[A-Fa-f0-9]{64}$
          title: Raw Account
          description: The address TON contract in a raw format.
        base64_url_bounceable_account:
          type: string
          maxLength: 48
          minLength: 48
          title: Base64 Url Bounceable Account
          description: The bounceable address of the contract in base64 url format
          example: UQBxs5hnTxjzvzsnDofRfbJeXsylUcxR8OSW7UUv317csHZ1
        base64_url_non_bounceable_account:
          type: string
          maxLength: 48
          minLength: 48
          title: Base64 Url Non Bounceable Account
          description: The non-bounceable address of the contract in base64 url format
          example: UQBxs5hnTxjzvzsnDofRfbJeXsylUcxR8OSW7UUv317csHZ1
        original_account:
          type: string
          title: Original Account
          description: The address TON contract in the originally inserted format.
      type: object
      required:
        - type
        - raw_account
        - base64_url_bounceable_account
        - base64_url_non_bounceable_account
        - original_account
      title: EnrichedTonAddress
    EnrichedTonChain:
      properties:
        chain_type:
          type: string
          const: ton
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/TonChainUniqueId'
          description: The type of the TON-based chain.
        name:
          type: string
          minLength: 1
          title: Name
          description: The full blockchain name.
        native_currency_symbol:
          type: string
          minLength: 1
          title: Native Currency Symbol
          description: The native currency symbol.
          example: ETH
        native_currency_name:
          type: string
          minLength: 1
          title: Native Currency Name
          description: The native currency name.
          example: Ether
        blockchain_explorer:
          $ref: '#/components/schemas/BlockchainExplorer'
        logo_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Logo Url
          description: The logo URL of the chain.
        is_testnet:
          type: boolean
          title: Is Testnet
          description: Whether the chain is on a testnet.
        is_enabled:
          type: boolean
          title: Is Enabled
          description: Whether the chain is enabled.
      type: object
      required:
        - chain_type
        - unique_id
        - name
        - native_currency_symbol
        - native_currency_name
        - logo_url
        - is_testnet
        - is_enabled
      title: EnrichedTonChain
    EnrichedTronAddress:
      properties:
        vault:
          description: The vault corresponding to this address.
          $ref: '#/components/schemas/VaultRef'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of a blockchain explorer that provides real-time information
            about the address.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        contact:
          description: The contact details of this address.
          $ref: '#/components/schemas/ContactRef'
        type:
          type: string
          const: tron
          title: Type
        address:
          type: string
          maxLength: 34
          minLength: 34
          pattern: ^T[a-km-zA-HJ-NP-Z1-9]+$
          title: Address
          description: The TRON address represented in base58 format.
          example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW
      type: object
      required:
        - type
        - address
      title: EnrichedTronAddress
    EnrichedTronChain:
      properties:
        chain_type:
          type: string
          const: tron
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/TronChainUniqueId'
          description: The type of the Tron-based chain.
        name:
          type: string
          minLength: 1
          title: Name
          description: The full blockchain name.
        native_currency_symbol:
          type: string
          minLength: 1
          title: Native Currency Symbol
          description: The native currency symbol.
          example: ETH
        native_currency_name:
          type: string
          minLength: 1
          title: Native Currency Name
          description: The native currency name.
          example: Ether
        blockchain_explorer:
          $ref: '#/components/schemas/BlockchainExplorer'
        logo_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Logo Url
          description: The logo URL of the chain.
        is_testnet:
          type: boolean
          title: Is Testnet
          description: Whether the chain is on a testnet.
        is_enabled:
          type: boolean
          title: Is Enabled
          description: Whether the chain is enabled.
      type: object
      required:
        - chain_type
        - unique_id
        - name
        - native_currency_symbol
        - native_currency_name
        - logo_url
        - is_testnet
        - is_enabled
      title: EnrichedTronChain
    EnrichedUtxoAddress:
      properties:
        vault:
          description: The vault corresponding to this address.
          $ref: '#/components/schemas/VaultRef'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of a blockchain explorer that provides real-time information
            about the address.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        contact:
          description: The contact details of this address.
          $ref: '#/components/schemas/ContactRef'
        type:
          type: string
          const: utxo
          title: Type
        address:
          $ref: '#/components/schemas/UtxoAddress'
          description: The UTXO address.
        vault_address:
          description: The vault address corresponding to this address.
          $ref: '#/components/schemas/VaultAddressRef'
      type: object
      required:
        - type
        - address
      title: EnrichedUtxoAddress
    EnrichedUtxoAssetIdentifier:
      properties:
        type:
          type: string
          const: utxo
          title: Type
          description: Asset identifier type.
        details:
          $ref: '#/components/schemas/EnrichedUtxoNativeAssetIdentifier'
      type: object
      required:
        - type
        - details
      title: EnrichedUtxoAssetIdentifier
    EnrichedUtxoChain:
      properties:
        chain_type:
          type: string
          const: utxo
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/UtxoChainUniqueId'
          description: The UTXO chain unique ID.
        name:
          type: string
          minLength: 1
          title: Name
          description: The full blockchain name.
        native_currency_symbol:
          type: string
          minLength: 1
          title: Native Currency Symbol
          description: The native currency symbol.
          example: ETH
        native_currency_name:
          type: string
          minLength: 1
          title: Native Currency Name
          description: The native currency name.
          example: Ether
        blockchain_explorer:
          $ref: '#/components/schemas/BlockchainExplorer'
        logo_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Logo Url
          description: The logo URL of the chain.
        is_testnet:
          type: boolean
          title: Is Testnet
          description: Whether the chain is on a testnet.
        is_enabled:
          type: boolean
          title: Is Enabled
          description: Whether the chain is enabled.
      type: object
      required:
        - chain_type
        - unique_id
        - name
        - native_currency_symbol
        - native_currency_name
        - logo_url
        - is_testnet
        - is_enabled
      title: EnrichedUtxoChain
    EnrichedUtxoNativeAssetIdentifier:
      properties:
        type:
          type: string
          const: native
          title: Type
          description: UTXO asset type.
        chain:
          $ref: '#/components/schemas/EnrichedUtxoChain'
          description: The details of the chain of the native asset.
      type: object
      required:
        - type
        - chain
      title: EnrichedUtxoNativeAssetIdentifier
    Erc1155:
      properties:
        address:
          $ref: '#/components/schemas/EvmAddress'
          description: The token address
        name:
          type: string
          title: Name
          description: The token name
        symbol:
          type: string
          title: Symbol
          description: The token symbol or ticker
        type:
          type: string
          const: erc1155
          title: Type
          description: The type of the token
      type: object
      required:
        - address
        - name
        - symbol
        - type
      title: Erc1155
    Erc1155AllowanceForAllChange:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        type:
          type: string
          const: erc1155_for_all
          title: Type
        owner:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The owner giving the allowance.
        operator:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The operator receiving the allowance.
        approved:
          type: boolean
          title: Approved
          description: >-
            `True` if the operator is approved to spend the tokens, `False`
            otherwise.
      type: object
      required:
        - priced_asset
        - type
        - owner
        - operator
        - approved
        - token_contract
      title: Erc1155AllowanceForAllChange
    Erc1155Contract:
      properties:
        name:
          title: Name
          description: The name of the contract.
          type: string
        dapp:
          description: The DApp details of the contract.
          $ref: '#/components/schemas/Dapp'
        is_verified:
          type: boolean
          title: Is Verified
          description: '`True` if the contract is verified, `False` otherwise.'
        token:
          $ref: '#/components/schemas/Erc1155'
          description: The token details of the contract.
      type: object
      required:
        - is_verified
        - token
      title: Erc1155Contract
    Erc20:
      properties:
        address:
          $ref: '#/components/schemas/EvmAddress'
          description: The token address
        name:
          type: string
          title: Name
          description: The token name
        symbol:
          type: string
          title: Symbol
          description: The token symbol or ticker
        type:
          type: string
          const: erc20
          title: Type
          description: The type of the token
        decimals:
          type: integer
          title: Decimals
          description: The token decimals
        logo_url:
          title: Logo Url
          description: The token logo url
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
      type: object
      required:
        - address
        - name
        - symbol
        - type
        - decimals
      title: Erc20
      description: An ERC-20 token.
    Erc20AllowanceChange:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        type:
          type: string
          const: erc20
          title: Type
        owner:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The owner giving the allowance.
        spender:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The spender receiving the allowance.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of allowance.
          example: '1000000000000000000'
      type: object
      required:
        - priced_asset
        - type
        - owner
        - spender
        - amount
        - token_contract
      title: Erc20AllowanceChange
    Erc20Contract:
      properties:
        name:
          title: Name
          description: The name of the contract.
          type: string
        dapp:
          description: The DApp details of the contract.
          $ref: '#/components/schemas/Dapp'
        is_verified:
          type: boolean
          title: Is Verified
          description: '`True` if the contract is verified, `False` otherwise.'
        token:
          $ref: '#/components/schemas/Erc20'
          description: The token details of the contract.
      type: object
      required:
        - is_verified
        - token
      title: Erc20Contract
    Erc721:
      properties:
        address:
          $ref: '#/components/schemas/EvmAddress'
          description: The token address
        name:
          type: string
          title: Name
          description: The token name
        symbol:
          type: string
          title: Symbol
          description: The token symbol or ticker
        type:
          type: string
          const: erc721
          title: Type
          description: The type of the token
      type: object
      required:
        - address
        - name
        - symbol
        - type
      title: Erc721
    Erc721AllowanceChange:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        type:
          type: string
          const: erc721
          title: Type
        owner:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The owner giving the allowance.
        operator:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The operator receiving the allowance.
      type: object
      required:
        - priced_asset
        - type
        - owner
        - operator
        - token_id
        - token_contract
      title: Erc721AllowanceChange
    Erc721AllowanceForAllChange:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        type:
          type: string
          const: erc721_for_all
          title: Type
        owner:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The owner giving the allowance.
        operator:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The operator receiving the allowance.
        approved:
          type: boolean
          title: Approved
          description: >-
            `True` if the operator is approved to spend the tokens, `False'
            otherwise.
      type: object
      required:
        - priced_asset
        - type
        - owner
        - operator
        - approved
        - token_contract
      title: Erc721AllowanceForAllChange
    Erc721Contract:
      properties:
        name:
          title: Name
          description: The name of the contract.
          type: string
        dapp:
          description: The DApp details of the contract.
          $ref: '#/components/schemas/Dapp'
        is_verified:
          type: boolean
          title: Is Verified
          description: '`True` if the contract is verified, `False` otherwise.'
        token:
          $ref: '#/components/schemas/Erc721'
          description: The token details of the contract.
      type: object
      required:
        - is_verified
        - token
      title: Erc721Contract
    ErroneousItem:
      properties:
        id:
          type: string
          title: Id
          description: The ID of the item
      type: object
      required:
        - id
      title: ErroneousItem
      description: >-
        A model representing an item that was excluded from the response due to
        an error.
    EvmAddress:
      properties:
        chain:
          $ref: '#/components/schemas/EvmChain'
        hex_repr:
          type: string
          maxLength: 42
          minLength: 42
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Hex Repr
          description: Hexadecimal representation of the address in the chain.
          example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
      type: object
      required:
        - chain
        - hex_repr
      title: EvmAddress
      description: Address represents an EVM blockchain address.
    EvmAddressRequest:
      properties:
        chain:
          type: string
          minLength: 1
          title: EvmChainUniqueId
          description: The chain details this address is of.
        hex_repr:
          type: string
          maxLength: 42
          minLength: 42
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Hex Repr
          description: Hexadecimal representation of the address in the chain.
          example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
      type: object
      required:
        - chain
        - hex_repr
      title: EvmAddressRequest
      description: Address represents a blockchain address.
    EvmAsset:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The asset ID.
        decimals:
          type: integer
          minimum: 0
          title: Decimals
        price:
          description: The price of the asset.
          $ref: '#/components/schemas/Price'
        name:
          type: string
          title: Name
          description: The name of the asset.
        symbol:
          type: string
          title: Symbol
          description: The symbol (ticker) of the asset.
        hidden:
          type: boolean
          title: Hidden
          description: '`True` if this asset was set to be hidden, `False` otherwise.'
        verified:
          type: boolean
          title: Verified
          description: '`True` if this asset is verified by Fordefi, `False` otherwise.'
        asset_identifier:
          $ref: '#/components/schemas/EnrichedAssetIdentifier'
          description: The asset identifier.
        metadata_uri:
          title: Metadata Uri
          description: The URI of the asset metadata.
          type: string
      type: object
      required:
        - id
        - decimals
        - name
        - symbol
        - hidden
        - verified
        - asset_identifier
        - type
        - details
      title: EvmAsset
    EvmAssetIdentifier:
      properties:
        type:
          type: string
          const: evm
          title: Type
          description: Asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/EvmNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/EvmErc20AssetIdentifierRequest'
            - $ref: '#/components/schemas/EvmErc721AssetIdentifierRequest'
            - $ref: '#/components/schemas/EvmErc1155AssetIdentifierRequest'
            - $ref: '#/components/schemas/EvmHyperLiquidAssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              erc1155: '#/components/schemas/EvmErc1155AssetIdentifierRequest'
              erc20: '#/components/schemas/EvmErc20AssetIdentifierRequest'
              erc721: '#/components/schemas/EvmErc721AssetIdentifierRequest'
              hyperliquid: '#/components/schemas/EvmHyperLiquidAssetIdentifierRequest'
              native: '#/components/schemas/EvmNativeAssetIdentifierRequest'
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
      type: object
      required:
        - type
        - details
        - chain
      title: EvmAssetIdentifier
    EvmAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: evm
          title: Type
          description: Asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/EvmNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/EvmErc20AssetIdentifierRequest'
            - $ref: '#/components/schemas/EvmErc721AssetIdentifierRequest'
            - $ref: '#/components/schemas/EvmErc1155AssetIdentifierRequest'
            - $ref: '#/components/schemas/EvmHyperLiquidAssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              erc1155: '#/components/schemas/EvmErc1155AssetIdentifierRequest'
              erc20: '#/components/schemas/EvmErc20AssetIdentifierRequest'
              erc721: '#/components/schemas/EvmErc721AssetIdentifierRequest'
              hyperliquid: '#/components/schemas/EvmHyperLiquidAssetIdentifierRequest'
              native: '#/components/schemas/EvmNativeAssetIdentifierRequest'
      type: object
      required:
        - type
        - details
      title: EvmAssetIdentifierRequest
    EvmBalanceChangeEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        diff:
          type: string
          pattern: ^-?\d+$
          title: Diff
          description: >-
            The amount of that was added to or deducted from the owner's
            balance. If the amount was deducted, the value is negative; if the
            amount was added, the value is positive.
          example: '1000000000000000000'
        type:
          $ref: '#/components/schemas/EvmBalanceChangeEffectType'
        address:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The address affected by the balance change.
      type: object
      required:
        - priced_asset
        - diff
        - type
        - address
        - owner
      title: EvmBalanceChangeEffect
    EvmBalanceChangeEffectType:
      type: string
      enum:
        - native
        - erc20
        - erc721
        - erc1155
      title: EvmBalanceChangeEffectType
    EvmBlockData:
      properties:
        number:
          type: integer
          title: Number
          description: The block number.
        hash:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Hash
          description: The block hash.
          example: '0x780f21260f89d610f24eed21b34d29229611a37e0003e83dd0da91981d7131ae'
        mined_at:
          type: string
          format: date-time
          title: Mined At
          description: The date and time when this block was mined.
      type: object
      required:
        - number
        - hash
        - mined_at
      title: EvmBlockData
    EvmBridgeEffect:
      properties:
        bridge_name:
          type: string
          title: Bridge Name
          description: The name of the bridge.
        source:
          description: The source details of the bridge transaction.
          oneOf:
            - $ref: '#/components/schemas/EvmBridgeEffectSourceNative'
            - $ref: '#/components/schemas/EvmBridgeEffectSourceErc20'
          discriminator:
            propertyName: type
            mapping:
              erc20: '#/components/schemas/EvmBridgeEffectSourceErc20'
              native: '#/components/schemas/EvmBridgeEffectSourceNative'
        destination:
          oneOf:
            - $ref: '#/components/schemas/EvmBridgeEffectKnownDestination'
            - $ref: '#/components/schemas/EvmBridgeEffectUnknownDestination'
          description: The source details of the bridge transaction.
          discriminator:
            propertyName: type
            mapping:
              known_target_chain: '#/components/schemas/EvmBridgeEffectKnownDestination'
              unknown_target_chain: '#/components/schemas/EvmBridgeEffectUnknownDestination'
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the bridge transaction.
          example: '1000000000000000000'
      type: object
      required:
        - bridge_name
        - destination
        - amount
      title: EvmBridgeEffect
    EvmBridgeEffectKnownDestination:
      properties:
        type:
          type: string
          const: known_target_chain
          title: Type
          description: The type of the effect destination.
        dest_address:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The destination address of the bridge transaction.
        dest_chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: The destination chain of the bridge transaction.
      type: object
      required:
        - type
        - dest_address
        - dest_chain
      title: EvmBridgeEffectKnownDestination
    EvmBridgeEffectSourceErc20:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        type:
          type: string
          const: erc20
          title: Type
          description: The type of bridge effect.
        source_address:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The source address of the bridge transaction.
      type: object
      required:
        - priced_asset
        - type
        - source_address
        - token
      title: EvmBridgeEffectSourceErc20
    EvmBridgeEffectSourceNative:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        type:
          type: string
          const: native
          title: Type
          description: The type of bridge effect.
        source_address:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The source address of the bridge transaction.
      type: object
      required:
        - priced_asset
        - type
        - source_address
      title: EvmBridgeEffectSourceNative
    EvmBridgeEffectUnknownDestination:
      properties:
        type:
          type: string
          const: unknown_target_chain
          title: Type
          description: The type of the effect destination.
        dest_address:
          title: Dest Address
          description: The destination address of the bridge transaction.
          type: string
        dest_chain:
          type: string
          title: Dest Chain
          description: The destination chain of the bridge transaction.
      type: object
      required:
        - type
        - dest_chain
      title: EvmBridgeEffectUnknownDestination
    EvmChain:
      properties:
        chain_type:
          type: string
          const: evm
          title: Chain Type
          description: The type of the chain.
        named_chain_id:
          title: EvmChainName
          description: >-
            The EVM chain name can be either one of those supported by the
            default chains below or a custom chain name if one was added to your
            organization.
            <ul><li>`arbitrum_mainnet`</li><li>`arbitrum_sepolia`</li><li>`avalanche_chain`</li><li>`base_mainnet`</li><li>`berachain_mainnet`</li><li>`blast_mainnet`</li><li>`bsc_mainnet`</li><li>`canto_mainnet`</li><li>`clink_mainnet`</li><li>`clink_testnet`</li><li>`conflux_mainnet`</li><li>`dymension_mainnet`</li><li>`ethereum_goerli`</li><li>`ethereum_holesky`</li><li>`ethereum_mainnet`</li><li>`ethereum_sepolia`</li><li>`fantom_mainnet`</li><li>`flare_mainnet`</li><li>`flare_testnet`</li><li>`gnosis_mainnet`</li><li>`kava_mainnet`</li><li>`linea_mainnet`</li><li>`optimism_mainnet`</li><li>`manta_pacific_mainnet`</li><li>`mantle_mainnet`</li><li>`merlin_mainnet`</li><li>`polygon_mainnet`</li><li>`polygon_mumbai`</li><li>`polygon_zkevm_mainnet`</li><li>`reya_mainnet`</li><li>`scroll_mainnet`</li><li>`sei_mainnet`</li><li>`sonic_mainnet`</li><li>`xai_mainnet`</li><li>`zeta_mainnet`</li><li>`zklink_nova_mainnet`</li><li>`zksync_era_mainnet`</li></ul>
          type: string
          minLength: 1
        chain_id:
          type: integer
          minimum: 1
          title: EvmChainId
          description: >-
            The EVM chain ID can be either one of those supported by the default
            chains below or a custom chain ID if one was added to your
            organization.
            <ul><li>1=`ethereum_mainnet`</li><li>5=`ethereum_goerli`</li><li>10=`optimism_mainnet`</li><li>14=`flare_mainnet`</li><li>16=`flare_testnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>137=`polygon_mainnet`</li><li>146=`sonic_mainnet`</li><li>169=`manta_pacific_mainnet`</li><li>250=`fantom_mainnet`</li><li>324=`zksync_era_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1729=`reya_mainnet`</li><li>2222=`kava_mainnet`</li><li>4200=`merlin_mainnet`</li><li>5000=`mantle_mainnet`</li><li>7000=`zeta_mainnet`</li><li>7700=`canto_mainnet`</li><li>8453=`base_mainnet`</li><li>8818=`clink_mainnet`</li><li>17000=`ethereum_holesky`</li><li>80001=`polygon_mumbai`</li><li>80094=`berachain_mainnet`</li><li>42161=`arbitrum_mainnet`</li><li>43114=`avalanche_chain`</li><li>59144=`linea_mainnet`</li><li>81457=`blast_mainnet`</li><li>421614=`arbitrum_sepolia`</li><li>534352=`scroll_mainnet`</li><li>660279=`xai_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</li><li>123420000987=`clink_testnet`</li></ul>
        unique_id:
          type: string
          minLength: 1
          title: EvmChainUniqueId
          description: >-
            The unique EVM chain ID. </br>Can be either one of those supported
            by the default chains below or a custom numeric chain ID
            `evm_<numeric_chain_id>` if one was added to your organization.
            <ul><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_137"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43114"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_123420000987"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li><li>`"evm_clink_testnet"`</li></ul>
      type: object
      required:
        - chain_type
        - chain_id
        - unique_id
      title: EvmChain
    EvmChainName:
      type: string
      enum:
        - arbitrum_mainnet
        - arbitrum_sepolia
        - avalanche_chain
        - base_mainnet
        - berachain_mainnet
        - blast_mainnet
        - bsc_mainnet
        - canto_mainnet
        - clink_mainnet
        - clink_testnet
        - conflux_mainnet
        - dymension_mainnet
        - ethereum_goerli
        - ethereum_holesky
        - ethereum_mainnet
        - ethereum_sepolia
        - fantom_mainnet
        - flare_mainnet
        - flare_testnet
        - gnosis_mainnet
        - kava_mainnet
        - linea_mainnet
        - optimism_mainnet
        - manta_pacific_mainnet
        - mantle_mainnet
        - merlin_mainnet
        - polygon_mainnet
        - polygon_mumbai
        - polygon_zkevm_mainnet
        - reya_mainnet
        - scroll_mainnet
        - sei_mainnet
        - sonic_mainnet
        - xai_mainnet
        - zeta_mainnet
        - zklink_nova_mainnet
        - zksync_era_mainnet
      title: EvmChainName
    EvmChainRequest:
      anyOf:
        - $ref: '#/components/schemas/EvmChainName'
        - type: integer
          minimum: 1
          title: EvmChainId
          description: >-
            The EVM chain ID can be either one of those supported by the default
            chains below or a custom chain ID if one was added to your
            organization.
            <ul><li>1=`ethereum_mainnet`</li><li>5=`ethereum_goerli`</li><li>10=`optimism_mainnet`</li><li>14=`flare_mainnet`</li><li>16=`flare_testnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>137=`polygon_mainnet`</li><li>146=`sonic_mainnet`</li><li>169=`manta_pacific_mainnet`</li><li>250=`fantom_mainnet`</li><li>324=`zksync_era_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1729=`reya_mainnet`</li><li>2222=`kava_mainnet`</li><li>4200=`merlin_mainnet`</li><li>5000=`mantle_mainnet`</li><li>7000=`zeta_mainnet`</li><li>7700=`canto_mainnet`</li><li>8453=`base_mainnet`</li><li>8818=`clink_mainnet`</li><li>17000=`ethereum_holesky`</li><li>80001=`polygon_mumbai`</li><li>80094=`berachain_mainnet`</li><li>42161=`arbitrum_mainnet`</li><li>43114=`avalanche_chain`</li><li>59144=`linea_mainnet`</li><li>81457=`blast_mainnet`</li><li>421614=`arbitrum_sepolia`</li><li>534352=`scroll_mainnet`</li><li>660279=`xai_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</li><li>123420000987=`clink_testnet`</li></ul>
        - type: string
          minLength: 1
          title: EvmChainUniqueId
          description: >-
            The unique EVM chain ID. </br>Can be either one of those supported
            by the default chains below or a custom numeric chain ID
            `evm_<numeric_chain_id>` if one was added to your organization.
            <ul><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_137"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43114"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_123420000987"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li><li>`"evm_clink_testnet"`</li></ul>
      title: EvmChainRequest
      description: The EVM chain name or ID.
    EvmContractDeploymentEffect:
      properties:
        address:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The address of the deployed contract.
      type: object
      required:
        - address
      title: EvmContractDeploymentEffect
    EvmContractMetadata:
      properties:
        name:
          title: Name
          description: The name of the contract.
          type: string
        dapp:
          description: The DApp details of the contract.
          $ref: '#/components/schemas/Dapp'
        is_verified:
          type: boolean
          title: Is Verified
          description: '`True` if the contract is verified, `False` otherwise.'
        token:
          description: The token details of the contract.
          oneOf:
            - $ref: '#/components/schemas/Erc20'
            - $ref: '#/components/schemas/Erc721'
            - $ref: '#/components/schemas/Erc1155'
          discriminator:
            propertyName: type
            mapping:
              erc1155: '#/components/schemas/Erc1155'
              erc20: '#/components/schemas/Erc20'
              erc721: '#/components/schemas/Erc721'
      type: object
      required:
        - is_verified
      title: EvmContractMetadata
    EvmDataRequest:
      oneOf:
        - $ref: '#/components/schemas/EvmDataRequestBase64'
        - $ref: '#/components/schemas/EvmDataRequestFullDetails'
        - $ref: '#/components/schemas/EvmDataRequestHex'
      discriminator:
        propertyName: type
        mapping:
          base64: '#/components/schemas/EvmDataRequestBase64'
          full_details: '#/components/schemas/EvmDataRequestFullDetails'
          hex: '#/components/schemas/EvmDataRequestHex'
    EvmDataRequestBase64:
      properties:
        type:
          type: string
          const: base64
          title: Type
          description: Base64 raw format.
        raw_data:
          type: string
          title: Raw Data
          description: >-
            The raw data of the transaction, as a serialized method-call with
            its arguments, in Base64 format. See [data field format for
            transactions on
            Ethereum](https://ethereum.org/en/developers/docs/transactions/#the-data-field).
          example: SGVsbG8=
      type: object
      required:
        - type
        - raw_data
      title: EvmDataRequestBase64
    EvmDataRequestFullDetails:
      properties:
        type:
          type: string
          const: full_details
          title: Type
          description: Method-and-arguments format.
        method_name:
          type: string
          title: Method Name
          description: The method to call in the smart contract.
        method_arguments:
          additionalProperties: true
          type: object
          title: Method Arguments
          description: The arguments to pass into the method, as `key:value` pairs.
      type: object
      required:
        - type
        - method_name
        - method_arguments
      title: EvmDataRequestFullDetails
    EvmDataRequestHex:
      properties:
        type:
          type: string
          const: hex
          title: Type
          description: Hex raw format.
        hex_data:
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Hex Data
          description: >-
            The contract call data, as a serialized method-call with its
            arguments, encoded in hex.See [data field format for transactions on
            Ethereum](https://ethereum.org/en/developers/docs/transactions/#the-data-field).
      type: object
      required:
        - type
        - hex_data
      title: EvmDataRequestHex
    EvmDynamicSuggestedFees:
      properties:
        type:
          type: string
          const: dynamic
          title: Type
        low:
          $ref: '#/components/schemas/DynamicGasFields'
          description: The low suggested gas fees.
        medium:
          $ref: '#/components/schemas/DynamicGasFields'
          description: The medium suggested gas fees.
        high:
          $ref: '#/components/schemas/DynamicGasFields'
          description: The high suggested gas fees.
      type: object
      required:
        - type
        - low
        - medium
        - high
      title: EvmDynamicSuggestedFees
    EvmEffects:
      properties:
        balance_changes:
          items:
            $ref: '#/components/schemas/EvmBalanceChangeEffect'
          type: array
          title: Balance Changes
          description: >-
            The aggregated balance changes at the addresses that are involved in
            the transaction. Values are indicated for all currency components of
            the transactions: native, ERC-20, ERC-721, and ERC-1155.
        transfers:
          items:
            $ref: '#/components/schemas/EvmTransferEffect'
          type: array
          title: Transfers
          description: The transfer events of the transaction.
        allowances:
          items:
            $ref: '#/components/schemas/AllowanceEffect'
          type: array
          title: Allowances
          description: The allowance events of the transaction.
        bridge:
          items:
            $ref: '#/components/schemas/EvmBridgeEffect'
          type: array
          title: Bridge
          description: The bridge effects of the transaction.
        contract_deployments:
          items:
            $ref: '#/components/schemas/EvmContractDeploymentEffect'
          type: array
          title: Contract Deployments
          description: The contract deployment information of the transaction.
      type: object
      required:
        - balance_changes
        - transfers
        - allowances
        - bridge
        - contract_deployments
      title: EvmEffects
    EvmErc1155Asset:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: The details of the chain.
        type:
          type: string
          const: evm_erc1155_asset
          title: Type
          description: EVM asset type.
        token:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The address of the ERC-1155 token.
        token_id:
          type: string
          pattern: ^\d+$
          title: Token Id
          description: The token id of the ERC-1155 token.
          example: '1000000000000000000'
      type: object
      required:
        - chain
        - type
        - token
        - token_id
      title: EvmErc1155Asset
    EvmErc1155AssetIdentifierRequest:
      properties:
        type:
          type: string
          const: erc1155
          title: Type
          description: EVM asset identifier type.
        token:
          $ref: '#/components/schemas/EvmAddressRequest'
          description: The ERC-1155 token contract.
        token_id:
          type: string
          pattern: ^\d+$
          title: Token Id
          description: The token id of the ERC-1155 token.
          example: '1000000000000000000'
      type: object
      required:
        - type
        - token
        - token_id
      title: EvmErc1155AssetIdentifierRequest
    EvmErc20Asset:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: The details of the chain.
        type:
          type: string
          const: evm_erc20_asset
          title: Type
          description: EVM asset type.
        token:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The ERC-20 token contract.
      type: object
      required:
        - chain
        - type
        - token
      title: EvmErc20Asset
    EvmErc20AssetIdentifierRequest:
      properties:
        type:
          type: string
          const: erc20
          title: Type
          description: EVM asset identifier type.
        token:
          $ref: '#/components/schemas/EvmAddressRequest'
          description: The ERC-20 token contract.
      type: object
      required:
        - type
        - token
      title: EvmErc20AssetIdentifierRequest
    EvmErc721Asset:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: The details of the chain.
        type:
          type: string
          const: evm_erc721_asset
          title: Type
          description: EVM asset type.
        token:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The address of the ERC-721 token.
        token_id:
          type: string
          pattern: ^\d+$
          title: Token Id
          description: The token ID of the ERC-721 token.
          example: '1000000000000000000'
      type: object
      required:
        - chain
        - type
        - token
        - token_id
      title: EvmErc721Asset
    EvmErc721AssetIdentifierRequest:
      properties:
        type:
          type: string
          const: erc721
          title: Type
          description: EVM asset identifier type.
        token:
          $ref: '#/components/schemas/EvmAddressRequest'
          description: The ERC-721 token contract.
        token_id:
          type: string
          pattern: ^\d+$
          title: Token Id
          description: The token id of the ERC-721 token.
          example: '1000000000000000000'
      type: object
      required:
        - type
        - token
        - token_id
      title: EvmErc721AssetIdentifierRequest
    EvmGasEstimation:
      properties:
        gas_limit:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Gas Limit
          description: The gas limit.
          example: '1000000000000000000'
        fiat_price:
          description: The price of the asset used to pay the fee.
          $ref: '#/components/schemas/Price'
      type: object
      required:
        - gas_limit
      title: EvmGasEstimation
    EvmHyperLiquidAsset:
      properties:
        type:
          type: string
          const: evm_hyperliquid_asset
          title: Type
          description: EVM asset type.
        token_id:
          type: string
          title: Token Id
          description: The token id of the asset on Hyperliquid.
        index:
          type: integer
          title: Index
          description: The index of the asset on Hyperliquid.
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: Currently artificially set to Arbitrum.
      type: object
      required:
        - type
        - token_id
        - index
        - chain
      title: EvmHyperLiquidAsset
    EvmHyperLiquidAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: hyperliquid
          title: Type
          description: EVM asset identifier type.
        chain:
          type: string
          minLength: 1
          title: EvmChainUniqueId
          description: Currently artificially set to Arbitrum.
        token_id:
          type: string
          title: Token Id
          description: The token id of the asset on Hyperliquid.
        index:
          type: integer
          title: Index
          description: The index of the asset on Hyperliquid.
      type: object
      required:
        - type
        - chain
        - token_id
        - index
      title: EvmHyperLiquidAssetIdentifierRequest
    EvmLegacySuggestedFees:
      properties:
        type:
          type: string
          const: legacy
          title: Type
        low:
          $ref: '#/components/schemas/LegacyGasFields'
          description: The low suggested gas fees.
        medium:
          $ref: '#/components/schemas/LegacyGasFields'
          description: The medium suggested gas fees.
        high:
          $ref: '#/components/schemas/LegacyGasFields'
          description: The high suggested gas fees.
      type: object
      required:
        - type
        - low
        - medium
        - high
      title: EvmLegacySuggestedFees
    EvmMessage:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state of the message.
        state_changes:
          items:
            $ref: '#/components/schemas/NonPushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the message.
        type:
          type: string
          const: evm_message
          title: Type
          description: EVM message type.
        evm_message_type:
          $ref: '#/components/schemas/EvmMessageType'
          description: The type of the EVM message.
        raw_data:
          type: string
          title: Raw Data
          description: The raw data of the message.
        typed_data:
          description: The typed data of the message.
          oneOf:
            - $ref: '#/components/schemas/UnknownTypedMessageEvmMessage'
            - $ref: '#/components/schemas/PermitTypedMessageEvmMessage'
            - $ref: '#/components/schemas/Permit2TypedMessageEvmMessage'
          discriminator:
            propertyName: type
            mapping:
              permit: '#/components/schemas/PermitTypedMessageEvmMessage'
              permit2: '#/components/schemas/Permit2TypedMessageEvmMessage'
              unknown: '#/components/schemas/UnknownTypedMessageEvmMessage'
        vault:
          $ref: '#/components/schemas/VaultRef'
          description: The vault creating the message.
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The sender of the message.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - evm_message_type
        - raw_data
        - vault
        - chain
        - sender
      title: EvmMessage
    EvmMessageDomainData:
      properties:
        name:
          title: Name
          description: The name
          type: string
        version:
          title: Version
          description: The version
          type: string
        chain_id:
          title: EvmChainId
          description: >-
            The EVM chain ID can be either one of those supported by the default
            chains below or a custom chain ID if one was added to your
            organization.
            <ul><li>1=`ethereum_mainnet`</li><li>5=`ethereum_goerli`</li><li>10=`optimism_mainnet`</li><li>14=`flare_mainnet`</li><li>16=`flare_testnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>137=`polygon_mainnet`</li><li>146=`sonic_mainnet`</li><li>169=`manta_pacific_mainnet`</li><li>250=`fantom_mainnet`</li><li>324=`zksync_era_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1729=`reya_mainnet`</li><li>2222=`kava_mainnet`</li><li>4200=`merlin_mainnet`</li><li>5000=`mantle_mainnet`</li><li>7000=`zeta_mainnet`</li><li>7700=`canto_mainnet`</li><li>8453=`base_mainnet`</li><li>8818=`clink_mainnet`</li><li>17000=`ethereum_holesky`</li><li>80001=`polygon_mumbai`</li><li>80094=`berachain_mainnet`</li><li>42161=`arbitrum_mainnet`</li><li>43114=`avalanche_chain`</li><li>59144=`linea_mainnet`</li><li>81457=`blast_mainnet`</li><li>421614=`arbitrum_sepolia`</li><li>534352=`scroll_mainnet`</li><li>660279=`xai_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</li><li>123420000987=`clink_testnet`</li></ul>
          type: integer
          minimum: 1
        verifying_contract:
          description: The verifying contract
          $ref: '#/components/schemas/EnrichedEvmAddress'
        salt:
          title: Salt
          description: The salt
          type: string
          example: SGVsbG8=
      type: object
      title: EvmMessageDomainData
    EvmMessageType:
      type: string
      enum:
        - personal_message_type
        - typed_message_type
        - typed_message_type_v1
      title: EvmMessageType
    EvmNativeAsset:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: The details of the chain.
        type:
          type: string
          const: evm_native_asset
          title: Type
          description: EVM asset type.
      type: object
      required:
        - chain
        - type
      title: EvmNativeAsset
    EvmNativeAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: native
          title: Type
          description: EVM asset identifier type.
        chain:
          type: string
          minLength: 1
          title: EvmChainUniqueId
          description: The details of the chain of the native asset.
      type: object
      required:
        - type
        - chain
      title: EvmNativeAssetIdentifierRequest
    EvmNativeTransferDetails:
      properties:
        type:
          type: string
          const: native_transfer
          title: Type
          description: >-
            A transaction involving the transfer of native currency from one
            address to another. 
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - direction
      title: EvmNativeTransferDetails
    EvmPrices:
      type: object
      title: EvmPrices
    EvmReversion:
      properties:
        state:
          $ref: '#/components/schemas/EvmReversionState'
          description: >-
            The state of the reversion. Is one of the
            following:<ul><li>`not_reverted`: No reversion, meaning, completed
            successfully.<li>`unknown_revert`: Fordefi does not know the reason
            for the reversion.<li>`contract_asserted`: The smart contract
            originally made an assertion that was later rejected and the
            transaction was halted. <li>`out_of_gas`: Gas is insufficient for
            the transaction. <li>`max_fee_less_than_block_base_fee`: The input
            parameter `max_fee_per_gas` (under custom gas details) is lower than
            the current base fee of the block, so the miner cannot include the
            transaction in the block. <li>`base_fee_exceeds_gas_limit`: The base
            fee that is always paid is set to 21000 gas units in Ethereum. If a
            gas limit that's lower than that was set, the transaction is
            rejected.<li>`insufficient_funds_gas_and_value`: A transaction was
            sent for which there were insufficient funds.<li>`invalid_input`: A
            general error that might occur for many different reasons, usually
            because of issues on the Fordefi side and not on the
            client's.<li>`transaction_rejected`: As for
            `invalid_input`.<li>`gas_limit_exceeds_block_limit`: There's a limit
            on gas consumption for the whole block, which no single transaction
            can pass.</ul>
        reason:
          title: Reason
          description: The reason for the reversion (additional information).
          type: string
      type: object
      required:
        - state
      title: EvmReversion
    EvmReversionState:
      type: string
      enum:
        - not_reverted
        - unknown_revert
        - contract_asserted
        - out_of_gas
        - max_fee_less_than_block_base_fee
        - base_fee_exceeds_gas_limit
        - insufficient_funds_gas_and_value
        - invalid_input
        - transaction_rejected
        - gas_limit_exceeds_block_limit
      title: EvmReversionState
    EvmSuggestedFees:
      properties:
        type:
          type: string
          const: evm
          title: Type
          description: The type of the chain.
        fees:
          oneOf:
            - $ref: '#/components/schemas/EvmLegacySuggestedFees'
            - $ref: '#/components/schemas/EvmDynamicSuggestedFees'
          description: The suggested gas fees.
          discriminator:
            propertyName: type
            mapping:
              dynamic: '#/components/schemas/EvmDynamicSuggestedFees'
              legacy: '#/components/schemas/EvmLegacySuggestedFees'
        chain_unique_id:
          type: string
          minLength: 1
          title: EvmChainUniqueId
          description: The EVM chain unique id.
      type: object
      required:
        - type
        - fees
        - chain_unique_id
      title: EvmSuggestedFees
    EvmTransaction:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: >-
            The current status of the transaction. Can be one of the following:
            <ul><li>`waiting_for_approval`: If a transaction has not been
            auto-approved, it waits in this state until it has received all the
            required approvals.<li>`approved`: The transaction moves into this
            state on approval. Then, a notification is sent to the mobile device
            of the creator of the transaction for signing or to the API Signer
            (depending on the flow that was defined). The transaction remains in
            this state until it is signed.<li>`pushed_to_blockchain`: Once
            signed, the transaction is pushed to the blockchain, awaiting
            mining. From that moment, control of the transaction passes from
            Fordefi to the blockchain. This status resolves into one of the
            following: `completed`, `reverted`, `stuck`.<li>`completed`: The
            transaction was successfully mined into the
            blockchain.<li>`reverted`: The transaction was mined into the
            blockchain and was then reverted.<li>`stuck`: The transaction did
            not reach `completed` or `reverted` after 24
            hours.<li>`error_pushing_to_blockchain`: Failed to push the
            transaction to the blockchain.<li>`aborted`: Either the transaction
            was not approved or the transaction was approved but the creator
            aborted the process.</ul> For more information about statuses in the
            transaction lifecycle, see: [Transaction
            Lifecycle](https://docs.fordefi.com/docs/transaction-lifecycle). 
        state_changes:
          items:
            $ref: '#/components/schemas/PushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the transaction.
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        incoming_aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchIncoming'
        type:
          type: string
          const: evm_transaction
          title: Type
          description: EVM transaction type.
        evm_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/EvmNativeTransferDetails'
            - $ref: '#/components/schemas/TokenTransferDetails'
            - $ref: '#/components/schemas/AllowanceDetails'
            - $ref: '#/components/schemas/ContractCallDetails'
            - $ref: '#/components/schemas/ContractDeploymentDetails'
            - $ref: '#/components/schemas/BridgeDetails'
          description: Details of the EVM transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              allowance: '#/components/schemas/AllowanceDetails'
              contract_call: '#/components/schemas/ContractCallDetails'
              contract_deployment: '#/components/schemas/ContractDeploymentDetails'
              cross_chain_bridge: '#/components/schemas/BridgeDetails'
              native_transfer: '#/components/schemas/EvmNativeTransferDetails'
              token_transfer: '#/components/schemas/TokenTransferDetails'
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: The details of the chain this transaction is on.
        from:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The sender of the transaction.
        to:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The address of the recipient of the transaction.
        value:
          type: string
          pattern: ^\d+$
          title: Value
          description: The value of native currency sent with this transaction.
          example: '1000000000000000000'
        data:
          type: string
          title: Data
          description: >-
            The data of the contract call, as a serialized method-call with its
            arguments, in Base64 format. See [data field format for transactions
            on
            Ethereum](https://ethereum.org/en/developers/docs/transactions/#the-data-field).
          example: SGVsbG8=
        hex_data:
          title: Hex Data
          description: >-
            The hex data of the contract call, as a serialized method-call with
            its arguments.
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
        parsed_data:
          $ref: '#/components/schemas/EvmTransactionParsedData'
          description: The parsed data of the transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          example: '0x780f21260f89d610f24eed21b34d29229611a37e0003e83dd0da91981d7131ae'
        nonce:
          title: Nonce
          description: The nonce of the transaction.
          type: integer
        block:
          description: Details of the block the transaction was mined in.
          $ref: '#/components/schemas/EvmBlockData'
        expected_result:
          description: The expected (simulated) result of the transaction.
          $ref: '#/components/schemas/EvmTransactionResult'
        simulation_status_result:
          description: Whether simulation succeeded, reverted or failed.
          $ref: '#/components/schemas/SimulationStatusResult'
        mined_result:
          description: The result of the transaction after it was mined.
          $ref: '#/components/schemas/EvmTransactionResult'
        gas_submitted:
          oneOf:
            - $ref: '#/components/schemas/LegacyGas'
            - $ref: '#/components/schemas/DynamicGas'
          description: The gas details submitted for the transaction.
          discriminator:
            propertyName: type
            mapping:
              dynamic: '#/components/schemas/DynamicGas'
              legacy: '#/components/schemas/LegacyGas'
        parent_transaction_id:
          title: Parent Transaction Id
          description: >-
            The unique identifier of the parent transaction. Parent and child
            transactions form in cases where a transaction become stuck and is
            then either canceled or accelerated. If, for example, the original
            transaction (`t1`) is the parent and the related, adjustment
            transaction is the child (`t2`), then relative to itself, the parent
            field of `t1` is `null` and the child field is `t2_id`. Compare with
            field `child_transaction_id`.
          type: string
          format: uuid
        child_transaction_id:
          title: Child Transaction Id
          description: >-
            The unique identifier of the child transaction. Compare with field
            `parent_transaction_id`. Relative to itself, the parent field of
            transaction `t2` would aquire the identifier `t1_id` and the child
            field of `t2` would be `null`. 
          type: string
          format: uuid
        funding_for_transaction_id:
          title: Funding For Transaction Id
          description: Funding transaction ID.
          type: string
          format: uuid
        funded_by_transaction_id:
          title: Funded By Transaction Id
          description: Funded transaction ID.
          type: string
          format: uuid
        funded_by_vault:
          description: Funding vault.
          $ref: '#/components/schemas/VaultRef'
        current_preceding_pushed_to_blockchain_transaction_id:
          title: Current Preceding Pushed To Blockchain Transaction Id
          description: >-
            The unique identifier of the transaction that was pushed to the
            blockchain, In case this transaction is QUEUED.
          type: string
          format: uuid
        is_cancelation:
          type: boolean
          title: Is Cancelation
          description: >-
            `True` if this transaction is a cancelation of a previous
            transaction, `False` otherwise. 
        is_acceleration:
          type: boolean
          title: Is Acceleration
          description: >-
            `True` if this transaction is an acceleration of a previous
            transaction, `False` otherwise.
        use_secure_node:
          type: boolean
          title: Use Secure Node
          description: >-
            `True` if Fordefi sends this transaction through a secure node,
            `False` otherwise. By using a secure node, you avoid maximal
            extractable value (MEV) attacks.
        explorer_url:
          title: Explorer Url
          description: The URL of this transaction in a blockchain explorer.
          example: https://etherscan.io/tx/0x123
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        raw_transaction:
          title: Raw Transaction
          description: The raw transaction data, encoded as a hex string.
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - evm_transaction_type_details
        - chain
        - from
        - to
        - value
        - data
        - parsed_data
        - gas_submitted
        - is_cancelation
        - is_acceleration
        - use_secure_node
      title: EvmTransaction
    EvmTransactionMethodArgument:
      properties:
        name:
          type: string
          title: Name
          description: The name of the argument.
        type:
          type: string
          title: Type
          description: The type of the argument.
        value:
          type: string
          title: Value
          description: The value of the argument.
        enriched_address:
          description: Details of the address if it is an address.
          $ref: '#/components/schemas/EnrichedEvmAddress'
      type: object
      required:
        - name
        - type
        - value
      title: EvmTransactionMethodArgument
    EvmTransactionParsedData:
      properties:
        method:
          type: string
          title: Method
          description: The method name, in case of contract call.
        method_arguments:
          items:
            $ref: '#/components/schemas/EvmTransactionMethodArgument'
          type: array
          title: Method Arguments
          description: The method arguments, in case of contract call.
      type: object
      required:
        - method
        - method_arguments
      title: EvmTransactionParsedData
    EvmTransactionResult:
      properties:
        reversion:
          $ref: '#/components/schemas/EvmReversion'
          description: Details whether the transaction was reverted or not.
        gas_debit:
          $ref: '#/components/schemas/GasDebit'
          description: The gas debit of the transaction.
        effects:
          $ref: '#/components/schemas/EvmEffects'
          description: >-
            The effects (outcomes) of the transaction. A single transaction can
            have multiple effects, for example, a transferral of native funds:
            moving X ETH from Y to Z (here the effect will have a sender,
            receiver and amount). A more complex example is a transfer of a
            token, moving X USDC from X to Z (here, the effects are sender,
            receiver, amount, and token). 
      type: object
      required:
        - reversion
        - gas_debit
        - effects
      title: EvmTransactionResult
    EvmTransactionType:
      type: string
      enum:
        - native_transfer
        - token_transfer
        - allowance
        - contract_call
        - cross_chain_bridge
        - contract_deployment
      title: EvmTransactionType
    EvmTransferEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the transfer.
          example: '1000000000000000000'
        from:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The sender of the transfer.
        to:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The receiver of the transfer.
      type: object
      required:
        - priced_asset
        - amount
        - type
        - from
        - to
      title: EvmTransferEffect
    EvmTransferEffectType:
      type: string
      enum:
        - native
        - erc20
        - erc721
        - erc1155
      title: EvmTransferEffectType
    EvmVault:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        metadata:
          title: Metadata
          description: Metadata in a form of map<str, bool | str | int | array[str]>.
          additionalProperties:
            anyOf:
              - items:
                  type: string
                type: array
              - type: string
              - type: integer
              - type: boolean
          type: object
        name:
          type: string
          title: Name
          description: The name of the vault.
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: Details of the vault creator.
        vault_group:
          $ref: '#/components/schemas/VaultGroupRef'
          description: The vault group this vault belongs to.
        pending_vault_group_action:
          description: Details of pending vault movement to another vault group.
          oneOf:
            - $ref: '#/components/schemas/PendingVaultGroupActionAdd'
            - $ref: '#/components/schemas/PendingVaultGroupActionRemove'
          discriminator:
            propertyName: type
            mapping:
              add: '#/components/schemas/PendingVaultGroupActionAdd'
              remove: '#/components/schemas/PendingVaultGroupActionRemove'
        state:
          $ref: '#/components/schemas/VaultState'
          description: State of the vault.
        public_key_compressed:
          type: string
          title: Public Key Compressed
          description: >-
            The public key of the vault in its compressed form: <ul> <li>For
            ECDSA and Schnorr keys, the public key is represented as 33 bytes
            (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1
            standard](https://www.secg.org/SEC1-Ver-1.0.pdf). <li>For EdDSA, the
            public key is represented as a 32-byte value, as defined by [RFC
            8032](https://datatracker.ietf.org/doc/html/rfc8032). </ul>
          example: SGVsbG8=
        derivation_info:
          $ref: '#/components/schemas/VaultDerivationInfo'
          description: The derivation info of the vault.
        key_holder:
          description: >-
            The user who owns the keyset of the vault. If not provided, the
            vault is owned by the organization.
          $ref: '#/components/schemas/EndUserRef'
        origin_type:
          $ref: '#/components/schemas/VaultOriginType'
          description: The origin type of the vault.
        type:
          type: string
          const: evm
          title: Type
          description: EVM vault type.
        address:
          type: string
          maxLength: 42
          minLength: 42
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address of the vault on EVM chain types.
          example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - created_by
        - vault_group
        - state
        - are_all_chains_disabled
        - derivation_path
        - public_key_compressed
        - derivation_info
        - keyset
        - origin_type
        - type
        - address
      title: EvmVault
      description: Represents an EVM vault in the Fordefi platform
    ExchangeAccount:
      properties:
        account_id:
          type: string
          title: Account Id
          description: The ID of the exchange account.
        account_name:
          type: string
          title: Account Name
          description: The name of the exchange account.
      type: object
      required:
        - account_id
        - account_name
      title: ExchangeAccount
    ExchangeAssetIdentifier:
      properties:
        type:
          type: string
          const: exchange
          title: Type
          description: Asset identifier type.
        exchange_type:
          $ref: '#/components/schemas/ExchangeType'
          description: exchange type.
        asset_symbol:
          type: string
          title: Asset Symbol
          description: The symbol of the asset on the exchange.
        chain:
          $ref: '#/components/schemas/EnrichedExchangeChain'
      type: object
      required:
        - type
        - exchange_type
        - asset_symbol
        - chain
      title: ExchangeAssetIdentifier
    ExchangeAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: exchange
          title: Type
          description: Asset identifier type.
        exchange_type:
          $ref: '#/components/schemas/ExchangeType'
          description: exchange type.
        asset_symbol:
          type: string
          title: Asset Symbol
          description: The symbol of the asset on the exchange.
      type: object
      required:
        - type
        - exchange_type
        - asset_symbol
      title: ExchangeAssetIdentifierRequest
    ExchangeBalanceChangeEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        diff:
          type: string
          pattern: ^-?\d+$
          title: Diff
          description: >-
            The amount of that was added to or deducted from the owner's
            balance. If the amount was deducted, the value is negative; if the
            amount was added, the value is positive.
          example: '1000000000000000000'
        address:
          $ref: '#/components/schemas/EnrichedAddress'
          description: >-
            The address affected by the balance change or vault in case of an
            exchange vault.
      type: object
      required:
        - priced_asset
        - diff
        - address
      title: ExchangeBalanceChangeEffect
    ExchangeChainUniqueId:
      type: string
      enum:
        - exchange_binance
        - exchange_bybit
        - exchange_coinbase_international
        - exchange_coinbase_us
        - exchange_okx
      title: ExchangeChainUniqueId
    ExchangeEffects:
      properties:
        balance_changes:
          items:
            $ref: '#/components/schemas/ExchangeBalanceChangeEffect'
          type: array
          title: Balance Changes
        transfers:
          items:
            $ref: '#/components/schemas/ExchangeTransferEffect'
          type: array
          title: Transfers
      type: object
      required:
        - balance_changes
        - transfers
      title: ExchangeEffects
    ExchangeExternalWithdrawDetails:
      properties:
        is_internal:
          type: boolean
          title: Is Internal
          description: Is this transfer an internal transfer between two vaults.
        sender:
          $ref: '#/components/schemas/EnrichedExchangeAddress'
          description: The sender of the transaction.
        type:
          type: string
          const: external_withdraw
          title: Type
          description: >-
            A transaction from an exchange vault to an MPC vault or external
            address. 
        recipient:
          $ref: '#/components/schemas/EnrichedAddress'
          description: The recipient of the transfer.
        chain:
          $ref: '#/components/schemas/EnrichedChain'
          description: The details of the chain this transaction is on.
        memo:
          title: Memo
          description: Transaction memo.
          type: string
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of this transaction in a blockchain explorer. For example,
            Solscan.
          example: https://solscan.io/tx/FAWA66f...6kEZanwHeDFNS
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
      type: object
      required:
        - is_internal
        - sender
        - type
        - recipient
        - chain
      title: ExchangeExternalWithdrawDetails
    ExchangeFee:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        fee:
          type: string
          pattern: ^\d+$
          title: Fee
          description: The exchange's fee.
          example: '1000000000000000000'
      type: object
      required:
        - priced_asset
        - fee
      title: ExchangeFee
    ExchangeInternalTransferDetails:
      properties:
        is_internal:
          type: boolean
          title: Is Internal
          description: Is this transfer an internal transfer between two vaults.
        sender:
          $ref: '#/components/schemas/EnrichedExchangeAddress'
          description: The sender of the transaction.
        type:
          type: string
          const: internal_transfer
          title: Type
          description: A transaction from one exchange vault to another.
        recipient:
          $ref: '#/components/schemas/EnrichedExchangeAddress'
          description: The recipient of the transfer.
      type: object
      required:
        - is_internal
        - sender
        - type
        - recipient
      title: ExchangeInternalTransferDetails
    ExchangeReversion:
      properties:
        state:
          $ref: '#/components/schemas/ExchangeReversionState'
          description: >-
            The state of the reversion. Is one of the
            following:<ul><li>`not_reverted`: No reversion, meaning, completed
            successfully.<li>`insufficient_exchange_vault_funds`: Insufficient
            funds in exchange vault for withdraw fee and value.</ul>
        reason:
          title: Reason
          description: The reason for the reversion (additional information).
          type: string
      type: object
      required:
        - state
      title: ExchangeReversion
    ExchangeReversionState:
      type: string
      enum:
        - not_reverted
        - insufficient_exchange_vault_funds
      title: ExchangeReversionState
    ExchangeTransaction:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/ExchangeTransactionState'
          description: The state of the exchange transaction.
        state_changes:
          items:
            $ref: '#/components/schemas/ExchangeTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the exchange transaction.
        type:
          type: string
          const: exchange_transaction
          title: Type
          description: The type of the transaction.
        exchange_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/ExchangeExternalWithdrawDetails'
            - $ref: '#/components/schemas/ExchangeInternalTransferDetails'
          description: Details of the Exchange transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              external_withdraw: '#/components/schemas/ExchangeExternalWithdrawDetails'
              internal_transfer: '#/components/schemas/ExchangeInternalTransferDetails'
        exchange_nonce:
          title: Exchange Nonce
          description: The nonce of the transaction. `None` if not required by the exchange
          type: string
        exchange_transaction_id:
          title: Exchange Transaction Id
          description: The ID of the transaction as returned by the exchange
          type: string
        expected_result:
          description: The expected result of the transaction in case it's executed.
          $ref: '#/components/schemas/ExchangeTransactionResult'
        simulation_status_result:
          $ref: '#/components/schemas/SimulationStatusResult'
          description: Whether simulation succeeded or failed.
        mined_result:
          description: The result of the transaction after it was mined.
          $ref: '#/components/schemas/ExchangeTransactionResult'
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - exchange_transaction_type_details
        - simulation_status_result
      title: ExchangeTransaction
    ExchangeTransactionResult:
      properties:
        reversion:
          $ref: '#/components/schemas/ExchangeReversion'
          description: Details whether the transaction was reverted or not.
        effects:
          $ref: '#/components/schemas/ExchangeEffects'
          description: The effects of the transaction.
        exchange_fee:
          description: The exchange's fee.
          $ref: '#/components/schemas/ExchangeFee'
      type: object
      required:
        - reversion
        - effects
      title: ExchangeTransactionResult
    ExchangeTransactionState:
      type: string
      enum:
        - waiting_for_approval
        - approved
        - signed
        - completed
        - aborted
        - error_signing
        - error_submitting_to_exchange
        - pending_exchange
        - error_processing_by_exchange
      title: ExchangeTransactionState
    ExchangeTransactionStateChange:
      properties:
        changed_at:
          type: string
          format: date-time
          title: Changed At
          description: The date and time when the state was changed.
        reason:
          description: The reason for the state change.
          $ref: '#/components/schemas/StateChangeReason'
        previous_state:
          description: The previous state of the exchange transaction.
          $ref: '#/components/schemas/ExchangeTransactionState'
        new_state:
          $ref: '#/components/schemas/ExchangeTransactionState'
          description: The new state of the exchange transaction.
      type: object
      required:
        - changed_at
        - new_state
      title: ExchangeTransactionStateChange
    ExchangeTransactionType:
      type: string
      enum:
        - external_withdraw
        - internal_transfer
      title: ExchangeTransactionType
    ExchangeTransferEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the transfer.
          example: '1000000000000000000'
        from:
          $ref: '#/components/schemas/EnrichedExchangeAddress'
          description: The sender of the transfer.
        to:
          $ref: '#/components/schemas/EnrichedAddress'
          description: The receiver of the transfer.
      type: object
      required:
        - priced_asset
        - amount
        - from
        - to
      title: ExchangeTransferEffect
    ExchangeTransferExternalRecipientTypeAddress:
      properties:
        type:
          type: string
          const: address
          title: Type
          description: Transfer to external address.
        address:
          type: string
          title: Address
          description: The address of the recipient in plain string.
      type: object
      required:
        - type
        - address
      title: ExchangeTransferExternalRecipientTypeAddress
    ExchangeTransferExternalRecipientTypeVault:
      properties:
        type:
          type: string
          const: vault
          title: Type
          description: >-
            Transfer to an MPC vault or a master account of a different exchange
            vault.
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The ID of the recipient vault.
      type: object
      required:
        - type
        - vault_id
      title: ExchangeTransferExternalRecipientTypeVault
    ExchangeType:
      type: string
      enum:
        - binance
        - bybit
        - coinbase_international
        - coinbase_us
        - okx
      title: ExchangeType
    ExchangeVault:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        metadata:
          title: Metadata
          description: Metadata in a form of map<str, bool | str | int | array[str]>.
          additionalProperties:
            anyOf:
              - items:
                  type: string
                type: array
              - type: string
              - type: integer
              - type: boolean
          type: object
        name:
          type: string
          title: Name
          description: The name of the vault.
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: Details of the vault creator.
        vault_group:
          $ref: '#/components/schemas/VaultGroupRef'
          description: The vault group this vault belongs to.
        pending_vault_group_action:
          description: Details of pending vault movement to another vault group.
          oneOf:
            - $ref: '#/components/schemas/PendingVaultGroupActionAdd'
            - $ref: '#/components/schemas/PendingVaultGroupActionRemove'
          discriminator:
            propertyName: type
            mapping:
              add: '#/components/schemas/PendingVaultGroupActionAdd'
              remove: '#/components/schemas/PendingVaultGroupActionRemove'
        state:
          $ref: '#/components/schemas/VaultState'
          description: State of the vault.
        type:
          type: string
          const: exchange
          title: Type
          description: EXCHANGE vault type.
        exchange_type:
          $ref: '#/components/schemas/ExchangeType'
          description: The exchange which holds this account.
        api_key:
          type: string
          title: Api Key
          description: The API-key of this exchange account.
        active_account:
          description: The active account of the exchange.
          $ref: '#/components/schemas/ExchangeAccount'
        logo_url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Logo Url
          description: The logo of the vault.
        is_balance_data_outdated:
          type: boolean
          title: Is Balance Data Outdated
          description: Whether the balance data is outdated.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - created_by
        - vault_group
        - state
        - are_all_chains_disabled
        - type
        - exchange_type
        - api_key
        - logo_url
        - is_balance_data_outdated
      title: ExchangeVault
      description: Represents an exchange account vault in the Fordefi platform
    Export:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: ID of the export.
        creation_time:
          type: string
          format: date-time
          title: Creation Time
          description: The date and time when the object was created.
        type:
          $ref: '#/components/schemas/ExportType'
          description: Type of the export.
        state:
          $ref: '#/components/schemas/ExportState'
          description: The current state of the export.
        organization_id:
          type: string
          format: uuid
          title: Organization Id
          description: The id of the organization.
        user_id:
          type: string
          title: User Id
          description: The id of the user.
        resource_type:
          $ref: '#/components/schemas/Resource'
          description: The type of the resource being exported.
        successful_items_count:
          type: integer
          title: Successful Items Count
          description: The number of items that were successfully exported.
        failed_items_count:
          type: integer
          title: Failed Items Count
          description: The number of items that failed to be exported.
        total_items_count:
          type: integer
          title: Total Items Count
          description: The total number of items to be exported.
        request_id:
          type: string
          title: Request Id
          description: The request id of the export.
        download_url:
          type: string
          title: Download Url
          description: The download url of the export.
        expiration_time:
          type: string
          format: date-time
          title: Expiration Time
          description: The date and time when the object will expire.
      type: object
      required:
        - id
        - creation_time
        - type
        - state
        - organization_id
        - user_id
        - resource_type
        - successful_items_count
        - failed_items_count
        - total_items_count
        - request_id
        - download_url
        - expiration_time
      title: Export
    ExportState:
      type: string
      enum:
        - created
        - in_progress
        - aborted
        - ready
        - error
      title: ExportState
    ExportType:
      type: string
      enum:
        - csv
      title: ExportType
    ExposureType:
      type: string
      enum:
        - direct
        - indirect
      title: ExposureType
    FeePriorityLevel:
      type: string
      enum:
        - custom
        - low
        - medium
        - high
      title: FeePriorityLevel
    FeePriorityLevelRequest:
      type: string
      enum:
        - low
        - medium
        - high
      title: FeePriorityLevelRequest
    FeePriorityRequest:
      properties:
        type:
          type: string
          const: priority
          title: Type
        priority_level:
          $ref: '#/components/schemas/FeePriorityLevelRequest'
          description: The priority level of the fee.
      type: object
      required:
        - type
        - priority_level
      title: FeePriorityRequest
    FetchAssetPricesRequest:
      properties:
        asset_identifiers:
          items:
            $ref: '#/components/schemas/AssetIdentifierRequest'
          type: array
          minItems: 1
          title: Asset Identifiers
          description: The assets to price.
      type: object
      required:
        - asset_identifiers
      title: FetchAssetPricesRequest
    FetchAssetPricesResponse:
      properties:
        priced_assets:
          items:
            $ref: '#/components/schemas/PricedAssetResponse'
          type: array
          title: Priced Assets
          description: The priced assets.
      type: object
      required:
        - priced_assets
      title: FetchAssetPricesResponse
    FiatCurrency:
      properties:
        currency_symbol:
          $ref: '#/components/schemas/FiatCurrencySymbol'
          description: The symbol of the fiat currency.
        decimals:
          type: integer
          minimum: 0
          title: Decimals
          description: The number of decimals in the fiat currency.
      type: object
      required:
        - currency_symbol
        - decimals
      title: FiatCurrency
    FiatCurrencySymbol:
      type: string
      enum:
        - usd
      title: FiatCurrencySymbol
      description: FiatCurrencySymbol
    FireblocksImportPackage:
      properties:
        type:
          type: string
          const: fireblocks
          title: Type
        key_name:
          type: string
          title: Key Name
          description: The name of the key to import.
        backup_zip_content:
          type: string
          title: Backup Zip Content
          description: The base64 encoded content of the Fireblocks backup zip file.
          example: SGVsbG8=
        rsa_pem:
          title: Rsa Pem
          description: >-
            The base64 encoded RSA private key used to encrypt the cosigner
            shares in PEM format.If not provided, the default RSA key will be
            used.
          type: string
          example: SGVsbG8=
        rsa_pem_password:
          title: Rsa Pem Password
          description: The password for RSA private key.
          type: string
      type: object
      required:
        - type
        - key_name
        - backup_zip_content
      title: FireblocksImportPackage
    GasDebit:
      properties:
        gas_used:
          type: string
          pattern: ^\d+$
          title: Gas Used
          description: The amount of gas used.
          example: '1000000000000000000'
        gas_price:
          type: string
          pattern: ^\d+$
          title: Gas Price
          description: The gas price.
          example: '1000000000000000000'
        total_fee:
          type: string
          pattern: ^\d+$
          title: Total Fee
          description: The total fee taken (`gas_used` * `gas_price`).
          example: '1000000000000000000'
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The information of the asset used to pay the fee and amount used.
      type: object
      required:
        - gas_used
        - gas_price
        - total_fee
        - priced_asset
      title: GasDebit
    GasPriorityLevel:
      type: string
      enum:
        - custom
        - low
        - medium
        - high
      title: GasPriorityLevel
    GasPriorityLevelRequest:
      type: string
      enum:
        - low
        - medium
        - high
      title: GasPriorityLevelRequest
    GasPriorityRequest:
      properties:
        gas_limit:
          title: Gas Limit
          description: >-
            Specifies the maximum number of gas units to be used for mining the
            transaction. If omitted, Fordefi will automatically estimate the
            required gas and apply that value.
          type: string
          pattern: ^0*[1-9]\d*$
          example: '1000000000000000000'
        type:
          type: string
          const: priority
          title: Type
        priority_level:
          $ref: '#/components/schemas/GasPriorityLevelRequest'
          description: >-
            Using the Gas Priority option, you allocate gas according to
            `gas_limit` and `priority_level`, and the range of fee you are
            willing to add: low, medium,  or high - Fordefi will add 10%, 20%,
            or 25%, respectively to the recent average gas price to mine the
            transaction successfully.
      type: object
      required:
        - type
        - priority_level
      title: GasPriorityRequest
    GasType:
      type: string
      enum:
        - dynamic
        - legacy
      title: GasType
    GetCurrentEndUserResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        external_id:
          type: string
          title: External Id
          description: The ID that you assigned to the end user.
          example: user|1234
        last_login_at:
          type: string
          format: date-time
          title: Last Login At
          description: The timestamp when the end user last logged into the mobile SDK.
        desired_key_types:
          title: Desired Key Types
          description: >-
            Desired key types. This field is populated by the user during keyset
            generation.
          items:
            $ref: '#/components/schemas/KeyType'
          type: array
        keyset_id:
          type: string
          format: uuid
          title: Keyset Id
          description: The unique identifier of the keyset.
        ecdsa:
          description: >-
            ECDSA key. The key is used to generate ECDSA-based vaults (for
            example, EVM vaults).
          $ref: '#/components/schemas/KeysetKey'
        eddsa:
          description: >-
            EdDSA key. The key is used to generate EdDSA-based vaults (for
            example, Solana vaults).
          $ref: '#/components/schemas/KeysetKey'
        ecdsa_stark:
          description: >-
            ECDSA-Stark key. The key is used to generate ECDSA-Stark-based
            vaults (for example, Stark Blackbox vaults).
          $ref: '#/components/schemas/KeysetKey'
        schnorr_secp256k1:
          description: >-
            Schnorr Secp256k1 key. The key is used to generate
            Schnorr-Secp256k1-based vaults.
          $ref: '#/components/schemas/KeysetKey'
        auth_public_key:
          title: Auth Public Key
          description: The public key of the user's auth-key.
          type: string
          example: SGVsbG8=
        encrypted_device_shares_backups:
          title: Encrypted Device Shares Backups
          description: Encrypted device shares backups.
          items:
            $ref: '#/components/schemas/EncryptedDeviceSharesBackup'
          type: array
        last_backup_at:
          type: string
          format: date-time
          title: Last Backup At
          description: The last time backup was intitated.
        export_allowed:
          type: boolean
          title: Export Allowed
          description: Whether the user is allowed to export the keyset.
        last_export_at:
          type: string
          format: date-time
          title: Last Export At
          description: The last time the keyset was exported.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - external_id
        - last_login_at
        - keyset_id
        - last_backup_at
        - export_allowed
        - last_export_at
      title: GetCurrentEndUserResponse
    GetEndUserResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        external_id:
          type: string
          title: External Id
          description: The ID that you assigned to the end user.
          example: user|1234
        last_login_at:
          type: string
          format: date-time
          title: Last Login At
          description: The timestamp when the end user last logged into the mobile SDK.
        desired_key_types:
          title: Desired Key Types
          description: >-
            Desired key types. This field is populated by the user during keyset
            generation.
          items:
            $ref: '#/components/schemas/KeyType'
          type: array
        keyset_id:
          type: string
          format: uuid
          title: Keyset Id
          description: The unique identifier of the keyset.
        ecdsa:
          description: >-
            ECDSA key. The key is used to generate ECDSA-based vaults (for
            example, EVM vaults).
          $ref: '#/components/schemas/KeysetKey'
        eddsa:
          description: >-
            EdDSA key. The key is used to generate EdDSA-based vaults (for
            example, Solana vaults).
          $ref: '#/components/schemas/KeysetKey'
        ecdsa_stark:
          description: >-
            ECDSA-Stark key. The key is used to generate ECDSA-Stark-based
            vaults (for example, Stark Blackbox vaults).
          $ref: '#/components/schemas/KeysetKey'
        schnorr_secp256k1:
          description: >-
            Schnorr Secp256k1 key. The key is used to generate
            Schnorr-Secp256k1-based vaults.
          $ref: '#/components/schemas/KeysetKey'
        auth_public_key:
          title: Auth Public Key
          description: The public key of the user's auth-key.
          type: string
          example: SGVsbG8=
        encrypted_device_shares_backups:
          title: Encrypted Device Shares Backups
          description: Encrypted device shares backups.
          items:
            $ref: '#/components/schemas/EncryptedDeviceSharesBackup'
          type: array
        last_backup_at:
          type: string
          format: date-time
          title: Last Backup At
          description: The last time backup was intitated.
        export_allowed:
          type: boolean
          title: Export Allowed
          description: Whether the user is allowed to export the keyset.
        last_export_at:
          type: string
          format: date-time
          title: Last Export At
          description: The last time the keyset was exported.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - external_id
        - last_login_at
        - keyset_id
        - last_backup_at
        - export_allowed
        - last_export_at
      title: GetEndUserResponse
    GetImportKeysStatusResponse:
      properties:
        state:
          $ref: '#/components/schemas/ImportKeysStatus'
          description: The state of the import keys request.
      type: object
      required:
        - state
      title: GetImportKeysStatusResponse
    GetOwnedAssetResponse:
      $ref: '#/components/schemas/OwnedAsset'
      title: GetOwnedAssetResponse
    GetSolanaSpotSwapDetails:
      properties:
        type:
          type: string
          const: spot_swap
          title: Type
          description: A Solana spot swap transaction is for swapping between two assets.
        slippage_bps:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Slippage Bps
          description: The slippage in basis points.
          example: '1000000000000000000'
        price_impact_pct:
          type: string
          pattern: ^\d+(\.\d+)?$
          title: Price Impact Pct
          description: The price impact in percentage.
          example: '1000000000000000000'
        rate:
          type: string
          pattern: ^\d+(\.\d+)?$
          title: Rate
          description: The rate of the swap.
          example: '1000000000000000000'
        broadcast_mode:
          $ref: '#/components/schemas/SolanaSpotSwapBroadcastMode'
          description: The broadcast mode of the swap.
        input_asset:
          $ref: '#/components/schemas/AssetInfo'
          description: The input asset.
        output_asset:
          $ref: '#/components/schemas/AssetInfo'
          description: The output asset.
        recipients:
          items:
            $ref: '#/components/schemas/EnrichedSolanaAddress'
          type: array
          title: Recipients
          description: The recipients of the tokens.
      type: object
      required:
        - type
        - slippage_bps
        - price_impact_pct
        - rate
        - broadcast_mode
        - input_asset
        - output_asset
        - recipients
      title: GetSolanaSpotSwapDetails
    GetSuggestedFeesResponse:
      properties:
        suggested_fees:
          additionalProperties:
            $ref: '#/components/schemas/SuggestedFees'
          type: object
          title: Suggested Fees
      type: object
      required:
        - suggested_fees
      title: GetSuggestedFeesResponse
    GetTransactionResponse:
      oneOf:
        - $ref: '#/components/schemas/AptosMessage'
        - $ref: '#/components/schemas/AptosTransaction'
        - $ref: '#/components/schemas/BlackBoxSignature'
        - $ref: '#/components/schemas/CosmosTransaction'
        - $ref: '#/components/schemas/CosmosMessage'
        - $ref: '#/components/schemas/EvmMessage'
        - $ref: '#/components/schemas/EvmTransaction'
        - $ref: '#/components/schemas/ExchangeTransaction'
        - $ref: '#/components/schemas/SolanaMessage'
        - $ref: '#/components/schemas/SolanaTransaction'
        - $ref: '#/components/schemas/StacksTransaction'
        - $ref: '#/components/schemas/StarknetMessage'
        - $ref: '#/components/schemas/StarknetTransaction'
        - $ref: '#/components/schemas/SuiMessage'
        - $ref: '#/components/schemas/SuiTransaction'
        - $ref: '#/components/schemas/TonMessage'
        - $ref: '#/components/schemas/TonTransaction'
        - $ref: '#/components/schemas/TronTransaction'
        - $ref: '#/components/schemas/UtxoMessage'
        - $ref: '#/components/schemas/UtxoTransaction'
      discriminator:
        propertyName: type
        mapping:
          aptos_message: '#/components/schemas/AptosMessage'
          aptos_transaction: '#/components/schemas/AptosTransaction'
          black_box_signature: '#/components/schemas/BlackBoxSignature'
          cosmos_message: '#/components/schemas/CosmosMessage'
          cosmos_transaction: '#/components/schemas/CosmosTransaction'
          evm_message: '#/components/schemas/EvmMessage'
          evm_transaction: '#/components/schemas/EvmTransaction'
          exchange_transaction: '#/components/schemas/ExchangeTransaction'
          solana_message: '#/components/schemas/SolanaMessage'
          solana_transaction: '#/components/schemas/SolanaTransaction'
          stacks_transaction: '#/components/schemas/StacksTransaction'
          starknet_message: '#/components/schemas/StarknetMessage'
          starknet_transaction: '#/components/schemas/StarknetTransaction'
          sui_message: '#/components/schemas/SuiMessage'
          sui_transaction: '#/components/schemas/SuiTransaction'
          ton_message: '#/components/schemas/TonMessage'
          ton_transaction: '#/components/schemas/TonTransaction'
          tron_transaction: '#/components/schemas/TronTransaction'
          utxo_message: '#/components/schemas/UtxoMessage'
          utxo_transaction: '#/components/schemas/UtxoTransaction'
    GetUserGroupResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the user group.
        users_count:
          type: integer
          minimum: 0
          title: Users Count
          description: The number of users in the group.
        admins_count:
          type: integer
          minimum: 0
          title: Admins Count
          description: The number of admins in the group.
        state:
          $ref: '#/components/schemas/UserGroupState'
          description: The state of the user group.
        modified_by:
          $ref: '#/components/schemas/UserRef'
          description: Group last modifier.
        proposed_change:
          description: The change proposal for the group.
          $ref: '#/components/schemas/UserGroupChangeRequest'
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - users_count
        - admins_count
        - state
        - modified_by
      title: GetUserGroupResponse
    GetUserResponse:
      oneOf:
        - $ref: '#/components/schemas/Person'
        - $ref: '#/components/schemas/ApiUser'
        - $ref: '#/components/schemas/ApiSigner'
        - $ref: '#/components/schemas/SystemUser'
      discriminator:
        propertyName: user_type
        mapping:
          api_signer: '#/components/schemas/ApiSigner'
          api_user: '#/components/schemas/ApiUser'
          person: '#/components/schemas/Person'
          system: '#/components/schemas/SystemUser'
    GetVaultResponse:
      oneOf:
        - $ref: '#/components/schemas/AptosVault'
        - $ref: '#/components/schemas/BlackBoxVault'
        - $ref: '#/components/schemas/CosmosVault'
        - $ref: '#/components/schemas/EvmVault'
        - $ref: '#/components/schemas/SolanaVault'
        - $ref: '#/components/schemas/StacksVault'
        - $ref: '#/components/schemas/StarknetVault'
        - $ref: '#/components/schemas/SuiVault'
        - $ref: '#/components/schemas/TonVault'
        - $ref: '#/components/schemas/TronVault'
        - $ref: '#/components/schemas/UtxoVault'
        - $ref: '#/components/schemas/ExchangeVault'
      discriminator:
        propertyName: type
        mapping:
          aptos: '#/components/schemas/AptosVault'
          black_box: '#/components/schemas/BlackBoxVault'
          cosmos: '#/components/schemas/CosmosVault'
          evm: '#/components/schemas/EvmVault'
          exchange: '#/components/schemas/ExchangeVault'
          solana: '#/components/schemas/SolanaVault'
          stacks: '#/components/schemas/StacksVault'
          starknet: '#/components/schemas/StarknetVault'
          sui: '#/components/schemas/SuiVault'
          ton: '#/components/schemas/TonVault'
          tron: '#/components/schemas/TronVault'
          utxo: '#/components/schemas/UtxoVault'
    GroupRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: >-
            The unique identifier of the address book group in the Fordefi
            platform.
        name:
          type: string
          title: Name
          description: The name of the group.
        contacts_count:
          type: integer
          title: Contacts Count
          description: The number of contacts in the group.
      type: object
      required:
        - id
        - name
        - contacts_count
      title: GroupRef
      description: Represents a reference to an address book group in the Fordefi platform.
    GroupUserRef:
      oneOf:
        - $ref: '#/components/schemas/PersonRef'
        - $ref: '#/components/schemas/ApiUserRef'
      description: Represents a reference to a group user in the Fordefi platform
      discriminator:
        propertyName: user_type
        mapping:
          api_user: '#/components/schemas/ApiUserRef'
          person: '#/components/schemas/PersonRef'
    ImportKeysStatus:
      type: string
      enum:
        - not_started
        - in_progress
        - completed
      title: ImportKeysStatus
    ImportVaultAddressOptions:
      properties:
        derivation_path:
          type: string
          pattern: ^(m/44/[0-9]+/[0-9]+/[0-9]+/[0-9]+|m)$
          title: Derivation Path
          description: The BIP-32 derivation path of the address.
          example: m/44/60/0/0/0
      type: object
      required:
        - derivation_path
      title: ImportVaultAddressOptions
    ImportVaultDefaultOptions:
      properties:
        derivation_path:
          title: Derivation Path
          description: The BIP-32 derivation path of the vault.
          example: m/44/60/0/0/0
          type: string
          pattern: ^(m/44/[0-9]+/[0-9]+/[0-9]+/[0-9]+|m)$
        key_id:
          type: string
          format: uuid
          title: Key Id
          description: The ID of the imported key to use for the vault.
      type: object
      required:
        - key_id
      title: ImportVaultDefaultOptions
    ImportVaultUtxoOptions:
      properties:
        default_address_derivation_path:
          type: string
          pattern: ^(m/44/[0-9]+/[0-9]+/[0-9]+/[0-9]+|m)$
          title: Default Address Derivation Path
          description: The BIP-32 derivation path of the default address.
          example: m/44/60/0/0/0
        default_address_name:
          type: string
          title: Default Address Name
          description: The name of the default address.
        key_id:
          type: string
          format: uuid
          title: Key Id
          description: The ID of the imported key to use for the default address.
      type: object
      required:
        - default_address_derivation_path
        - default_address_name
        - key_id
      title: ImportVaultUtxoOptions
    InstructionError:
      properties:
        error_type:
          type: string
          title: Error Type
          description: The type of the error of the instruction.
        instruction_index:
          type: integer
          title: Instruction Index
          description: The index of the instruction.
        error_description:
          title: Error Description
          description: The description of the error of the instruction.
          type: string
      type: object
      required:
        - error_type
        - instruction_index
      title: InstructionError
    IntegerHashPayload:
      properties:
        format:
          type: string
          const: hash_integer
          title: Format
          description: ''
        hash_integer:
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Hash Integer
          description: >-
            The payload to sign, as a big-endian integer. Only relevant for
            Stark curve signatures.
      type: object
      required:
        - format
        - hash_integer
      title: IntegerHashPayload
    InvalidAssetRequest:
      properties:
        type:
          type: string
          const: invalid_asset
          title: Type
        asset_identifier_request:
          $ref: '#/components/schemas/AssetIdentifierRequest'
          description: The invalid asset identifier.
        error:
          type: string
          title: Error
          description: The error message.
      type: object
      required:
        - type
        - asset_identifier_request
        - error
      title: InvalidAssetRequest
    IssueAuthTokenRequest:
      oneOf:
        - $ref: '#/components/schemas/IssueEndUserAuthTokenRequest'
      discriminator:
        propertyName: user_type
        mapping:
          end_user: '#/components/schemas/IssueEndUserAuthTokenRequest'
    IssueAuthTokenResponse:
      $ref: '#/components/schemas/IssueEndUserAuthTokenResponse'
      title: IssueAuthTokenResponse
    IssueEndUserAuthTokenErrorType:
      type: string
      enum:
        - cannot_issue_token_for_user_type
      title: IssueEndUserAuthTokenErrorType
    IssueEndUserAuthTokenRequest:
      properties:
        user_type:
          type: string
          const: end_user
          title: User Type
          description: The type of the user.
        user_id:
          type: string
          format: uuid
          title: User Id
          description: ID of the end user to issue the authorization token for.
        expiration:
          type: integer
          maximum: 315360000
          minimum: 1
          title: Expiration
          description: 'Token expiration in seconds (default: 1 day).'
          default: 86400
      type: object
      required:
        - user_type
        - user_id
      title: IssueEndUserAuthTokenRequest
    IssueEndUserAuthTokenResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        user_id:
          type: string
          format: uuid
          title: User Id
          description: ID of the end user the authorization token is issued for.
        expired_at:
          type: string
          format: date-time
          title: Expired At
          description: Token expiration time.
        user_type:
          type: string
          const: end_user
          title: User Type
          description: The type of the user.
        access_token:
          type: string
          title: Access Token
          description: New access token for the user.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - user_id
        - expired_at
        - user_type
        - access_token
      title: IssueEndUserAuthTokenResponse
    JitoCustomFeeRequest:
      properties:
        type:
          type: string
          const: custom
          title: Type
        jito_tip:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Jito Tip
          description: The Jito tip to use in the transaction (In lamports).
          example: '1000000000000000000'
      type: object
      required:
        - type
        - jito_tip
      title: JitoCustomFeeRequest
    JitoPriorityFeeRequest:
      properties:
        type:
          type: string
          const: priority
          title: Type
        priority_level:
          $ref: '#/components/schemas/FeePriorityLevelRequest'
          description: >-
            Using the Jito Priority option, you allocate the range of tip you
            are willing to add: low (50% of landed tip amounts), medium (75%),
            or high (95%). Fordefi then does its best to achieve success with
            Jito, based on these parameters.
      type: object
      required:
        - type
        - priority_level
      title: JitoPriorityFeeRequest
    KeyOriginType:
      type: string
      enum:
        - native
        - imported
      title: KeyOriginType
    KeyShares:
      properties:
        device:
          title: Device
          description: Device latest encrypted share for the key.
          type: string
          example: SGVsbG8=
        platform:
          title: Platform
          description: >-
            Platform encrypted shares for the key. Whether it contains one or
            two shares depends on the backup type.
          items:
            type: string
            example: SGVsbG8=
          type: array
      type: object
      title: KeyShares
    KeyType:
      type: string
      enum:
        - ecdsa_secp256k1
        - eddsa_ed25519
        - ecdsa_stark
        - schnorr_secp256k1
      title: KeyType
    KeysetKey:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The ID of the key.
        xpub:
          type: string
          title: Xpub
          description: >-
            The xpub encoding of the key. For more details, see
            https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#serialization-format
        encrypted_shares:
          $ref: '#/components/schemas/KeyShares'
          description: Encrypted shares for the key.
        chain_code:
          type: string
          title: Chain Code
          description: The chain code of the key. It is used to derive child keys.
          example: SGVsbG8=
      type: object
      required:
        - id
        - xpub
        - encrypted_shares
        - chain_code
      title: KeysetKey
    KeysetRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the keyset in the Fordefi platform.
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the keyset.
        scope:
          $ref: '#/components/schemas/KeysetScope'
          description: The scope of the keyset.
      type: object
      required:
        - id
        - name
        - scope
      title: KeysetRef
      description: Represents a reference to a keyset in the Fordefi platform
    KeysetScope:
      type: string
      enum:
        - organization
        - user
      title: KeysetScope
      description: Represents a keyset scope in the Fordefi platform
    KnownAssetStacksPostCondition:
      properties:
        address:
          $ref: '#/components/schemas/EnrichedStacksAddress'
          description: The address this post condition applies to.
        condition_code:
          $ref: '#/components/schemas/StacksPostConditionComparator'
          description: The condition code of the post condition.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the asset this post condition applies to.
          example: '1000000000000000000'
        type:
          type: string
          const: known_asset
          title: Type
          description: The type of the post condition.
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset this post condition applies to.
      type: object
      required:
        - address
        - condition_code
        - amount
        - type
        - priced_asset
      title: KnownAssetStacksPostCondition
    LegacyGas:
      properties:
        price:
          type: string
          pattern: ^\d+$
          title: Price
          description: The price of a gas unit.
          example: '1000000000000000000'
        priority:
          $ref: '#/components/schemas/GasPriorityLevel'
          description: The gas priority.
        limit:
          type: string
          pattern: ^\d+$
          title: Limit
          description: The gas limit.
          example: '1000000000000000000'
        type:
          type: string
          const: legacy
          title: Type
          description: The type of gas data.
      type: object
      required:
        - price
        - priority
        - limit
        - type
      title: LegacyGas
    LegacyGasFields:
      properties:
        price:
          type: string
          pattern: ^\d+$
          title: Price
          description: The price of a gas unit.
          example: '1000000000000000000'
      type: object
      required:
        - price
      title: LegacyGasFields
    LegacyGasRequest:
      properties:
        type:
          type: string
          const: legacy
          title: Type
          description: The type of gas data.
        price:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Price
          description: The price of a gas unit.
          example: '1000000000000000000'
      type: object
      required:
        - type
        - price
      title: LegacyGasRequest
    ListAddressBookContactResponse:
      properties:
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
        contacts:
          items:
            $ref: '#/components/schemas/AddressBookContact'
          type: array
          title: Contacts
      type: object
      required:
        - total
        - page
        - size
        - contacts
      title: ListAddressBookContactResponse
    ListAuditLogRecordsResponse:
      properties:
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
        audit_log_records:
          items:
            $ref: '#/components/schemas/AuditLogRecord'
          type: array
          title: Audit Log Records
      type: object
      required:
        - total
        - page
        - size
        - audit_log_records
      title: ListAuditLogRecordsResponse
    ListAuthTokensResponse:
      properties:
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
        auth_tokens:
          items:
            $ref: '#/components/schemas/AuthToken'
          type: array
          title: Auth Tokens
          description: Authorization tokens list.
      type: object
      required:
        - total
        - page
        - size
        - auth_tokens
      title: ListAuthTokensResponse
    ListBlockchainsResponse:
      properties:
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
        chains:
          items:
            $ref: '#/components/schemas/EnrichedChain'
          type: array
          title: Chains
      type: object
      required:
        - total
        - page
        - size
        - chains
      title: ListBlockchainsResponse
      description: A list of blockchains.
    ListEndUsersResponse:
      properties:
        total:
          title: Total
          type: integer
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
        end_users:
          items:
            $ref: '#/components/schemas/EndUser'
          type: array
          title: End Users
      type: object
      required:
        - page
        - size
        - end_users
      title: ListEndUsersResponse
    ListKeysResponse:
      properties:
        keys:
          items:
            $ref: '#/components/schemas/OrganizationMasterKey'
          type: array
          title: Keys
          description: The list of organization's active keys.
      type: object
      required:
        - keys
      title: ListKeysResponse
    ListOwnedAssetsResponse:
      properties:
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
        owned_assets:
          items:
            $ref: '#/components/schemas/OwnedAsset'
          type: array
          title: Owned Assets
      type: object
      required:
        - total
        - page
        - size
        - owned_assets
      title: ListOwnedAssetsResponse
    ListTransactionResponse:
      properties:
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
        transactions:
          items:
            $ref: '#/components/schemas/Transaction'
          type: array
          title: Transactions
      type: object
      required:
        - total
        - page
        - size
        - transactions
      title: ListTransactionResponse
    ListUserGroupsResponse:
      properties:
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
        user_groups:
          items:
            $ref: '#/components/schemas/UserGroup'
          type: array
          title: User Groups
      type: object
      required:
        - total
        - page
        - size
        - user_groups
      title: ListUserGroupsResponse
    ListUsersResponse:
      properties:
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
        users:
          items:
            $ref: '#/components/schemas/User'
          type: array
          title: Users
      type: object
      required:
        - total
        - page
        - size
        - users
      title: ListUsersResponse
    ListVaultAddressesResponse:
      properties:
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
        addresses:
          items:
            $ref: '#/components/schemas/UtxoVaultAddress'
          type: array
          title: Addresses
      type: object
      required:
        - total
        - page
        - size
        - addresses
      title: ListVaultAddressesResponse
    ListVaultGroupsFilterByAccessLevel:
      type: string
      enum:
        - view
        - create_edit
        - all
      title: ListVaultGroupsFilterByAccessLevel
    ListVaultGroupsResponse:
      properties:
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
        vault_groups:
          items:
            $ref: '#/components/schemas/VaultGroup'
          type: array
          title: Vault Groups
      type: object
      required:
        - total
        - page
        - size
        - vault_groups
      title: ListVaultGroupsResponse
    ListVaultsResponse:
      properties:
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
        vaults:
          items:
            $ref: '#/components/schemas/Vault'
          type: array
          title: Vaults
      type: object
      required:
        - total
        - page
        - size
        - vaults
      title: ListVaultsResponse
    ManagedTransactionData:
      properties:
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: The user who created the transaction.
        aborted_by:
          description: >-
            The user who aborted the transaction, `null` if the transaction was
            not aborted.
          $ref: '#/components/schemas/UserRef'
        device_signing_request:
          $ref: '#/components/schemas/ActionSigningRequest'
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          description: The policy match.
          $ref: '#/components/schemas/PolicyMatch'
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: >-
            The type of signer of the transaction. Can be one of the following:
            <ul><li>`initiator`: The creator of the transaction (default).
            <li>`api_signer`: An API Signer - a service that you run on your own
            network or cloud environment. <li>`multiple_signers`: An API Signer
            or a person that is part of the list of allowed
            signers.<li>`end_user`: An end user - a signature by a mobile device
            with a third-party app that uses Fordefi's Mobile SDK. </ul>In the
            case of `initiator`, a notification is expected to be sent to the
            initiator's mobile device for approval of the transaction. 
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        error_pushing_to_blockchain_message:
          title: Error Pushing To Blockchain Message
          description: >-
            The translated error message received from the node if it was
            rejected by it.
          type: string
        original_error_pushing_to_blockchain_message:
          title: Original Error Pushing To Blockchain Message
          description: The error message received from the node if it was rejected by it.
          type: string
        vault:
          $ref: '#/components/schemas/VaultRef'
          description: The vault creating the transaction.
        idempotence_id:
          title: Idempotence Id
          description: Optional idempotence ID of a transaction.
          type: string
          format: uuid
        has_current_user_vault_permissions:
          type: boolean
          title: Has Current User Vault Permissions
          description: >-
            Does current user have permissions to the origin vault according to
            its vault group permissions.
        batch_data:
          description: Batch data if the transaction is part of a batch.
          $ref: '#/components/schemas/BatchData'
        push_mode:
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul> 
          $ref: '#/components/schemas/PushMode'
        last_pushed_at:
          title: Last Pushed At
          description: The last time the transaction was pushed to the node.
          type: string
          format: date-time
        sign_mode:
          $ref: '#/components/schemas/SignMode'
          description: >-
            The sign mode of the transaction determines when the transaction
            will transition to the signing phase. It can be one of the
            following:<ul><li>`auto`: The transaction will move to signing
            automatically after approval.<li>`triggered`: The transaction will
            be in the `waiting_for_signing_trigger` state until "Trigger
            Transaction Signing" is called. Currently supported only for API
            Signer signer type.</ul>
          default: auto
      type: object
      required:
        - created_by
        - signer_type
        - risks
        - vault
        - has_current_user_vault_permissions
      title: ManagedTransactionData
    MasterPublicKey:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The ID of the key.
        xpub:
          type: string
          title: Xpub
          description: >-
            The xpub encoding of the key. For more details, see
            https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#serialization-format
      type: object
      required:
        - id
        - xpub
      title: MasterPublicKey
    MessagesList:
      oneOf:
        - $ref: '#/components/schemas/AminoMessagesList'
        - $ref: '#/components/schemas/DirectMessagesList'
        - $ref: '#/components/schemas/MinedMessagesList'
      discriminator:
        propertyName: format
        mapping:
          amino: '#/components/schemas/AminoMessagesList'
          direct: '#/components/schemas/DirectMessagesList'
          mined: '#/components/schemas/MinedMessagesList'
    MinedMessagesList:
      properties:
        format:
          type: string
          const: mined
          title: Format
        messages:
          type: string
          title: Messages
          description: List of messages of non-managed transaction.
      type: object
      required:
        - format
        - messages
      title: MinedMessagesList
    MinedSignDoc:
      properties:
        format:
          type: string
          const: mined
          title: Format
        messages:
          type: string
          title: Messages
          description: The messages of the transaction.
        chain:
          $ref: '#/components/schemas/EnrichedCosmosChain'
          description: The chain the transaction is signed on.
      type: object
      required:
        - format
        - messages
        - chain
      title: MinedSignDoc
    Mnemonic:
      properties:
        validation_hash:
          type: string
          title: Validation Hash
          example: SGVsbG8=
        type:
          type: string
          const: mnemonic
          title: Type
          description: Mnemonic backup type.
      type: object
      required:
        - validation_hash
        - type
      title: Mnemonic
    NonPushableTransactionState:
      type: string
      enum:
        - waiting_for_approval
        - waiting_for_signing_trigger
        - approved
        - signed
        - completed
        - error_signing
        - aborted
      title: NonPushableTransactionState
    NonPushableTransactionStateChange:
      properties:
        changed_at:
          type: string
          format: date-time
          title: Changed At
          description: The date and time when the state was changed.
        reason:
          description: The reason for the state change.
          $ref: '#/components/schemas/StateChangeReason'
        previous_state:
          description: The previous state of the message.
          $ref: '#/components/schemas/NonPushableTransactionState'
        new_state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The new state of the message.
      type: object
      required:
        - changed_at
        - new_state
      title: NonPushableTransactionStateChange
    OrganizationMasterKey:
      properties:
        key_id:
          type: string
          format: uuid
          title: Key Id
          description: The ID of the imported key.
        key_name:
          type: string
          title: Key Name
          description: The name of the imported key.
        key_type:
          $ref: '#/components/schemas/KeyType'
          description: The type of the imported key.
        key_origin:
          $ref: '#/components/schemas/KeyOriginType'
          description: The origin of the key.
        xpub:
          type: string
          title: Xpub
          description: >-
            The xpub encoding of the key. For more details, see
            https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#serialization-format
        public_key_compressed:
          type: string
          title: Public Key Compressed
          description: >-
            The public key of the vault in its compressed form: <ul> <li>For
            ECDSA and Schnorr keys, the public key is represented as 33 bytes
            (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1
            standard](https://www.secg.org/SEC1-Ver-1.0.pdf). <li>For EdDSA, the
            public key is represented as a 32-byte value, as defined by [RFC
            8032](https://datatracker.ietf.org/doc/html/rfc8032). </ul>
          example: SGVsbG8=
        supports_derivation:
          type: boolean
          title: Supports Derivation
          description: >-
            Whether the key supports BIP-32 derivation. Standalone private keys
            do not support derivation. 
      type: object
      required:
        - key_id
        - key_name
        - key_type
        - key_origin
        - xpub
        - public_key_compressed
        - supports_derivation
      title: OrganizationMasterKey
    OwnedAsset:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
        balances:
          $ref: '#/components/schemas/Balances'
      type: object
      required:
        - priced_asset
        - balance
        - balances
      title: OwnedAsset
    OwnedAssetsSortableFields:
      type: string
      enum:
        - asset_name_asc
        - asset_name_desc
        - chain_identifier_asc
        - chain_identifier_desc
        - balance_asc
        - balance_desc
        - market_value_asc
        - market_value_desc
        - price_asc
        - price_desc
      title: OwnedAssetsSortableFields
    PageResponseType:
      type: string
      enum:
        - fail_on_error
        - include_errors_in_response
      title: PageResponseType
      description: >-
        PaginatedResponseListType represents the type of the paginated response
        list.

        FAIL_ON_ERROR: The response will fail if there are any errors.

        INCLUDE_ERRONEOUS: The response will include erroneous items.
    PartialErrorResponse:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/ErroneousItem'
          type: array
          title: Errors
          description: Items that were excluded from the response due to an error.
        request_id:
          anyOf:
            - type: string
            - type: string
              format: binary
          title: Request Id
          description: The unique identifier of the request.
      type: object
      required:
        - errors
      title: PartialErrorResponse
    PendingUserChangeRef:
      properties:
        new_role:
          type: string
          enum:
            - admin
            - trader
          title: New Role
          description: The new role of the user.
        change_request_id:
          type: string
          format: uuid
          title: Change Request Id
          description: The unique identifier of the change request.
      type: object
      required:
        - new_role
        - change_request_id
      title: PendingUserChangeRef
    PendingVaultGroupActionAdd:
      properties:
        type:
          type: string
          const: add
          title: Type
          description: Add vault pending action type.
        vault_group_id:
          type: string
          format: uuid
          title: Vault Group Id
          description: The ID of the vault group this vault will be moved to.
        vault_group_name:
          type: string
          title: Vault Group Name
          description: The Name of the vault group this vault will be moved to.
      type: object
      required:
        - type
        - vault_group_id
        - vault_group_name
      title: PendingVaultGroupActionAdd
    PendingVaultGroupActionRemove:
      properties:
        type:
          type: string
          const: remove
          title: Type
          description: Remove vault pending action type.
      type: object
      required:
        - type
      title: PendingVaultGroupActionRemove
    Permit2TypedMessageEvmMessage:
      properties:
        domain:
          $ref: '#/components/schemas/EvmMessageDomainData'
          description: The domain data.
        primary_type:
          type: string
          title: Primary Type
          description: Used to identify the primary type of the message.
        type:
          type: string
          const: permit2
          title: Type
          description: The typed message type.
        spender:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The spender.
        deadline:
          type: string
          format: date-time
          title: Deadline
          description: Signature deadline.
        token:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The token for which the permission is required
        value:
          type: string
          pattern: ^-?\d+$
          title: Value
          description: The amount to permit.
          example: '1000000000000000000'
        expiration:
          type: string
          format: date-time
          title: Expiration
          description: Expiration of the permit.
        nonce:
          type: integer
          title: Nonce
          description: The nonce.
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
      type: object
      required:
        - domain
        - primary_type
        - type
        - spender
        - deadline
        - token
        - value
        - expiration
        - nonce
        - priced_asset
      title: Permit2TypedMessageEvmMessage
    PermitTypedMessageEvmMessage:
      properties:
        domain:
          $ref: '#/components/schemas/EvmMessageDomainData'
          description: The domain data.
        primary_type:
          type: string
          title: Primary Type
          description: Used to identify the primary type of the message.
        type:
          type: string
          const: permit
          title: Type
          description: The typed message type.
        owner:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The owner.
        spender:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The spender.
        value:
          type: string
          pattern: ^-?\d+$
          title: Value
          description: The value.
          example: '1000000000000000000'
        deadline:
          type: string
          format: date-time
          title: Deadline
          description: The deadline.
        nonce:
          type: integer
          title: Nonce
          description: The nonce.
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
      type: object
      required:
        - domain
        - primary_type
        - type
        - owner
        - spender
        - value
        - deadline
        - nonce
        - priced_asset
      title: PermitTypedMessageEvmMessage
    Person:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        user_type:
          type: string
          const: person
          title: User Type
          description: The type of the user.
        name:
          title: Name
          description: The name of the user.
          example: John Doe
          type: string
        email:
          type: string
          title: Email
          description: The email of the user.
        state:
          $ref: '#/components/schemas/UserState'
          description: >-
            The state of the user. Is one of: <ul><li>`active`: The user can
            perform all actions in the Fordefi platform.<li>`onboarding`: The
            user has been approved but still needs to activate the
            account.<li>`pending_approval`: The user has been invited but not
            yet approved.<li>`deleted`: The user has been deleted.</ul>
        is_new_device_provisioning:
          type: boolean
          title: Is New Device Provisioning
          description: >-
            `True` if the user is provisioning a new device, or is onboarding
            into an organization; `False` otherwise.
        welcome_message_acknowledged_at:
          type: string
          format: date-time
          title: Welcome Message Acknowledged At
          description: The time when welcome message was displayed and acknowledge.
        role:
          $ref: '#/components/schemas/UserRole'
          description: The role of the user.
        user_groups:
          title: User Groups
          description: The groups the user belongs to.
          items:
            $ref: '#/components/schemas/UserGroupRef'
          type: array
        pending_addition_to_user_groups:
          title: Pending Addition To User Groups
          description: The groups the user is pending to be added to.
          items:
            $ref: '#/components/schemas/UserGroupRef'
          type: array
        pending_removal_from_user_groups:
          title: Pending Removal From User Groups
          description: The groups the user is pending to be removed from.
          items:
            $ref: '#/components/schemas/UserGroupRef'
          type: array
        pending_change:
          description: The pending change of the user.
          $ref: '#/components/schemas/PendingUserChangeRef'
        device_backup_info:
          description: The device backup information.
          $ref: '#/components/schemas/DeviceBackupInfoExt'
      type: object
      required:
        - id
        - created_at
        - modified_at
        - user_type
        - email
        - state
        - is_new_device_provisioning
        - welcome_message_acknowledged_at
        - role
      title: Person
      description: Represents a human user in the Fordefi platform
    PersonRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the user in the Fordefi platform.
        user_type:
          type: string
          const: person
          title: User Type
          description: >-
            The type of user. Can be a person, or (in programmatic scenarios) an
            API user or API Signer.
        name:
          title: Name
          description: The name of the user.
          example: John Doe
          type: string
        email:
          type: string
          title: Email
          description: The email of the user.
        state:
          $ref: '#/components/schemas/UserState'
          description: The state of the user in the organization.
        role:
          $ref: '#/components/schemas/UserRole'
          description: The role of the user.
      type: object
      required:
        - id
        - user_type
        - email
        - state
        - role
      title: PersonRef
    PolicyMatch:
      properties:
        is_default:
          type: boolean
          title: Is Default
          description: '`True` if this is the default rule, `False` otherwise.'
        rule_id:
          type: string
          format: uuid
          title: Rule Id
          description: The unique identifier of the rule.
        rule_name:
          type: string
          title: Rule Name
          description: The name of the rule.
        action_type:
          $ref: '#/components/schemas/TransactionPolicyMatchActionType'
          description: >-
            The action taken in the event of a policy match. Can be: <ul><li>
            Allow automatically<li> Block<li> Require express approval</ul>
      type: object
      required:
        - is_default
        - rule_id
        - rule_name
        - action_type
      title: PolicyMatch
    PreconditionFailedError:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
        system_error_code:
          title: System Error Code
          description: An additional system error code in Fordefi.
          type: string
      type: object
      required:
        - title
        - detail
      title: PreconditionFailedError
    PredictAptosSerializedRawTransactionRequest:
      properties:
        type:
          type: string
          const: aptos_serialized_entry_point_payload
          title: Type
          description: An Aptos transaction with serialized entry point payload.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        gas_config:
          description: The gas configuration for the transaction.
          $ref: '#/components/schemas/AptosGasConfigRequest'
        chain:
          $ref: '#/components/schemas/AptosChainUniqueId'
          description: >-
            The chain that this transaction is on. Specify the chain name (for
            example, `aptos_mainnet`).
        serialized_transaction_payload:
          type: string
          title: Serialized Transaction Payload
          description: The serialized transaction payload in base64 format.
          example: SGVsbG8=
        skip_simulation:
          type: boolean
          title: Skip Simulation
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the
            `simulation_status` will be `skipped` and the `expected_result` of
            the transaction will be empty. The policy will be applied on
            information that can be extracted statically from the transaction
            only. This might result in falling back to the default policy rule.
            <br> Note, it is recommended to use the default setting for this
            field and to turn off `fail_on_prediction_failure` instead - unless
            you wish to save time by omitting the prediction phase entirely. 
          default: false
      type: object
      required:
        - type
        - chain
        - serialized_transaction_payload
      title: PredictAptosSerializedRawTransactionRequest
    PredictAptosTransferRequest:
      properties:
        type:
          type: string
          const: aptos_transfer
          title: Type
          description: >-
            An Aptos transfer transaction. A transaction of this kind is for
            transferring native currency or a coin.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        gas_config:
          description: The gas configuration for the transaction.
          $ref: '#/components/schemas/AptosGasConfigRequest'
        to:
          oneOf:
            - $ref: '#/components/schemas/AptosRecipientHex'
            - $ref: '#/components/schemas/RecipientVaultId'
          discriminator:
            propertyName: type
            mapping:
              hex: '#/components/schemas/AptosRecipientHex'
              vault_id: '#/components/schemas/RecipientVaultId'
        value:
          oneOf:
            - $ref: '#/components/schemas/CreateTransferRequestExplicitAmount'
            - $ref: '#/components/schemas/CreateTransferRequestMaxAmount'
          description: The number of units of currency to transfer.
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateTransferRequestMaxAmount'
              value: '#/components/schemas/CreateTransferRequestExplicitAmount'
        asset_identifier:
          $ref: '#/components/schemas/AptosAssetIdentifierRequest'
          description: The Aptos asset identifier to transfer.
        skip_simulation:
          type: boolean
          title: Skip Simulation
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the
            `simulation_status` will be `skipped` and the `expected_result` of
            the transaction will be empty. The policy will be applied on
            information that can be extracted statically from the transaction
            only. This might result in falling back to the default policy rule.
            <br> Note, it is recommended to use the default setting for this
            field and to turn off `fail_on_prediction_failure` instead - unless
            you wish to save time by omitting the prediction phase entirely. 
          default: false
      type: object
      required:
        - type
        - to
        - value
        - asset_identifier
      title: PredictAptosTransferRequest
    PredictBatchSolanaTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: solana_transaction
          title: Type
          description: The type of the transaction.
        details:
          oneOf:
            - $ref: '#/components/schemas/BatchSolanaTransactionRequestDetails'
          discriminator:
            propertyName: type
            mapping:
              solana_raw_transaction: '#/components/schemas/BatchSolanaTransactionRequestDetails'
      type: object
      required:
        - vault_id
        - type
        - details
      title: PredictBatchSolanaTransactionRequest
    PredictBatchTransactionRequest:
      oneOf:
        - $ref: '#/components/schemas/PredictBatchSolanaTransactionRequest'
      discriminator:
        propertyName: type
        mapping:
          solana_transaction: '#/components/schemas/PredictBatchSolanaTransactionRequest'
    PredictBatchTransactionResponse:
      oneOf:
        - $ref: '#/components/schemas/PredictedSolanaTransaction'
      discriminator:
        propertyName: type
        mapping:
          solana_transaction: '#/components/schemas/PredictedSolanaTransaction'
    PredictStacksTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: stacks_transaction
          title: Type
          description: Stacks transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateStacksTransferRequest'
            - $ref: '#/components/schemas/CreateStacksTransactionSerializedRequest'
          discriminator:
            propertyName: type
            mapping:
              stacks_serialized_transaction: '#/components/schemas/CreateStacksTransactionSerializedRequest'
              stacks_transfer: '#/components/schemas/CreateStacksTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: PredictStacksTransactionRequest
    PredictStarknetMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: starknet_message
          title: Type
          description: Starknet message type.
        details:
          $ref: '#/components/schemas/StarknetTypedMessageRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: PredictStarknetMessageRequest
    PredictStarknetTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: starknet_transaction
          title: Type
          description: Starknet transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateStarknetTransferRequest'
            - $ref: '#/components/schemas/CreateStarknetTransactionInvokeRequest'
            - $ref: '#/components/schemas/CreateStarknetContractDeploymentRequest'
          discriminator:
            propertyName: type
            mapping:
              starknet_contract_call: '#/components/schemas/CreateStarknetTransactionInvokeRequest'
              starknet_contract_deployment: '#/components/schemas/CreateStarknetContractDeploymentRequest'
              starknet_transfer: '#/components/schemas/CreateStarknetTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: PredictStarknetTransactionRequest
    PredictTonSerializedRawTransactionRequest:
      properties:
        type:
          type: string
          const: ton_raw_transaction
          title: Type
          description: An Ton transaction with raw payload.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise.
          default: true
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        chain:
          $ref: '#/components/schemas/TonChainUniqueId'
          description: >-
            The chain that this transaction is on. Specify the chain name (for
            example, `ton_mainnet`).
        transaction_payload:
          $ref: '#/components/schemas/TonTransactionPayload'
          description: The transaction payload
        skip_simulation:
          type: boolean
          title: Skip Simulation
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the
            `simulation_status` will be `skipped` and the `expected_result` of
            the transaction will be empty. The policy will be applied on
            information that can be extracted statically from the transaction
            only. This might result in falling back to the default policy rule.
            <br> Note, it is recommended to use the default setting for this
            field and to turn off `fail_on_prediction_failure` instead - unless
            you wish to save time by omitting the prediction phase entirely. 
          default: false
      type: object
      required:
        - type
        - chain
        - transaction_payload
      title: PredictTonSerializedRawTransactionRequest
    PredictTonTransferRequest:
      properties:
        type:
          type: string
          const: ton_transfer
          title: Type
          description: >-
            An TON transfer transaction. A transaction of this kind is for
            transferring native currency or a jetton.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise.
          default: true
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        to:
          oneOf:
            - $ref: '#/components/schemas/TonRecipientHex'
            - $ref: '#/components/schemas/RecipientVaultId'
          discriminator:
            propertyName: type
            mapping:
              hex: '#/components/schemas/TonRecipientHex'
              vault_id: '#/components/schemas/RecipientVaultId'
        value:
          oneOf:
            - $ref: '#/components/schemas/CreateTransferRequestExplicitAmount'
            - $ref: '#/components/schemas/CreateTransferRequestMaxAmount'
          description: The number of units of currency to transfer.
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateTransferRequestMaxAmount'
              value: '#/components/schemas/CreateTransferRequestExplicitAmount'
        asset_identifier:
          $ref: '#/components/schemas/TonAssetIdentifierRequest'
          description: The TON asset identifier to transfer.
        comment:
          title: Comment
          description: A comment to attach to the transaction.
          type: string
        skip_simulation:
          type: boolean
          title: Skip Simulation
          description: >-
            `True` to create a transaction without prediction, `False`
            otherwise. <br> In case of skipping simulation, the
            `simulation_status` will be `skipped` and the `expected_result` of
            the transaction will be empty. The policy will be applied on
            information that can be extracted statically from the transaction
            only. This might result in falling back to the default policy rule.
            <br> Note, it is recommended to use the default setting for this
            field and to turn off `fail_on_prediction_failure` instead - unless
            you wish to save time by omitting the prediction phase entirely. 
          default: false
      type: object
      required:
        - type
        - to
        - value
        - asset_identifier
      title: PredictTonTransferRequest
    PredictTransactionErrorType:
      type: string
      enum:
        - vault_not_found
        - invalid_evm_message
        - invalid_evm_transaction_data
        - reverted_transaction
        - transaction_to_non_contract
        - vault_type_mismatch
        - dust_not_allowed
        - insecure_key_derivation
        - missing_secret_key_or_recent_blockhash
        - missing_secret_key_or_signature
        - revoke_allowance_gas_limit_too_high
        - priority_fee_already_set
        - quote_not_found
      title: PredictTransactionErrorType
    PredictTransactionRequest:
      oneOf:
        - $ref: '#/components/schemas/TransactionPredictAptosMessageRequest'
        - $ref: '#/components/schemas/TransactionPredictAptosTransactionRequest'
        - $ref: '#/components/schemas/TransactionPredictCosmosTransactionRequest'
        - $ref: '#/components/schemas/TransactionPredictCosmosMessageRequest'
        - $ref: '#/components/schemas/TransactionPredictEvmMessageRequest'
        - $ref: '#/components/schemas/TransactionPredictEvmTransactionRequest'
        - $ref: '#/components/schemas/TransactionPredictExchangeTransactionRequest'
        - $ref: '#/components/schemas/TransactionPredictSolanaMessageRequest'
        - $ref: '#/components/schemas/TransactionPredictSolanaTransactionRequest'
        - $ref: '#/components/schemas/PredictStacksTransactionRequest'
        - $ref: '#/components/schemas/PredictStarknetMessageRequest'
        - $ref: '#/components/schemas/PredictStarknetTransactionRequest'
        - $ref: '#/components/schemas/TransactionPredictSuiMessageRequest'
        - $ref: '#/components/schemas/TransactionPredictSuiTransactionRequest'
        - $ref: '#/components/schemas/TransactionPredictTonMessageRequest'
        - $ref: '#/components/schemas/TransactionPredictTonTransactionRequest'
        - $ref: '#/components/schemas/TransactionPredictTronTransactionRequest'
        - $ref: '#/components/schemas/TransactionPredictUtxoMessageRequest'
        - $ref: '#/components/schemas/TransactionPredictUtxoTransactionRequest'
      discriminator:
        propertyName: type
        mapping:
          aptos_message: '#/components/schemas/TransactionPredictAptosMessageRequest'
          aptos_transaction: '#/components/schemas/TransactionPredictAptosTransactionRequest'
          cosmos_message: '#/components/schemas/TransactionPredictCosmosMessageRequest'
          cosmos_transaction: '#/components/schemas/TransactionPredictCosmosTransactionRequest'
          evm_message: '#/components/schemas/TransactionPredictEvmMessageRequest'
          evm_transaction: '#/components/schemas/TransactionPredictEvmTransactionRequest'
          exchange_transaction: '#/components/schemas/TransactionPredictExchangeTransactionRequest'
          solana_message: '#/components/schemas/TransactionPredictSolanaMessageRequest'
          solana_transaction: '#/components/schemas/TransactionPredictSolanaTransactionRequest'
          stacks_transaction: '#/components/schemas/PredictStacksTransactionRequest'
          starknet_message: '#/components/schemas/PredictStarknetMessageRequest'
          starknet_transaction: '#/components/schemas/PredictStarknetTransactionRequest'
          sui_message: '#/components/schemas/TransactionPredictSuiMessageRequest'
          sui_transaction: '#/components/schemas/TransactionPredictSuiTransactionRequest'
          ton_message: '#/components/schemas/TransactionPredictTonMessageRequest'
          ton_transaction: '#/components/schemas/TransactionPredictTonTransactionRequest'
          tron_transaction: '#/components/schemas/TransactionPredictTronTransactionRequest'
          utxo_message: '#/components/schemas/TransactionPredictUtxoMessageRequest'
          utxo_transaction: '#/components/schemas/TransactionPredictUtxoTransactionRequest'
    PredictTransactionResponse:
      oneOf:
        - $ref: '#/components/schemas/PredictedAptosMessage'
        - $ref: '#/components/schemas/PredictedAptosTransaction'
        - $ref: '#/components/schemas/PredictedCosmosTransaction'
        - $ref: '#/components/schemas/PredictedCosmosMessage'
        - $ref: '#/components/schemas/PredictedEvmMessage'
        - $ref: '#/components/schemas/PredictedEvmTransaction'
        - $ref: '#/components/schemas/PredictedExchangeTransaction'
        - $ref: '#/components/schemas/PredictedSolanaMessage'
        - $ref: '#/components/schemas/PredictedSolanaTransaction'
        - $ref: '#/components/schemas/PredictedStacksTransaction'
        - $ref: '#/components/schemas/PredictedStarknetMessage'
        - $ref: '#/components/schemas/PredictedStarknetTransaction'
        - $ref: '#/components/schemas/PredictedSuiMessage'
        - $ref: '#/components/schemas/PredictedSuiTransaction'
        - $ref: '#/components/schemas/PredictedTonMessage'
        - $ref: '#/components/schemas/PredictedTonTransaction'
        - $ref: '#/components/schemas/PredictedTronTransaction'
        - $ref: '#/components/schemas/PredictedUtxoMessage'
        - $ref: '#/components/schemas/PredictedUtxoTransaction'
      discriminator:
        propertyName: type
        mapping:
          aptos_message: '#/components/schemas/PredictedAptosMessage'
          aptos_transaction: '#/components/schemas/PredictedAptosTransaction'
          cosmos_message: '#/components/schemas/PredictedCosmosMessage'
          cosmos_transaction: '#/components/schemas/PredictedCosmosTransaction'
          evm_message: '#/components/schemas/PredictedEvmMessage'
          evm_transaction: '#/components/schemas/PredictedEvmTransaction'
          exchange_transaction: '#/components/schemas/PredictedExchangeTransaction'
          solana_message: '#/components/schemas/PredictedSolanaMessage'
          solana_transaction: '#/components/schemas/PredictedSolanaTransaction'
          stacks_transaction: '#/components/schemas/PredictedStacksTransaction'
          starknet_message: '#/components/schemas/PredictedStarknetMessage'
          starknet_transaction: '#/components/schemas/PredictedStarknetTransaction'
          sui_message: '#/components/schemas/PredictedSuiMessage'
          sui_transaction: '#/components/schemas/PredictedSuiTransaction'
          ton_message: '#/components/schemas/PredictedTonMessage'
          ton_transaction: '#/components/schemas/PredictedTonTransaction'
          tron_transaction: '#/components/schemas/PredictedTronTransaction'
          utxo_message: '#/components/schemas/PredictedUtxoMessage'
          utxo_transaction: '#/components/schemas/PredictedUtxoTransaction'
    PredictedAptosMessage:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: aptos_message
          title: Type
          description: Aptos message type.
        chain:
          $ref: '#/components/schemas/EnrichedAptosChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedAptosAddress'
          description: The sender of the message.
        aptos_message_type:
          $ref: '#/components/schemas/AptosMessageType'
          description: The type of the Aptos message.
        message_to_display:
          type: string
          title: Message To Display
          description: User-friendly formatting of the message to be signed.
      type: object
      required:
        - policy_match
        - risks
        - type
        - chain
        - sender
        - aptos_message_type
        - message_to_display
      title: PredictedAptosMessage
    PredictedAptosTransaction:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        type:
          type: string
          const: aptos_transaction
          title: Type
          description: Aptos transaction type.
        expected_result:
          $ref: '#/components/schemas/AptosTransactionResult'
          description: The expected result of the transaction in case it is mined.
        chain:
          $ref: '#/components/schemas/EnrichedAptosChain'
          description: The details of the chain that this transaction is on.
        simulation_status_result:
          $ref: '#/components/schemas/SimulationStatusResult'
          description: Whether simulation succeeded, reverted or failed.
        payload:
          oneOf:
            - $ref: '#/components/schemas/AptosEntryFunctionPayload'
            - $ref: '#/components/schemas/ScriptPayload'
          description: The payload of the transaction.
          discriminator:
            propertyName: type
            mapping:
              entry_point: '#/components/schemas/AptosEntryFunctionPayload'
              script: '#/components/schemas/ScriptPayload'
        aptos_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/AptosNativeTransferDetails'
            - $ref: '#/components/schemas/AptosCoinTransferDetails'
            - $ref: '#/components/schemas/AptosEntryPointDetails'
            - $ref: '#/components/schemas/AptosScriptDetails'
          description: Details of the Aptos transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              coin_transfer: '#/components/schemas/AptosCoinTransferDetails'
              entry_point: '#/components/schemas/AptosEntryPointDetails'
              native_transfer: '#/components/schemas/AptosNativeTransferDetails'
              script: '#/components/schemas/AptosScriptDetails'
        suggested_fees:
          $ref: '#/components/schemas/AptosSuggestedFees'
          description: The suggested fees.
        gas_submitted:
          $ref: '#/components/schemas/AptosGasData'
          description: The gas details submitted for the transaction.
        sender:
          $ref: '#/components/schemas/EnrichedAptosAddress'
          description: The sender of the transaction.
      type: object
      required:
        - policy_match
        - risks
        - type
        - expected_result
        - chain
        - simulation_status_result
        - payload
        - aptos_transaction_type_details
        - suggested_fees
        - gas_submitted
        - sender
      title: PredictedAptosTransaction
    PredictedCosmosMessage:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: cosmos_message
          title: Type
          description: The type of the transaction.
        chain:
          $ref: '#/components/schemas/EnrichedCosmosChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
          description: The sender of the message.
        cosmos_message_type:
          $ref: '#/components/schemas/CosmosMessageType'
          description: The type of the Cosmos message.
        message_to_display:
          type: string
          title: Message To Display
          description: User-friendly formatting of the message to be signed.
      type: object
      required:
        - policy_match
        - risks
        - type
        - chain
        - sender
        - cosmos_message_type
        - message_to_display
      title: PredictedCosmosMessage
    PredictedCosmosTransaction:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        type:
          type: string
          const: cosmos_transaction
          title: Type
          description: The type of the transaction.
        expected_result:
          $ref: '#/components/schemas/CosmosTransactionResult'
          description: The expected result of the transaction in case it is mined.
        chain:
          $ref: '#/components/schemas/EnrichedCosmosChain'
          description: The details of the chain this transaction is on.
        cosmos_transaction_type_details:
          $ref: '#/components/schemas/CosmosTransactionTypeDetails'
          description: Transaction details
        memo:
          title: Memo
          description: Transaction memo.
          default: ''
          type: string
        sender:
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
          description: The sender.
        suggested_fees:
          $ref: '#/components/schemas/CosmosSuggestedFees'
          description: The suggested fees.
      type: object
      required:
        - policy_match
        - risks
        - type
        - expected_result
        - chain
        - cosmos_transaction_type_details
        - sender
        - suggested_fees
      title: PredictedCosmosTransaction
    PredictedEvmMessage:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: evm_message
          title: Type
          description: The type of the transaction.
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The sender of the message.
        evm_message_type:
          $ref: '#/components/schemas/EvmMessageType'
          description: The type of the EVM message.
        typed_data:
          description: The typed data of the messages.
          oneOf:
            - $ref: '#/components/schemas/UnknownTypedMessageEvmMessage'
            - $ref: '#/components/schemas/PermitTypedMessageEvmMessage'
            - $ref: '#/components/schemas/Permit2TypedMessageEvmMessage'
          discriminator:
            propertyName: type
            mapping:
              permit: '#/components/schemas/PermitTypedMessageEvmMessage'
              permit2: '#/components/schemas/Permit2TypedMessageEvmMessage'
              unknown: '#/components/schemas/UnknownTypedMessageEvmMessage'
        message_to_display:
          type: string
          title: Message To Display
          description: User-friendly formatting of the message to be signed.
      type: object
      required:
        - policy_match
        - risks
        - type
        - chain
        - sender
        - evm_message_type
        - message_to_display
      title: PredictedEvmMessage
    PredictedEvmTransaction:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        type:
          type: string
          const: evm_transaction
          title: Type
          description: The type of the transaction.
        expected_result:
          $ref: '#/components/schemas/EvmTransactionResult'
          description: The expected result of the transaction in case it is mined.
        chain:
          $ref: '#/components/schemas/EnrichedEvmChain'
          description: The details of the chain that this message is on.
        simulation_status_result:
          $ref: '#/components/schemas/SimulationStatusResult'
          description: Whether simulation succeeded, reverted or failed.
        evm_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/EvmNativeTransferDetails'
            - $ref: '#/components/schemas/TokenTransferDetails'
            - $ref: '#/components/schemas/AllowanceDetails'
            - $ref: '#/components/schemas/ContractCallDetails'
            - $ref: '#/components/schemas/ContractDeploymentDetails'
            - $ref: '#/components/schemas/BridgeDetails'
          description: Details of the EVM transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              allowance: '#/components/schemas/AllowanceDetails'
              contract_call: '#/components/schemas/ContractCallDetails'
              contract_deployment: '#/components/schemas/ContractDeploymentDetails'
              cross_chain_bridge: '#/components/schemas/BridgeDetails'
              native_transfer: '#/components/schemas/EvmNativeTransferDetails'
              token_transfer: '#/components/schemas/TokenTransferDetails'
        parsed_data:
          $ref: '#/components/schemas/EvmTransactionParsedData'
          description: The parsed data of the transaction.
        gas_estimation:
          description: The gas estimation.
          $ref: '#/components/schemas/EvmGasEstimation'
        suggested_fees:
          $ref: '#/components/schemas/EvmSuggestedFees'
          description: The suggested fees.
        sender:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The sender of the transaction.
        to:
          $ref: '#/components/schemas/EnrichedEvmAddress'
          description: The address of the recipient of the transaction.
        hex_data:
          title: Hex Data
          description: >-
            The hex data of the contract call, as a serialized method-call with
            its arguments.
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
        gas_submitted:
          oneOf:
            - $ref: '#/components/schemas/LegacyGas'
            - $ref: '#/components/schemas/DynamicGas'
          description: The gas details submitted for the transaction.
          discriminator:
            propertyName: type
            mapping:
              dynamic: '#/components/schemas/DynamicGas'
              legacy: '#/components/schemas/LegacyGas'
      type: object
      required:
        - policy_match
        - risks
        - type
        - expected_result
        - chain
        - simulation_status_result
        - evm_transaction_type_details
        - parsed_data
        - suggested_fees
        - sender
        - to
        - gas_submitted
      title: PredictedEvmTransaction
    PredictedExchangeTransaction:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: exchange_transaction
          title: Type
          description: Starknet transaction type.
        expected_result:
          $ref: '#/components/schemas/ExchangeTransactionResult'
          description: The expected result of the transaction in case it's executed.
        simulation_status_result:
          $ref: '#/components/schemas/SimulationStatusResult'
          description: Whether simulation succeeded, reverted or failed.
        exchange_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/ExchangeExternalWithdrawDetails'
            - $ref: '#/components/schemas/ExchangeInternalTransferDetails'
          description: Details of the Exchange transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              external_withdraw: '#/components/schemas/ExchangeExternalWithdrawDetails'
              internal_transfer: '#/components/schemas/ExchangeInternalTransferDetails'
      type: object
      required:
        - policy_match
        - risks
        - type
        - expected_result
        - simulation_status_result
        - exchange_transaction_type_details
      title: PredictedExchangeTransaction
    PredictedSolanaMessage:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: solana_message
          title: Type
          description: The type of the transaction.
        chain:
          $ref: '#/components/schemas/EnrichedSolanaChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedSolanaAddress'
          description: The sender of the message.
        solana_message_type:
          $ref: '#/components/schemas/SolanaMessageType'
          description: The type of the Solana message.
        message_to_display:
          type: string
          title: Message To Display
          description: User-friendly formatting of the message to be signed.
      type: object
      required:
        - policy_match
        - risks
        - type
        - chain
        - sender
        - solana_message_type
        - message_to_display
      title: PredictedSolanaMessage
    PredictedSolanaSpotSwapDetails:
      properties:
        type:
          type: string
          const: spot_swap
          title: Type
          description: A Solana spot swap transaction is for swapping between two assets.
        slippage_bps:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Slippage Bps
          description: The slippage in basis points.
          example: '1000000000000000000'
        price_impact_pct:
          type: string
          pattern: ^\d+(\.\d+)?$
          title: Price Impact Pct
          description: The price impact in percentage.
          example: '1000000000000000000'
        rate:
          type: string
          pattern: ^\d+(\.\d+)?$
          title: Rate
          description: The rate of the swap.
          example: '1000000000000000000'
        broadcast_mode:
          $ref: '#/components/schemas/SolanaSpotSwapBroadcastMode'
          description: The broadcast mode of the swap.
        input_asset:
          $ref: '#/components/schemas/AssetInfo'
          description: The input asset.
        output_asset:
          $ref: '#/components/schemas/AssetInfo'
          description: The output asset.
        recipients:
          items:
            $ref: '#/components/schemas/EnrichedSolanaAddress'
          type: array
          title: Recipients
          description: The recipients of the tokens.
        jito_suggested_fees:
          $ref: '#/components/schemas/SolanaSuggestedFees'
          description: The suggested fees for Jito.
      type: object
      required:
        - type
        - slippage_bps
        - price_impact_pct
        - rate
        - broadcast_mode
        - input_asset
        - output_asset
        - recipients
        - jito_suggested_fees
      title: PredictedSolanaSpotSwapDetails
    PredictedSolanaTransaction:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        type:
          type: string
          const: solana_transaction
          title: Type
          description: The type of the transaction.
        expected_result:
          $ref: '#/components/schemas/SolanaTransactionResult'
          description: The expected result of the transaction in case it is mined.
        chain:
          $ref: '#/components/schemas/EnrichedSolanaChain'
          description: The details of the chain that this message is on.
        simulation_status_result:
          $ref: '#/components/schemas/SimulationStatusResult'
          description: Whether simulation succeeded, reverted or failed.
        solana_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/SolanaNativeTransferDetails'
            - $ref: '#/components/schemas/SolanaTokenTransferDetails'
            - $ref: '#/components/schemas/SolanaRawTransactionDetails'
            - $ref: '#/components/schemas/PredictedSolanaSpotSwapDetails'
          description: Details of the Solana transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              native_transfer: '#/components/schemas/SolanaNativeTransferDetails'
              raw_transaction: '#/components/schemas/SolanaRawTransactionDetails'
              spot_swap: '#/components/schemas/PredictedSolanaSpotSwapDetails'
              token_transfer: '#/components/schemas/SolanaTokenTransferDetails'
        sender:
          $ref: '#/components/schemas/EnrichedSolanaAddress'
          description: The sender of the transaction.
        suggested_fees:
          $ref: '#/components/schemas/SolanaSuggestedFees'
          description: The suggested fees.
        instructions:
          items:
            $ref: '#/components/schemas/SolanaCompiledInstruction'
          type: array
          title: Instructions
          description: The instructions of the transaction.
        raw_transaction:
          title: Raw Transaction
          description: The serialized transaction encoded as a base64 string
          type: string
          example: SGVsbG8=
        was_fee_set_in_request:
          type: boolean
          title: Was Fee Set In Request
          description: >-
            Whether the priority fee was already set in the request with a
            ComputeBudget instruction.
      type: object
      required:
        - policy_match
        - risks
        - type
        - expected_result
        - chain
        - simulation_status_result
        - solana_transaction_type_details
        - sender
        - suggested_fees
        - instructions
        - was_fee_set_in_request
      title: PredictedSolanaTransaction
    PredictedStacksTransaction:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        type:
          type: string
          const: stacks_transaction
          title: Type
          description: Stacks transaction type.
        post_conditions:
          $ref: '#/components/schemas/StacksPostConditions'
          description: The post conditions of the transaction.
        expected_result:
          $ref: '#/components/schemas/StacksTransactionResult'
          description: The expected result of the transaction in case it is mined.
        chain:
          $ref: '#/components/schemas/EnrichedStacksChain'
          description: The details of the chain that this transaction is on.
        simulation_status_result:
          $ref: '#/components/schemas/SimulationStatusResult'
          description: Whether simulation succeeded, reverted or failed.
        stacks_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/StacksNativeTransferDetails'
            - $ref: '#/components/schemas/StacksTokenTransferDetails'
            - $ref: '#/components/schemas/StacksRawTransactionDetails'
          description: Details of the stacks transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              native_transfer: '#/components/schemas/StacksNativeTransferDetails'
              raw_transaction: '#/components/schemas/StacksRawTransactionDetails'
              token_transfer: '#/components/schemas/StacksTokenTransferDetails'
        serialized_payload:
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Serialized Payload
          description: The serialized payload of the transaction.
        memo:
          title: Memo
          description: The memo of the transaction.
          type: string
        suggested_fees:
          $ref: '#/components/schemas/StacksSuggestedFees'
          description: The suggested fees.
        sender:
          $ref: '#/components/schemas/EnrichedStacksAddress'
          description: The sender of the transaction.
      type: object
      required:
        - policy_match
        - risks
        - type
        - post_conditions
        - expected_result
        - chain
        - simulation_status_result
        - stacks_transaction_type_details
        - serialized_payload
        - suggested_fees
        - sender
      title: PredictedStacksTransaction
    PredictedStarknetMessage:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: starknet_message
          title: Type
          description: Starknet message type.
        chain:
          $ref: '#/components/schemas/EnrichedStarknetChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedStarknetAddress'
          description: The sender of the message.
        starknet_message_type:
          $ref: '#/components/schemas/StarknetMessageType'
          description: The type of the Starknet message.
        message_to_display:
          type: string
          title: Message To Display
          description: User-friendly formatting of the message to be signed.
      type: object
      required:
        - policy_match
        - risks
        - type
        - chain
        - sender
        - starknet_message_type
        - message_to_display
      title: PredictedStarknetMessage
    PredictedStarknetTransaction:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        type:
          type: string
          const: starknet_transaction
          title: Type
          description: Starknet transaction type.
        expected_result:
          $ref: '#/components/schemas/StarknetTransactionResult'
          description: The expected result of the transaction in case it is mined.
        chain:
          $ref: '#/components/schemas/EnrichedStarknetChain'
          description: The details of the chain that this transaction is on.
        simulation_status_result:
          $ref: '#/components/schemas/SimulationStatusResult'
          description: Whether simulation succeeded, reverted or failed.
        starknet_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/StarknetNativeTransferDetails'
            - $ref: '#/components/schemas/StarknetErc20TransferDetails'
            - $ref: '#/components/schemas/StarknetRawTransactionDetails'
            - $ref: '#/components/schemas/StarknetContractCreationDetails'
          description: Details of the Starknet transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              contract_deployment: '#/components/schemas/StarknetContractCreationDetails'
              erc20_transfer: '#/components/schemas/StarknetErc20TransferDetails'
              native_transfer: '#/components/schemas/StarknetNativeTransferDetails'
              raw_transaction: '#/components/schemas/StarknetRawTransactionDetails'
        suggested_fees:
          $ref: '#/components/schemas/StarknetSuggestedFees'
          description: The suggested fees.
        sender:
          $ref: '#/components/schemas/EnrichedStarknetAddress'
          description: The sender of the transaction.
        call_data:
          items:
            $ref: '#/components/schemas/StarknetCallData'
          type: array
          title: Call Data
          description: The call data of the transaction.
      type: object
      required:
        - policy_match
        - risks
        - type
        - expected_result
        - chain
        - simulation_status_result
        - starknet_transaction_type_details
        - suggested_fees
        - sender
        - call_data
      title: PredictedStarknetTransaction
    PredictedSuiMessage:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: sui_message
          title: Type
          description: Sui message type.
        chain:
          $ref: '#/components/schemas/EnrichedSuiChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedSuiAddress'
          description: The sender of the message.
        sui_message_type:
          $ref: '#/components/schemas/SuiMessageType'
          description: The type of the Sui message.
        message_to_display:
          type: string
          title: Message To Display
          description: User-friendly formatting of the message to be signed.
      type: object
      required:
        - policy_match
        - risks
        - type
        - chain
        - sender
        - sui_message_type
        - message_to_display
      title: PredictedSuiMessage
    PredictedSuiTransaction:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        type:
          type: string
          const: sui_transaction
          title: Type
          description: Sui transaction type.
        expected_result:
          $ref: '#/components/schemas/SuiTransactionResult'
          description: The expected result of the transaction in case it is mined.
        chain:
          $ref: '#/components/schemas/EnrichedSuiChain'
          description: The details of the chain that this transaction is on.
        simulation_status_result:
          $ref: '#/components/schemas/SimulationStatusResult'
          description: Whether simulation succeeded, reverted or failed.
        sui_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/SuiNativeTransferDetails'
            - $ref: '#/components/schemas/SuiCoinTransferDetails'
            - $ref: '#/components/schemas/SuiProgrammableTransactionBlockDetails'
          description: Details of the Sui transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              coin_transfer: '#/components/schemas/SuiCoinTransferDetails'
              native_transfer: '#/components/schemas/SuiNativeTransferDetails'
              programmable_transaction_block: '#/components/schemas/SuiProgrammableTransactionBlockDetails'
        gas_submitted:
          $ref: '#/components/schemas/SuiGasConfig'
          description: The gas details submitted for the transaction.
        decoded_tx_bytes:
          title: Decoded Tx Bytes
          description: The json representation of the transaction's data
          type: string
        sender:
          $ref: '#/components/schemas/EnrichedSuiAddress'
          description: The sender of the transaction.
        suggested_fees:
          $ref: '#/components/schemas/SuiSuggestedFees'
          description: The suggested fees.
      type: object
      required:
        - policy_match
        - risks
        - type
        - expected_result
        - chain
        - simulation_status_result
        - sui_transaction_type_details
        - gas_submitted
        - sender
        - suggested_fees
      title: PredictedSuiTransaction
    PredictedTonMessage:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: ton_message
          title: Type
          description: TON message type.
        chain:
          $ref: '#/components/schemas/EnrichedTonChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedTonAddress'
          description: The sender of the message.
        ton_message_type:
          $ref: '#/components/schemas/TonMessageType'
          description: The type of the TON message.
        message_to_display:
          type: string
          title: Message To Display
          description: User-friendly formatting of the message to be signed.
      type: object
      required:
        - policy_match
        - risks
        - type
        - chain
        - sender
        - ton_message_type
        - message_to_display
      title: PredictedTonMessage
    PredictedTonTransaction:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        type:
          type: string
          const: ton_transaction
          title: Type
          description: Ton transaction type.
        expected_result:
          $ref: '#/components/schemas/TonTransactionResult'
          description: The expected result of the transaction in case it is mined.
        chain:
          $ref: '#/components/schemas/EnrichedTonChain'
          description: The details of the chain that this transaction is on.
        simulation_status_result:
          $ref: '#/components/schemas/SimulationStatusResult'
          description: Whether simulation succeeded, reverted or failed.
        payload:
          $ref: '#/components/schemas/TonTransactionPayload'
          description: The payload of the transaction.
        ton_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/TonNativeTransferDetails'
            - $ref: '#/components/schemas/TonJettonTransferDetails'
            - $ref: '#/components/schemas/TonRawTransactionDetails'
          description: Details of the Ton transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              jetton_transfer: '#/components/schemas/TonJettonTransferDetails'
              native_transfer: '#/components/schemas/TonNativeTransferDetails'
              raw_transaction: '#/components/schemas/TonRawTransactionDetails'
        suggested_fees:
          $ref: '#/components/schemas/TonSuggestedFees'
          description: The suggested fees.
        sender:
          $ref: '#/components/schemas/EnrichedTonAddress'
          description: The sender of the transaction.
      type: object
      required:
        - policy_match
        - risks
        - type
        - expected_result
        - chain
        - simulation_status_result
        - payload
        - ton_transaction_type_details
        - suggested_fees
        - sender
      title: PredictedTonTransaction
    PredictedTronTransaction:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        type:
          type: string
          const: tron_transaction
          title: Type
          description: TRON transaction type.
        expected_result:
          $ref: '#/components/schemas/TronTransactionResult'
          description: The expected result of the transaction in case it is mined.
        chain:
          $ref: '#/components/schemas/EnrichedTronChain'
          description: The details of the chain that this transaction is on.
        simulation_status_result:
          $ref: '#/components/schemas/SimulationStatusResult'
          description: Whether simulation succeeded, reverted or failed.
        tron_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/TronNativeTransferDetails'
            - $ref: '#/components/schemas/TronTokenTransferDetails'
          description: Details of the tron transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              native_transfer: '#/components/schemas/TronNativeTransferDetails'
              token_transfer: '#/components/schemas/TronTokenTransferDetails'
        memo:
          title: Memo
          description: The memo of the transaction.
          type: string
        sender:
          $ref: '#/components/schemas/EnrichedTronAddress'
          description: The sender of the transaction.
      type: object
      required:
        - policy_match
        - risks
        - type
        - expected_result
        - chain
        - simulation_status_result
        - tron_transaction_type_details
        - sender
      title: PredictedTronTransaction
    PredictedUtxoMessage:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: utxo_message
          title: Type
          description: The type of the transaction.
        chain:
          $ref: '#/components/schemas/EnrichedUtxoChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedUtxoAddress'
          description: The sender of the message.
        utxo_message_type:
          $ref: '#/components/schemas/UtxoMessageType'
          description: The type of the message to sign.
        message_to_display:
          type: string
          title: Message To Display
          description: User-friendly formatting of the message to be signed.
      type: object
      required:
        - policy_match
        - risks
        - type
        - chain
        - sender
        - utxo_message_type
        - message_to_display
      title: PredictedUtxoMessage
    PredictedUtxoTransaction:
      properties:
        aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchOutgoing'
        policy_match:
          $ref: '#/components/schemas/PolicyMatch'
          description: The policy match.
        approval_request:
          description: The approval request.
          $ref: '#/components/schemas/ApprovalRequest'
        risks:
          items:
            $ref: '#/components/schemas/TransactionRisk'
          type: array
          title: Risks
          description: The list of risks associated with this transaction.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        type:
          type: string
          const: utxo_transaction
          title: Type
          description: The type of the transaction.
        chain:
          $ref: '#/components/schemas/EnrichedUtxoChain'
          description: Details of the chain this transaction is on.
        expected_result:
          $ref: '#/components/schemas/UtxoTransactionResult'
          description: The expected result of the transaction in case it is mined.
        utxo_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/UtxoNativeTransferDetails'
            - $ref: '#/components/schemas/UtxoPsbtDetails'
          description: Details of the Utxo transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              native_transfer: '#/components/schemas/UtxoNativeTransferDetails'
              partially_signed_bitcoin_transaction: '#/components/schemas/UtxoPsbtDetails'
        suggested_fees:
          $ref: '#/components/schemas/UtxoSuggestedFees'
          description: The suggested fees.
      type: object
      required:
        - policy_match
        - risks
        - type
        - chain
        - expected_result
        - utxo_transaction_type_details
        - suggested_fees
      title: PredictedUtxoTransaction
    Price:
      properties:
        price_float:
          type: string
          pattern: ^\d+(\.\d+)?$
          title: Price Float
          description: The price in the given fiat currency.
          example: '1000000000000000000'
        fiat_currency:
          $ref: '#/components/schemas/FiatCurrency'
      type: object
      required:
        - price
        - price_float
        - fiat_currency
      title: Price
      description: Price represents a price in a given FiatCurrency.
    PricedAsset:
      properties:
        type:
          type: string
          const: asset_price
          title: Type
        asset_info:
          $ref: '#/components/schemas/AssetInfo'
          description: The asset info.
        price:
          description: The price of the asset (if it exists in the system).
          $ref: '#/components/schemas/Price'
      type: object
      required:
        - type
        - asset_info
      title: PricedAsset
    PricedAssetResponse:
      oneOf:
        - $ref: '#/components/schemas/PricedAsset'
        - $ref: '#/components/schemas/InvalidAssetRequest'
      discriminator:
        propertyName: type
        mapping:
          asset_price: '#/components/schemas/PricedAsset'
          invalid_asset: '#/components/schemas/InvalidAssetRequest'
    PricedErc20:
      properties:
        price_float:
          type: string
          pattern: ^\d+(\.\d+)?$
          title: Price Float
          description: The price in the given fiat currency.
          example: '1000000000000000000'
        fiat_currency:
          $ref: '#/components/schemas/FiatCurrency'
        token:
          $ref: '#/components/schemas/Erc20'
      type: object
      required:
        - price
        - price_float
        - fiat_currency
        - token
      title: PricedErc20
    PsbtInput:
      properties:
        index:
          type: integer
          title: Index
          description: The input index to sign on.
        signer_identity:
          oneOf:
            - $ref: '#/components/schemas/PsbtSignerIdentityAddress'
            - $ref: '#/components/schemas/PsbtSignerIdentityPublicKey'
          discriminator:
            propertyName: type
            mapping:
              address: '#/components/schemas/PsbtSignerIdentityAddress'
              public_key: '#/components/schemas/PsbtSignerIdentityPublicKey'
        sighash_types:
          title: Sighash Types
          description: Flags that describe how to sign.
          items:
            type: integer
          type: array
        disable_tweak_signer:
          title: Disable Tweak Signer
          description: Disable tweaking of taproot public key.
          type: boolean
      type: object
      required:
        - index
        - signer_identity
      title: PsbtInput
    PsbtSignerIdentityAddress:
      properties:
        type:
          type: string
          const: address
          title: Type
        address:
          type: string
          pattern: ^.+1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]{7,}$
          title: Address
          description: The address of the key that should sign on the input.
      type: object
      required:
        - type
        - address
      title: PsbtSignerIdentityAddress
    PsbtSignerIdentityPublicKey:
      properties:
        type:
          type: string
          const: public_key
          title: Type
        public_key:
          type: string
          pattern: ^[a-fA-F0-9]+$
          title: Public Key
          description: Public key that should sign on the input.
      type: object
      required:
        - type
        - public_key
      title: PsbtSignerIdentityPublicKey
    PushMode:
      type: string
      enum:
        - auto
        - manual
        - deferred
      title: PushMode
    PushTransactionRequest:
      properties:
        push_data:
          description: |-
            Additional data needed to push the transaction to the
                    chain. Currently only needs to be specified for Cosmos transactions
                    that have been created in Amino format. For all other
                    transaction types, this field must be omitted, and the request must have
                    an empty body.
          $ref: '#/components/schemas/CosmosPushData'
      type: object
      title: PushTransactionRequest
    PushTransactionResponse:
      oneOf:
        - $ref: '#/components/schemas/AptosMessage'
        - $ref: '#/components/schemas/AptosTransaction'
        - $ref: '#/components/schemas/BlackBoxSignature'
        - $ref: '#/components/schemas/CosmosTransaction'
        - $ref: '#/components/schemas/CosmosMessage'
        - $ref: '#/components/schemas/EvmMessage'
        - $ref: '#/components/schemas/EvmTransaction'
        - $ref: '#/components/schemas/ExchangeTransaction'
        - $ref: '#/components/schemas/SolanaMessage'
        - $ref: '#/components/schemas/SolanaTransaction'
        - $ref: '#/components/schemas/StacksTransaction'
        - $ref: '#/components/schemas/StarknetMessage'
        - $ref: '#/components/schemas/StarknetTransaction'
        - $ref: '#/components/schemas/SuiMessage'
        - $ref: '#/components/schemas/SuiTransaction'
        - $ref: '#/components/schemas/TonMessage'
        - $ref: '#/components/schemas/TonTransaction'
        - $ref: '#/components/schemas/TronTransaction'
        - $ref: '#/components/schemas/UtxoMessage'
        - $ref: '#/components/schemas/UtxoTransaction'
      discriminator:
        propertyName: type
        mapping:
          aptos_message: '#/components/schemas/AptosMessage'
          aptos_transaction: '#/components/schemas/AptosTransaction'
          black_box_signature: '#/components/schemas/BlackBoxSignature'
          cosmos_message: '#/components/schemas/CosmosMessage'
          cosmos_transaction: '#/components/schemas/CosmosTransaction'
          evm_message: '#/components/schemas/EvmMessage'
          evm_transaction: '#/components/schemas/EvmTransaction'
          exchange_transaction: '#/components/schemas/ExchangeTransaction'
          solana_message: '#/components/schemas/SolanaMessage'
          solana_transaction: '#/components/schemas/SolanaTransaction'
          stacks_transaction: '#/components/schemas/StacksTransaction'
          starknet_message: '#/components/schemas/StarknetMessage'
          starknet_transaction: '#/components/schemas/StarknetTransaction'
          sui_message: '#/components/schemas/SuiMessage'
          sui_transaction: '#/components/schemas/SuiTransaction'
          ton_message: '#/components/schemas/TonMessage'
          ton_transaction: '#/components/schemas/TonTransaction'
          tron_transaction: '#/components/schemas/TronTransaction'
          utxo_message: '#/components/schemas/UtxoMessage'
          utxo_transaction: '#/components/schemas/UtxoTransaction'
    PushableTransactionState:
      type: string
      enum:
        - waiting_for_approval
        - waiting_for_signing_trigger
        - approved
        - signed
        - pushed_to_blockchain
        - mined
        - completed
        - aborted
        - error_pushing_to_blockchain
        - mined_reverted
        - completed_reverted
        - error_signing
        - stuck
        - dropped
        - queued
        - aborting
        - accelerating
        - canceling
        - accelerated
        - cancelled
        - insufficient_funds
      title: PushableTransactionState
    PushableTransactionStateChange:
      properties:
        changed_at:
          type: string
          format: date-time
          title: Changed At
          description: The date and time when the state was changed.
        reason:
          description: The reason for the state change.
          $ref: '#/components/schemas/StateChangeReason'
        previous_state:
          description: The previous state of the transaction.
          $ref: '#/components/schemas/PushableTransactionState'
        new_state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The new state of the transaction.
      type: object
      required:
        - changed_at
        - new_state
      title: PushableTransactionStateChange
    RateLimitError:
      properties: {}
      type: object
      title: RateLimitError
    RecipientVaultId:
      properties:
        type:
          type: string
          const: vault_id
          title: Type
          description: The type of the recipient.
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The id of the recipient vault.
      type: object
      required:
        - type
        - vault_id
      title: RecipientVaultId
    ReleaseEvmTransactionRequest:
      properties:
        type:
          type: string
          const: evm_transaction
          title: Type
          description: The type of the transaction.
        release_type:
          $ref: '#/components/schemas/ReleaseType'
          description: The type of the release.
        signer_type:
          $ref: '#/components/schemas/SignerType'
          description: Set who should sign the transaction.
          default: initiator
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if transaction creation should fail in case prediction
            failed, `False` otherwise. <br> In case simulation has failed upon
            continuation, the expected result of the transaction will be partial
            and policy will be applied on information that can be extracted
            statically from the transaction only. This might result in falling
            back to the default policy rule. 
          default: true
        note:
          title: Note
          description: An optional transaction note.
          type: string
        gas:
          description: >-
            Using the Custom Gas Request option, you specify `gas_limit`, as
            well as the following gas details: <ul><li>If you choose `legacy`
            (meaning a chain where gas price can be specified exactly), you must
            specify only the `price` of a gas unit. <li>If you choose `dynamic`
            (meaning a chain where gas price can be determined dynamically), you
            must specify two additional values:
            <ul><li>`max_priority_fee_per_gas`, the maximum tip amount for
            mining your transaction <li>`max_fee_per_gas`, the maximum amount
            you are willing to pay for the fee (ultimately, either you'll pay
            this amount, or less, depending on the network base fee). </ul></ul>
            <br> Note that the Legacy gas price setting is allowed on dynamic
            (EIP-1559) networks as well. <br> You can get information on gas
            fees for different chains by examining the response to a call to
            [List
            Chains](https://documentation.fordefi.com/redoc/#operation/list_chains_api_v1_blockchains_get).
            More information is provided in [EVM chains and their fee
            mechanisms](https://docs.fordefi.com/docs/evm-chains#evm-chains-and-their-fee-mechanisms). 
          oneOf:
            - $ref: '#/components/schemas/CustomGasRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/CustomGasRequest'
      type: object
      required:
        - type
        - release_type
      title: ReleaseEvmTransactionRequest
    ReleaseTransactionErrorType:
      type: string
      enum:
        - partial_signed_raw_request
        - invalid_transaction_state
        - invalid_transaction_type
        - missing_signed_raw_request
        - redundant_signed_raw_request
        - non_managed_transaction
        - invalid_signed_raw_request
        - invalid_signer_type
        - reverted_transaction
        - transaction_uses_secure_node
      title: ReleaseTransactionErrorType
    ReleaseTransactionRequest:
      oneOf:
        - $ref: '#/components/schemas/ReleaseEvmTransactionRequest'
      discriminator:
        propertyName: type
        mapping:
          evm_transaction: '#/components/schemas/ReleaseEvmTransactionRequest'
    ReleaseTransactionResponse:
      oneOf:
        - $ref: '#/components/schemas/AptosMessage'
        - $ref: '#/components/schemas/AptosTransaction'
        - $ref: '#/components/schemas/BlackBoxSignature'
        - $ref: '#/components/schemas/CosmosTransaction'
        - $ref: '#/components/schemas/CosmosMessage'
        - $ref: '#/components/schemas/EvmMessage'
        - $ref: '#/components/schemas/EvmTransaction'
        - $ref: '#/components/schemas/ExchangeTransaction'
        - $ref: '#/components/schemas/SolanaMessage'
        - $ref: '#/components/schemas/SolanaTransaction'
        - $ref: '#/components/schemas/StacksTransaction'
        - $ref: '#/components/schemas/StarknetMessage'
        - $ref: '#/components/schemas/StarknetTransaction'
        - $ref: '#/components/schemas/SuiMessage'
        - $ref: '#/components/schemas/SuiTransaction'
        - $ref: '#/components/schemas/TonMessage'
        - $ref: '#/components/schemas/TonTransaction'
        - $ref: '#/components/schemas/TronTransaction'
        - $ref: '#/components/schemas/UtxoMessage'
        - $ref: '#/components/schemas/UtxoTransaction'
      discriminator:
        propertyName: type
        mapping:
          aptos_message: '#/components/schemas/AptosMessage'
          aptos_transaction: '#/components/schemas/AptosTransaction'
          black_box_signature: '#/components/schemas/BlackBoxSignature'
          cosmos_message: '#/components/schemas/CosmosMessage'
          cosmos_transaction: '#/components/schemas/CosmosTransaction'
          evm_message: '#/components/schemas/EvmMessage'
          evm_transaction: '#/components/schemas/EvmTransaction'
          exchange_transaction: '#/components/schemas/ExchangeTransaction'
          solana_message: '#/components/schemas/SolanaMessage'
          solana_transaction: '#/components/schemas/SolanaTransaction'
          stacks_transaction: '#/components/schemas/StacksTransaction'
          starknet_message: '#/components/schemas/StarknetMessage'
          starknet_transaction: '#/components/schemas/StarknetTransaction'
          sui_message: '#/components/schemas/SuiMessage'
          sui_transaction: '#/components/schemas/SuiTransaction'
          ton_message: '#/components/schemas/TonMessage'
          ton_transaction: '#/components/schemas/TonTransaction'
          tron_transaction: '#/components/schemas/TronTransaction'
          utxo_message: '#/components/schemas/UtxoMessage'
          utxo_transaction: '#/components/schemas/UtxoTransaction'
    ReleaseType:
      type: string
      enum:
        - cancel
        - accelerate
      title: ReleaseType
    RenameVaultRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The new name for the vault.
      type: object
      required:
        - name
      title: RenameVaultRequest
    RequestApprover:
      properties:
        user:
          oneOf:
            - $ref: '#/components/schemas/PersonRef'
            - $ref: '#/components/schemas/ApiUserRef'
          discriminator:
            propertyName: user_type
            mapping:
              api_user: '#/components/schemas/ApiUserRef'
              person: '#/components/schemas/PersonRef'
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: The date and time when this approval was modified.
        state:
          $ref: '#/components/schemas/ApprovalState'
          description: The state of the approval request for this approver.
      type: object
      required:
        - user
        - modified_at
        - state
      title: RequestApprover
      description: Represents a single approver in an approval request
    Resource:
      type: string
      enum:
        - user
        - user_change_proposals
        - user_group
        - user_group_change_proposal
        - vault
        - vault_address
        - vault_group
        - address_group
        - transaction
        - batch_transaction
        - path
        - keyset
        - auth_token
        - access_token
        - asset
        - asset_info
        - vault_derivation_path
        - blockchain
        - export
        - quote
        - import_keys_request
        - vault_address_account
        - exchange_asset_mapping
      title: Resource
    ResourceError:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
        resource:
          description: The type of resource.
          $ref: '#/components/schemas/Resource'
      type: object
      required:
        - title
        - detail
      title: ResourceError
    RiskRating:
      type: string
      enum:
        - low
        - medium
        - high
        - severe
      title: RiskRating
    SchnorrSecp256k1BlackBoxValue:
      properties:
        type:
          type: string
          const: schnorr_secp256k1
          title: Type
          description: Schnorr over the secp256k1 curve signing scheme.
      type: object
      required:
        - type
      title: SchnorrSecp256k1BlackBoxValue
    ScriptPayload:
      properties:
        typed_arguments:
          items:
            type: string
          type: array
          title: Typed Arguments
          description: The typed arguments of the transaction.
        arguments:
          items:
            type: string
          type: array
          title: Arguments
          description: The arguments of the transaction.
        type:
          type: string
          const: script
          title: Type
        code:
          type: string
          title: Code
          description: The script code of the transaction.
      type: object
      required:
        - typed_arguments
        - arguments
        - type
        - code
      title: ScriptPayload
    SetExportEndUserKeysPermissionsRequest:
      properties:
        allow:
          type: boolean
          title: Allow
          description: Allow or disable export
      type: object
      required:
        - allow
      title: SetExportEndUserKeysPermissionsRequest
    SignDoc:
      oneOf:
        - $ref: '#/components/schemas/AminoSignDoc'
        - $ref: '#/components/schemas/DirectSignDoc'
        - $ref: '#/components/schemas/MinedSignDoc'
      discriminator:
        propertyName: format
        mapping:
          amino: '#/components/schemas/AminoSignDoc'
          direct: '#/components/schemas/DirectSignDoc'
          mined: '#/components/schemas/MinedSignDoc'
    SignMode:
      type: string
      enum:
        - auto
        - triggered
      title: SignMode
    Signature:
      properties:
        data:
          type: string
          title: Data
          description: Signature on the transaction, encoded in base64 format.
          example: SGVsbG8=
        signed_by:
          description: >-
            The user who created this signature, `null` if the signature wasn't
            created by a Fordefi user.
          oneOf:
            - $ref: '#/components/schemas/PersonRef'
            - $ref: '#/components/schemas/ApiSignerRef'
            - $ref: '#/components/schemas/EndUserRef'
          discriminator:
            propertyName: user_type
            mapping:
              api_signer: '#/components/schemas/ApiSignerRef'
              end_user: '#/components/schemas/EndUserRef'
              person: '#/components/schemas/PersonRef'
      type: object
      required:
        - data
      title: Signature
    SignerInfo:
      properties:
        signer_address:
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
          description: The address of the signer (in bech32 format).
        public_key:
          type: string
          pattern: ^[a-fA-F0-9]+$
          title: Public Key
          description: Public key in its compressed format
        account:
          type: string
          pattern: ^-?\d+$
          title: Account
          description: The account number assigned by the chain.
          example: '1000000000000000000'
        sequence:
          type: string
          pattern: ^-?\d+$
          title: Sequence
          description: The sequence of this transaction.
          example: '1000000000000000000'
      type: object
      required:
        - signer_address
        - public_key
        - account
        - sequence
      title: SignerInfo
    SignerType:
      type: string
      enum:
        - initiator
        - api_signer
        - end_user
        - multiple_signers
      title: SignerType
    SimulationStatus:
      type: string
      enum:
        - success
        - failed
        - reverted
        - skipped
      title: SimulationStatus
    SimulationStatusResult:
      properties:
        simulation_status:
          description: The status of simulation result.
          $ref: '#/components/schemas/SimulationStatus'
        details:
          type: string
          title: Details
          description: Details about transaction reversion if occurred.
      type: object
      required:
        - details
      title: SimulationStatusResult
    SolanaAddress:
      properties:
        chain:
          $ref: '#/components/schemas/SolanaChain'
          description: The chain details this address is of.
        base58_repr:
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          title: Base58 Repr
          description: Base58 representation of the address in the chain.
          example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
      type: object
      required:
        - chain
        - base58_repr
      title: SolanaAddress
      description: Address represents an EVM blockchain address.
    SolanaAddressBookContact:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        name:
          type: string
          title: Name
          description: The name of the contact.
        modified_by:
          $ref: '#/components/schemas/UserRef'
          description: Address last modifier.
        state:
          $ref: '#/components/schemas/AddressBookContactState'
          description: The state of the contact.
        groups:
          items:
            $ref: '#/components/schemas/GroupRef'
          type: array
          title: Groups
          description: List of contact's groups.
        pending_changes:
          description: Pending changes for the contact.
          $ref: '#/components/schemas/AddressBookContactChanges'
        asset_infos:
          items:
            $ref: '#/components/schemas/AssetInfo'
          type: array
          title: Asset Infos
          description: >-
            A list of asset infos for the contact. Can be used to enforce
            trading of specific assets intransfers to this address
        chain_type:
          type: string
          const: solana
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          title: Address
          description: The address on the solana chain.
          example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
        chains:
          items:
            $ref: '#/components/schemas/EnrichedSolanaChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - modified_by
        - state
        - groups
        - asset_infos
        - chain_type
        - address
        - chains
      title: SolanaAddressBookContact
      description: Represents a contact in the Fordefi platform
    SolanaAddressBookContactAddressRef:
      properties:
        chain_type:
          type: string
          const: solana
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          title: Address
          description: The address on the Solana chain.
          example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
        chains:
          items:
            $ref: '#/components/schemas/SolanaChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
      type: object
      required:
        - chain_type
        - address
        - chains
      title: SolanaAddressBookContactAddressRef
    SolanaAddressRequest:
      properties:
        chain:
          $ref: '#/components/schemas/SolanaChainUniqueId'
          description: The chain details this address is of.
        base58_repr:
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          title: Base58 Repr
          description: Base58 representation of the address in the chain.
          example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
      type: object
      required:
        - chain
        - base58_repr
      title: SolanaAddressRequest
      description: Address represents a blockchain address.
    SolanaAsset:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The asset ID.
        decimals:
          type: integer
          minimum: 0
          title: Decimals
        price:
          description: The price of the asset.
          $ref: '#/components/schemas/Price'
        name:
          type: string
          title: Name
          description: The name of the asset.
        symbol:
          type: string
          title: Symbol
          description: The symbol (ticker) of the asset.
        hidden:
          type: boolean
          title: Hidden
          description: '`True` if this asset was set to be hidden, `False` otherwise.'
        verified:
          type: boolean
          title: Verified
          description: '`True` if this asset is verified by Fordefi, `False` otherwise.'
        asset_identifier:
          $ref: '#/components/schemas/EnrichedAssetIdentifier'
          description: The asset identifier.
        metadata_uri:
          title: Metadata Uri
          description: The URI of the asset metadata.
          type: string
      type: object
      required:
        - id
        - decimals
        - name
        - symbol
        - hidden
        - verified
        - asset_identifier
        - type
        - details
      title: SolanaAsset
    SolanaAssetIdentifier:
      properties:
        type:
          type: string
          const: solana
          title: Type
          description: Solana asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/SolanaNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/SolanaSplTokenAssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              native: '#/components/schemas/SolanaNativeAssetIdentifierRequest'
              spl_token: '#/components/schemas/SolanaSplTokenAssetIdentifierRequest'
        chain:
          $ref: '#/components/schemas/EnrichedSolanaChain'
      type: object
      required:
        - type
        - details
        - chain
      title: SolanaAssetIdentifier
    SolanaAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: solana
          title: Type
          description: Solana asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/SolanaNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/SolanaSplTokenAssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              native: '#/components/schemas/SolanaNativeAssetIdentifierRequest'
              spl_token: '#/components/schemas/SolanaSplTokenAssetIdentifierRequest'
      type: object
      required:
        - type
        - details
      title: SolanaAssetIdentifierRequest
    SolanaBalanceChangeEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        diff:
          type: string
          pattern: ^-?\d+$
          title: Diff
          description: >-
            The amount of that was added to or deducted from the owner's
            balance. If the amount was deducted, the value is negative; if the
            amount was added, the value is positive.
          example: '1000000000000000000'
        address:
          $ref: '#/components/schemas/EnrichedSolanaAddress'
          description: The address affected by the balance change.
      type: object
      required:
        - priced_asset
        - diff
        - type
        - address
      title: SolanaBalanceChangeEffect
    SolanaBalanceChangeEffectType:
      type: string
      enum:
        - native
        - spl_token
      title: SolanaBalanceChangeEffectType
    SolanaBlockData:
      properties:
        slot:
          type: integer
          title: Slot
          description: The slot number.
        hash:
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          title: Hash
          description: The block hash.
          example: 4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZAMdL4VZHirAn
        mined_at:
          type: string
          format: date-time
          title: Mined At
          description: The date and time this block was mined.
      type: object
      required:
        - slot
        - hash
        - mined_at
      title: SolanaBlockData
    SolanaChain:
      properties:
        chain_type:
          type: string
          const: solana
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/SolanaChainUniqueId'
          description: The type of the Solana-based chain.
      type: object
      required:
        - chain_type
        - unique_id
      title: SolanaChain
    SolanaChainUniqueId:
      type: string
      enum:
        - solana_mainnet
        - solana_devnet
        - solana_eclipse_mainnet
      title: SolanaChainUniqueId
    SolanaCompiledInstruction:
      properties:
        program_index:
          type: integer
          title: Program Index
          description: The program index.
        data:
          type: string
          title: Data
          description: The instruction data in Base64 format.
          example: SGVsbG8=
        account_indexes:
          items:
            type: integer
          type: array
          title: Account Indexes
          description: >-
            The indexes of the instruction accounts in the transaction accounts
            list.
        program:
          $ref: '#/components/schemas/EnrichedSolanaAddress'
          description: The address of the program account.
        base58_data:
          title: Base58 Data
          description: The instruction data encoded in Base58 format.
          type: string
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
      type: object
      required:
        - program_index
        - data
        - account_indexes
        - program
      title: SolanaCompiledInstruction
    SolanaCompiledInstructionRequest:
      properties:
        program_index:
          type: integer
          title: Program Index
          description: The program index.
        data:
          type: string
          title: Data
          description: The instruction data in Base64 format.
          example: SGVsbG8=
        account_indexes:
          items:
            type: integer
          type: array
          title: Account Indexes
          description: >-
            The indexes of the instruction accounts in the transaction accounts
            list.
      type: object
      required:
        - program_index
        - data
        - account_indexes
      title: SolanaCompiledInstructionRequest
    SolanaContractMetadata:
      properties:
        name:
          title: Name
          description: The name of the contract.
          type: string
        dapp:
          description: The DApp details of the contract.
          $ref: '#/components/schemas/Dapp'
        is_verified:
          type: boolean
          title: Is Verified
          description: '`True` if the contract is verified, `False` otherwise.'
        token:
          description: The token details of the contract.
          $ref: '#/components/schemas/SplToken'
      type: object
      required:
        - is_verified
      title: SolanaContractMetadata
    SolanaCustomFeeRequest:
      properties:
        type:
          type: string
          const: custom
          title: Type
        priority_fee:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Priority Fee
          description: The priority fee to use in the transaction (In lamports).
          example: '1000000000000000000'
      type: object
      required:
        - type
        - priority_fee
      title: SolanaCustomFeeRequest
    SolanaEffects:
      properties:
        balance_changes:
          items:
            $ref: '#/components/schemas/SolanaBalanceChangeEffect'
          type: array
          title: Balance Changes
          description: The aggregated balance changes of addresses.
        transfers:
          items:
            $ref: '#/components/schemas/SolanaTransferEffect'
          type: array
          title: Transfers
          description: The transfer events of the transaction.
      type: object
      required:
        - balance_changes
        - transfers
      title: SolanaEffects
    SolanaEnrichedMessageAddressTableLookup:
      properties:
        account_key:
          $ref: '#/components/schemas/SolanaAddress'
          description: The address of the lookup table.
        writable_indexes:
          items:
            type: integer
          type: array
          title: Writable Indexes
          description: Indexes of writable accounts in the lookup table.
        readonly_indexes:
          items:
            type: integer
          type: array
          title: Readonly Indexes
          description: Indexes of read-only accounts in the lookup table.
        state:
          $ref: '#/components/schemas/AddressLookupTableState'
          description: The state of the lookup table.
      type: object
      required:
        - account_key
        - writable_indexes
        - readonly_indexes
        - state
      title: SolanaEnrichedMessageAddressTableLookup
    SolanaFee:
      properties:
        priority_level:
          $ref: '#/components/schemas/FeePriorityLevel'
          description: The priority level.
        base_fee:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Base Fee
          description: The base fee of the transaction (in lamports).
          example: '1000000000000000000'
        priority_fee:
          type: string
          pattern: ^\d+$
          title: Priority Fee
          description: The priority fee of the transaction (in lamports).
          example: '1000000000000000000'
        fee:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Fee
          description: The total fee of the transaction (in lamports).
          example: '1000000000000000000'
        fee_type:
          $ref: '#/components/schemas/SolanaFeeType'
          description: The type of the fee.
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The information of the asset used to pay the fee and amount used.
      type: object
      required:
        - priority_level
        - base_fee
        - priority_fee
        - fee
        - fee_type
        - priced_asset
      title: SolanaFee
    SolanaFeeType:
      type: string
      enum:
        - jito
        - priority_fee
      title: SolanaFeeType
    SolanaJitoFeeTypeRequest:
      properties:
        type:
          type: string
          const: jito
          title: Type
          description: Jito broadcast mode.
        details:
          oneOf:
            - $ref: '#/components/schemas/JitoCustomFeeRequest'
            - $ref: '#/components/schemas/JitoPriorityFeeRequest'
          description: The details of the Jito fee.
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/JitoCustomFeeRequest'
              priority: '#/components/schemas/JitoPriorityFeeRequest'
      type: object
      required:
        - type
        - details
      title: SolanaJitoFeeTypeRequest
    SolanaMessage:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state of the message.
        state_changes:
          items:
            $ref: '#/components/schemas/NonPushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the message.
        type:
          type: string
          const: solana_message
          title: Type
          description: Solana message type.
        solana_message_type:
          $ref: '#/components/schemas/SolanaMessageType'
          description: The type of the Solana message.
        string_data:
          type: string
          title: String Data
          description: The message as a string.
        raw_data:
          type: string
          title: Raw Data
          description: The raw data of the message, encoded in base64
          example: SGVsbG8=
        chain:
          $ref: '#/components/schemas/EnrichedSolanaChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedSolanaAddress'
          description: The sender of the message.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - solana_message_type
        - string_data
        - raw_data
        - chain
        - sender
      title: SolanaMessage
    SolanaMessageAddressTableLookupRequest:
      properties:
        account_key:
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          title: Account Key
          description: The address of the lookup table.
          example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
        writable_indexes:
          items:
            type: integer
          type: array
          title: Writable Indexes
          description: Indexes of writable accounts in the lookup table.
        readonly_indexes:
          items:
            type: integer
          type: array
          title: Readonly Indexes
          description: Indexes of read-only accounts in the lookup table.
      type: object
      required:
        - account_key
        - writable_indexes
        - readonly_indexes
      title: SolanaMessageAddressTableLookupRequest
    SolanaMessageType:
      type: string
      enum:
        - personal_message_type
      title: SolanaMessageType
    SolanaMessageVersion:
      type: string
      enum:
        - legacy
        - v0
      title: SolanaMessageVersion
    SolanaNativeAsset:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedSolanaChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: solana_native_asset
          title: Type
          description: Solana asset type.
      type: object
      required:
        - chain
        - type
      title: SolanaNativeAsset
    SolanaNativeAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: native
          title: Type
          description: Solana asset identifier type.
        chain:
          $ref: '#/components/schemas/SolanaChainUniqueId'
          description: The details of the chain of the native asset.
      type: object
      required:
        - type
        - chain
      title: SolanaNativeAssetIdentifierRequest
    SolanaNativeTransferDetails:
      properties:
        type:
          type: string
          const: native_transfer
          title: Type
          description: >-
            A transaction involving the transfer of native currency from one
            address to another. 
        sender:
          $ref: '#/components/schemas/EnrichedSolanaAddress'
          description: The sender of the tokens.
        recipient:
          $ref: '#/components/schemas/EnrichedSolanaAddress'
          description: The recipient of the tokens.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - direction
        - sender
        - recipient
      title: SolanaNativeTransferDetails
    SolanaPersonalMessageRequest:
      properties:
        type:
          type: string
          const: personal_message_type
          title: Type
          description: Personal message standard.
        chain:
          $ref: '#/components/schemas/SolanaChainUniqueId'
          description: The details of the chain of the native asset.
        raw_data:
          type: string
          title: Raw Data
          description: Base64 of the message to be signed.
          example: SGVsbG8=
      type: object
      required:
        - type
        - chain
        - raw_data
      title: SolanaPersonalMessageRequest
    SolanaPriorityFeeRequest:
      properties:
        type:
          type: string
          const: priority
          title: Type
        priority_level:
          $ref: '#/components/schemas/FeePriorityLevelRequest'
          description: >-
            Using the Fee Priority option, you allocate the range of fee you are
            willing to add: low, medium, or high. Fordefi then does its best to
            achieve success, based on these parameters.
      type: object
      required:
        - type
        - priority_level
      title: SolanaPriorityFeeRequest
    SolanaPriorityFeeTypeRequest:
      properties:
        type:
          type: string
          const: priority_fee
          title: Type
          description: Priority fee broadcast mode.
        details:
          oneOf:
            - $ref: '#/components/schemas/SolanaCustomFeeRequest'
            - $ref: '#/components/schemas/SolanaPriorityFeeRequest'
          description: The fee configuration for the transaction.
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/SolanaCustomFeeRequest'
              priority: '#/components/schemas/SolanaPriorityFeeRequest'
      type: object
      required:
        - type
        - details
      title: SolanaPriorityFeeTypeRequest
    SolanaRawTransactionDetails:
      properties:
        type:
          type: string
          const: raw_transaction
          title: Type
          description: A transaction capable of any operation.
        recipients:
          items:
            $ref: '#/components/schemas/EnrichedSolanaAddress'
          type: array
          title: Recipients
          description: The recipients of the tokens.
      type: object
      required:
        - type
        - recipients
      title: SolanaRawTransactionDetails
    SolanaReversion:
      properties:
        state:
          $ref: '#/components/schemas/SolanaReversionState'
          description: >-
            The state of the reversion. Is one of the
            following:<ul><li>`not_reverted`: No reversion, meaning, completed
            successfully.<li>`unknown_revert`: Fordefi does not know the reason
            for the reversion.<li>`contract_asserted`: The smart contract
            originally made an assertion that was later rejected and the
            transaction was halted. <li>`insufficient_funds_gas_and_value`: A
            transaction was sent for which there were insufficient
            funds.<li>`insufficient_funds_for_rent`: There is not enough SOL in
            the account to pay for the rent.</ul>
        reason:
          title: Reason
          description: The reason for the reversion (additional information).
          type: string
      type: object
      required:
        - state
      title: SolanaReversion
    SolanaReversionState:
      type: string
      enum:
        - not_reverted
        - unknown_revert
        - contract_asserted
        - insufficient_funds_gas_and_value
        - insufficient_funds_for_rent
      title: SolanaReversionState
    SolanaSecretKeyRequest:
      properties:
        data:
          title: Data
          description: A 64-byte Solana secret key of the account, encoded in base-64.
          type: string
          maxLength: 88
          minLength: 88
          example: lnNyP8kFPEaVpvUo/SIlhdZlzhPU8r7yT/h0gG5ajzQ=
      type: object
      title: SolanaSecretKeyRequest
    SolanaSplTokenAsset:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedSolanaChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: solana_spl_token_asset
          title: Type
          description: Solana asset type.
      type: object
      required:
        - chain
        - type
      title: SolanaSplTokenAsset
    SolanaSplTokenAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: spl_token
          title: Type
          description: SPL token asset identifier type.
        token:
          $ref: '#/components/schemas/SolanaAddressRequest'
          description: The SPL token details.
      type: object
      required:
        - type
        - token
      title: SolanaSplTokenAssetIdentifierRequest
    SolanaSpotSwapBroadcastMode:
      type: string
      enum:
        - priority_fee
        - jito
      title: SolanaSpotSwapBroadcastMode
    SolanaSuggestedFees:
      properties:
        type:
          type: string
          const: solana
          title: Type
          description: The type of the chain.
        chain_unique_id:
          $ref: '#/components/schemas/SolanaChainUniqueId'
          description: The Solana chain unique id.
        base_fee:
          type: string
          pattern: ^\d+$
          title: Base Fee
          description: >-
            The base fee paid for the signatures in the transaction, denominated
            in lamports.
          example: '1000000000000000000'
        low:
          type: string
          pattern: ^\d+$
          title: Low
          description: The low suggested fee per byte, denominated in lamports.
          example: '1000000000000000000'
        medium:
          type: string
          pattern: ^\d+$
          title: Medium
          description: The medium suggested fee per byte, denominated in lamports.
          example: '1000000000000000000'
        high:
          type: string
          pattern: ^\d+$
          title: High
          description: The high suggested fee per byte, denominated in lamports.
          example: '1000000000000000000'
      type: object
      required:
        - type
        - chain_unique_id
        - base_fee
        - low
        - medium
        - high
      title: SolanaSuggestedFees
    SolanaTokenTransferDetails:
      properties:
        type:
          type: string
          const: token_transfer
          title: Type
          description: >-
            A transaction involving the transfer of native currency from one
            address to another. 
        sender:
          $ref: '#/components/schemas/EnrichedSolanaAddress'
          description: The sender of the tokens.
        recipient:
          $ref: '#/components/schemas/EnrichedSolanaAddress'
          description: The recipient of the tokens.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - direction
        - sender
        - recipient
      title: SolanaTokenTransferDetails
    SolanaTransaction:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state of the transaction.
        state_changes:
          items:
            $ref: '#/components/schemas/PushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the transaction.
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        incoming_aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchIncoming'
        type:
          type: string
          const: solana_transaction
          title: Type
          description: The type of the transaction.
        solana_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/SolanaNativeTransferDetails'
            - $ref: '#/components/schemas/SolanaTokenTransferDetails'
            - $ref: '#/components/schemas/SolanaRawTransactionDetails'
          description: Details of the Solana transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              native_transfer: '#/components/schemas/SolanaNativeTransferDetails'
              raw_transaction: '#/components/schemas/SolanaRawTransactionDetails'
              token_transfer: '#/components/schemas/SolanaTokenTransferDetails'
        chain:
          $ref: '#/components/schemas/EnrichedSolanaChain'
          description: The details of the chain this transaction is on.
        version:
          $ref: '#/components/schemas/SolanaMessageVersion'
          description: The version of the transaction message.
        instructions:
          items:
            $ref: '#/components/schemas/SolanaCompiledInstruction'
          type: array
          title: Instructions
          description: The instructions of the transaction.
        accounts:
          items:
            $ref: '#/components/schemas/SolanaTransactionAccount'
          type: array
          title: Accounts
          description: Accounts used in the transaction.
        address_table_lookups:
          items:
            $ref: '#/components/schemas/SolanaEnrichedMessageAddressTableLookup'
          type: array
          title: Address Table Lookups
          description: Lookup tables of accounts used in the transaction.
        sender:
          $ref: '#/components/schemas/EnrichedSolanaAddress'
          description: The sender of the transaction.
        raw_transaction:
          title: Raw Transaction
          description: The serialized transaction encoded as a base64 string
          type: string
          example: SGVsbG8=
        hash:
          title: Hash
          description: The first signature of the transaction.
          type: string
          maxLength: 88
          minLength: 64
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          example: >-
            FAWA66fudpiwdRDDQ4DRxdJsRvawvauwg4vQkm98ZHFpXmW5N7xzRiTRpt8QiZ19s1aVbzKgXW6kEZanwHeDFNS
        recent_blockhash:
          title: Recent Blockhash
          description: The transaction nonce (last block hash).
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          example: 4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZAMdL4VZHirAn
        block:
          description: Details of the block the transaction was mined in.
          $ref: '#/components/schemas/SolanaBlockData'
        expected_result:
          description: The expected result of the transaction in case it is mined.
          $ref: '#/components/schemas/SolanaTransactionResult'
        simulation_status_result:
          $ref: '#/components/schemas/SimulationStatusResult'
          description: Whether simulation succeeded or failed.
        mined_result:
          description: The result of the transaction after it was mined.
          $ref: '#/components/schemas/SolanaTransactionResult'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of this transaction in a blockchain explorer. For example,
            Solscan.
          example: https://solscan.io/tx/FAWA66f...6kEZanwHeDFNS
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        was_fee_set_in_request:
          type: boolean
          title: Was Fee Set In Request
          description: >-
            Whether the priority fee was already set in the request with a
            ComputeBudget instruction.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - solana_transaction_type_details
        - chain
        - version
        - instructions
        - accounts
        - address_table_lookups
        - sender
        - simulation_status_result
        - was_fee_set_in_request
      title: SolanaTransaction
    SolanaTransactionAccount:
      properties:
        address:
          $ref: '#/components/schemas/EnrichedSolanaAddress'
          description: The address of the account.
        writable:
          type: boolean
          title: Writable
          description: >-
            Indicates if this account is writable in the context of the
            transaction.
        signer:
          type: boolean
          title: Signer
          description: Indicates if this account is a signer of the transaction.
      type: object
      required:
        - address
        - writable
        - signer
      title: SolanaTransactionAccount
    SolanaTransactionAccountRequest:
      properties:
        address:
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          title: Address
          description: The address of the account.
          example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
        writable:
          type: boolean
          title: Writable
          description: >-
            Indicates if this account is writable in the context of the
            transaction.
        signer:
          type: boolean
          title: Signer
          description: Indicates if this account is a signer of the transaction.
        ephemeral_key:
          title: Ephemeral Key
          description: A 64-byte Solana secret key of the account, encoded in base-64.
          type: string
          maxLength: 88
          minLength: 88
          example: lnNyP8kFPEaVpvUo/SIlhdZlzhPU8r7yT/h0gG5ajzQ=
      type: object
      required:
        - address
        - writable
        - signer
      title: SolanaTransactionAccountRequest
    SolanaTransactionResult:
      properties:
        reversion:
          $ref: '#/components/schemas/SolanaReversion'
          description: Details whether the transaction was reverted or not.
        transaction_error:
          title: Transaction Error
          description: The description of the error of the transaction.
          type: string
        enriched_fee:
          $ref: '#/components/schemas/SolanaFee'
          description: The fee of the transaction.
        effects:
          $ref: '#/components/schemas/SolanaEffects'
          description: The effects of the transaction.
        instruction_error:
          description: The description of the error of the instruction.
          $ref: '#/components/schemas/InstructionError'
      type: object
      required:
        - reversion
        - fee
        - enriched_fee
        - effects
      title: SolanaTransactionResult
    SolanaTransactionSignaturesRequest:
      properties:
        data:
          title: Data
          description: Signature on the data, encoded in base64 format.
          type: string
          example: SGVsbG8=
      type: object
      title: SolanaTransactionSignaturesRequest
    SolanaTransactionType:
      type: string
      enum:
        - native_transfer
        - token_transfer
        - raw_transaction
        - spot_swap
      title: SolanaTransactionType
    SolanaTransferEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the transfer.
          example: '1000000000000000000'
        from:
          $ref: '#/components/schemas/EnrichedSolanaAddress'
          description: The sender of the transfer.
        to:
          $ref: '#/components/schemas/EnrichedSolanaAddress'
          description: The receiver of the transfer.
      type: object
      required:
        - priced_asset
        - amount
        - type
        - from
        - to
      title: SolanaTransferEffect
    SolanaTransferEffectType:
      type: string
      enum:
        - native
        - spl_token
      title: SolanaTransferEffectType
    SolanaVault:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        metadata:
          title: Metadata
          description: Metadata in a form of map<str, bool | str | int | array[str]>.
          additionalProperties:
            anyOf:
              - items:
                  type: string
                type: array
              - type: string
              - type: integer
              - type: boolean
          type: object
        name:
          type: string
          title: Name
          description: The name of the vault.
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: Details of the vault creator.
        vault_group:
          $ref: '#/components/schemas/VaultGroupRef'
          description: The vault group this vault belongs to.
        pending_vault_group_action:
          description: Details of pending vault movement to another vault group.
          oneOf:
            - $ref: '#/components/schemas/PendingVaultGroupActionAdd'
            - $ref: '#/components/schemas/PendingVaultGroupActionRemove'
          discriminator:
            propertyName: type
            mapping:
              add: '#/components/schemas/PendingVaultGroupActionAdd'
              remove: '#/components/schemas/PendingVaultGroupActionRemove'
        state:
          $ref: '#/components/schemas/VaultState'
          description: State of the vault.
        public_key_compressed:
          type: string
          title: Public Key Compressed
          description: >-
            The public key of the vault in its compressed form: <ul> <li>For
            ECDSA and Schnorr keys, the public key is represented as 33 bytes
            (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1
            standard](https://www.secg.org/SEC1-Ver-1.0.pdf). <li>For EdDSA, the
            public key is represented as a 32-byte value, as defined by [RFC
            8032](https://datatracker.ietf.org/doc/html/rfc8032). </ul>
          example: SGVsbG8=
        derivation_info:
          $ref: '#/components/schemas/VaultDerivationInfo'
          description: The derivation info of the vault.
        key_holder:
          description: >-
            The user who owns the keyset of the vault. If not provided, the
            vault is owned by the organization.
          $ref: '#/components/schemas/EndUserRef'
        origin_type:
          $ref: '#/components/schemas/VaultOriginType'
          description: The origin type of the vault.
        type:
          type: string
          const: solana
          title: Type
          description: Solana vault type.
        address:
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          title: Address
          description: The address of the vault in the Solana blockchain.
          example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - created_by
        - vault_group
        - state
        - are_all_chains_disabled
        - derivation_path
        - public_key_compressed
        - derivation_info
        - keyset
        - origin_type
        - type
        - address
      title: SolanaVault
      description: Represents a Solana vault in the Fordefi platform
    SplToken:
      properties:
        type:
          type: string
          const: spl_token
          title: Type
          description: The type of the token
        address:
          $ref: '#/components/schemas/SolanaAddress'
          description: The token address
        name:
          type: string
          title: Name
          description: The token name
        symbol:
          type: string
          title: Symbol
          description: The token symbol or ticker
        decimals:
          type: integer
          title: Decimals
          description: The token decimals
        logo_url:
          title: Logo Url
          description: The token logo url
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
      type: object
      required:
        - type
        - address
        - name
        - symbol
        - decimals
      title: SplToken
    SplTokenContract:
      properties:
        name:
          title: Name
          description: The name of the contract.
          type: string
        dapp:
          description: The DApp details of the contract.
          $ref: '#/components/schemas/Dapp'
        is_verified:
          type: boolean
          title: Is Verified
          description: '`True` if the contract is verified, `False` otherwise.'
        token:
          $ref: '#/components/schemas/SplToken'
          description: The token details of the contract.
      type: object
      required:
        - is_verified
        - token
      title: SplTokenContract
    StacksAddressBookContact:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        name:
          type: string
          title: Name
          description: The name of the contact.
        modified_by:
          $ref: '#/components/schemas/UserRef'
          description: Address last modifier.
        state:
          $ref: '#/components/schemas/AddressBookContactState'
          description: The state of the contact.
        groups:
          items:
            $ref: '#/components/schemas/GroupRef'
          type: array
          title: Groups
          description: List of contact's groups.
        pending_changes:
          description: Pending changes for the contact.
          $ref: '#/components/schemas/AddressBookContactChanges'
        asset_infos:
          items:
            $ref: '#/components/schemas/AssetInfo'
          type: array
          title: Asset Infos
          description: >-
            A list of asset infos for the contact. Can be used to enforce
            trading of specific assets intransfers to this address
        chain_type:
          type: string
          const: stacks
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 171
          minLength: 39
          pattern: ^S[0-9A-Za-z._-]+$
          title: Address
          description: The address on the stacks chain.
          example: SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9
        chains:
          items:
            $ref: '#/components/schemas/EnrichedStacksChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
        memo:
          title: Memo
          description: >-
            Memo is an additional address feature used for identifying a
            recipient.
          type: string
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - modified_by
        - state
        - groups
        - asset_infos
        - chain_type
        - address
        - chains
      title: StacksAddressBookContact
      description: Represents a contact in the Fordefi platform
    StacksAddressBookContactAddressRef:
      properties:
        chain_type:
          type: string
          const: stacks
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 171
          minLength: 39
          pattern: ^S[0-9A-Za-z._-]+$
          title: Address
          description: The address on the Stacks chain.
          example: SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9
        chains:
          items:
            $ref: '#/components/schemas/StacksChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
      type: object
      required:
        - chain_type
        - address
        - chains
      title: StacksAddressBookContactAddressRef
    StacksAddressRequest:
      properties:
        chain:
          $ref: '#/components/schemas/StacksChainUniqueId'
          description: The chain details this address is of.
        hex_repr:
          type: string
          maxLength: 171
          minLength: 39
          pattern: ^S[0-9A-Za-z._-]+$
          title: Hex Repr
          description: Hexadecimal representation of the address in the chain.
          example: SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9
      type: object
      required:
        - chain
        - hex_repr
      title: StacksAddressRequest
      description: Address represents a blockchain address.
    StacksAssetIdentifier:
      properties:
        type:
          type: string
          const: stacks
          title: Type
          description: Stacks asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/StacksNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/StacksSip10AssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              native: '#/components/schemas/StacksNativeAssetIdentifierRequest'
              sip10: '#/components/schemas/StacksSip10AssetIdentifierRequest'
        chain:
          $ref: '#/components/schemas/EnrichedStacksChain'
      type: object
      required:
        - type
        - details
        - chain
      title: StacksAssetIdentifier
    StacksAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: stacks
          title: Type
          description: Stacks asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/StacksNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/StacksSip10AssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              native: '#/components/schemas/StacksNativeAssetIdentifierRequest'
              sip10: '#/components/schemas/StacksSip10AssetIdentifierRequest'
      type: object
      required:
        - type
        - details
      title: StacksAssetIdentifierRequest
    StacksBalanceChangeEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        diff:
          type: string
          pattern: ^-?\d+$
          title: Diff
          description: >-
            The amount of that was added to or deducted from the owner's
            balance. If the amount was deducted, the value is negative; if the
            amount was added, the value is positive.
          example: '1000000000000000000'
        address:
          $ref: '#/components/schemas/EnrichedStacksAddress'
          description: The address affected by the balance change.
      type: object
      required:
        - priced_asset
        - diff
        - address
      title: StacksBalanceChangeEffect
    StacksBlock:
      properties:
        number:
          type: integer
          title: Number
          description: The block number.
        hash:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Hash
          description: The block hash.
          example: '0xadc53fc37f9210735c5ed562aa914cb745c910ded94720bfe9e67a2ac6f2ae24'
        mined_at:
          type: string
          format: date-time
          title: Mined At
          description: The date and time when this block was mined.
      type: object
      required:
        - number
        - hash
        - mined_at
      title: StacksBlock
    StacksChain:
      properties:
        chain_type:
          type: string
          const: stacks
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/StacksChainUniqueId'
          description: The type of the Stacks-based chain.
      type: object
      required:
        - chain_type
        - unique_id
      title: StacksChain
    StacksChainUniqueId:
      type: string
      enum:
        - stacks_mainnet
      title: StacksChainUniqueId
    StacksContractCallPayload:
      properties:
        contract_address:
          $ref: '#/components/schemas/EnrichedStacksAddress'
          description: The address of the contract to call.
        contract_name:
          type: string
          title: Contract Name
          description: The name of the contract being called.
        function_name:
          type: string
          title: Function Name
          description: The name of the function to call.
        function_arguments:
          items:
            type: string
          type: array
          title: Function Arguments
          description: The arguments of the function to call.
      type: object
      required:
        - contract_address
        - contract_name
        - function_name
        - function_arguments
      title: StacksContractCallPayload
    StacksCustomFeeRequest:
      properties:
        type:
          type: string
          const: custom
          title: Type
        total_fee:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Total Fee
          description: The total fee to use in the transaction (In microSTX).
          example: '1000000000000000000'
      type: object
      required:
        - type
        - total_fee
      title: StacksCustomFeeRequest
    StacksEffects:
      properties:
        balance_changes:
          items:
            $ref: '#/components/schemas/StacksBalanceChangeEffect'
          type: array
          title: Balance Changes
        transfers:
          items:
            $ref: '#/components/schemas/StacksTransferEffect'
          type: array
          title: Transfers
      type: object
      required:
        - balance_changes
        - transfers
      title: StacksEffects
    StacksFee:
      properties:
        priority:
          $ref: '#/components/schemas/FeePriorityLevel'
          description: The priority level.
        total_fee:
          type: string
          pattern: ^\d+$
          title: Total Fee
          description: The total fee payed for the transaction.
          example: '1000000000000000000'
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The information of the asset used to pay the fee and amount used.
      type: object
      required:
        - priority
        - total_fee
        - priced_asset
      title: StacksFee
    StacksNativeAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: native
          title: Type
          description: Stacks asset identifier type.
        chain:
          $ref: '#/components/schemas/StacksChainUniqueId'
          description: The details of the chain of the native asset.
      type: object
      required:
        - type
        - chain
      title: StacksNativeAssetIdentifierRequest
    StacksNativeTransferDetails:
      properties:
        type:
          type: string
          const: native_transfer
          title: Type
          description: >-
            A transaction involving the transfer of Stacks coin from one address
            to another.
        sender:
          $ref: '#/components/schemas/EnrichedStacksAddress'
          description: The sender of the assets.
        recipient:
          $ref: '#/components/schemas/EnrichedStacksAddress'
          description: The recipient of the assets.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - sender
        - recipient
      title: StacksNativeTransferDetails
    StacksPostCondition:
      oneOf:
        - $ref: '#/components/schemas/KnownAssetStacksPostCondition'
        - $ref: '#/components/schemas/UnknownAssetStacksPostCondition'
      discriminator:
        propertyName: type
        mapping:
          known_asset: '#/components/schemas/KnownAssetStacksPostCondition'
          unknown_asset: '#/components/schemas/UnknownAssetStacksPostCondition'
    StacksPostConditionComparator:
      type: string
      enum:
        - eq
        - gt
        - ge
        - lt
        - le
      title: StacksPostConditionComparator
    StacksPostConditionMode:
      type: string
      enum:
        - allow
        - deny
      title: StacksPostConditionMode
    StacksPostConditions:
      properties:
        post_condition_mode:
          $ref: '#/components/schemas/StacksPostConditionMode'
          description: The post condition mode of the transaction.
        post_conditions:
          items:
            $ref: '#/components/schemas/StacksPostCondition'
          type: array
          title: Post Conditions
          description: The post conditions of the transaction.
      type: object
      required:
        - post_condition_mode
        - post_conditions
      title: StacksPostConditions
    StacksPriorityFeeRequest:
      properties:
        type:
          type: string
          const: priority
          title: Type
        priority_level:
          $ref: '#/components/schemas/FeePriorityLevelRequest'
          description: >-
            Using the Fee Priority option, you allocate the range of fee you are
            willing to add: low, medium, or high. Fordefi then does its best to
            achieve success, based on these parameters.
      type: object
      required:
        - type
        - priority_level
      title: StacksPriorityFeeRequest
    StacksRawTransactionDetails:
      properties:
        type:
          type: string
          const: raw_transaction
          title: Type
          description: A transaction with contract call.
        contract_call_payload:
          $ref: '#/components/schemas/StacksContractCallPayload'
          description: The contract call payload.
      type: object
      required:
        - type
        - contract_call_payload
      title: StacksRawTransactionDetails
    StacksRecipientHex:
      properties:
        type:
          type: string
          const: hex
          title: Type
          description: The type of the recipient.
        address:
          type: string
          maxLength: 171
          minLength: 39
          pattern: ^S[0-9A-Za-z._-]+$
          title: Address
          description: The address of the recipient.
          example: SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9
      type: object
      required:
        - type
        - address
      title: StacksRecipientHex
    StacksReversion:
      properties:
        state:
          $ref: '#/components/schemas/StacksReversionState'
          description: >-
            The state of the reversion. Is one of the
            following:<ul><li>`not_reverted`: No reversion, meaning, completed
            successfully.<li>`unknown_revert`: Fordefi does not know the reason
            for the reversion.<li>`contract_asserted`: The smart contract
            originally made an assertion that was later rejected and the
            transaction was halted. <li>`insufficient_funds_gas_and_value`: A
            transaction was sent for which there were insufficient funds.</ul>
        reason:
          title: Reason
          description: The reason for the reversion (additional information).
          type: string
      type: object
      required:
        - state
      title: StacksReversion
    StacksReversionState:
      type: string
      enum:
        - not_reverted
        - unknown_revert
        - contract_asserted
        - insufficient_funds_gas_and_value
      title: StacksReversionState
    StacksSip10AssetIdentifierRequest:
      properties:
        type:
          type: string
          const: sip10
          title: Type
          description: Sip10 asset identifier type.
        sip10:
          $ref: '#/components/schemas/StacksAddressRequest'
          description: The Sip10 details.
      type: object
      required:
        - type
        - sip10
      title: StacksSip10AssetIdentifierRequest
    StacksSuggestedFees:
      properties:
        type:
          type: string
          const: stacks
          title: Type
          description: The type of the chain.
        low:
          type: string
          pattern: ^\d+$
          title: Low
          description: The low suggested total fee.
          example: '1000000000000000000'
        medium:
          type: string
          pattern: ^\d+$
          title: Medium
          description: The medium suggested total fee.
          example: '1000000000000000000'
        high:
          type: string
          pattern: ^\d+$
          title: High
          description: The high suggested total fee.
          example: '1000000000000000000'
        chain_unique_id:
          $ref: '#/components/schemas/StacksChainUniqueId'
          description: The Stacks chain unique id.
      type: object
      required:
        - type
        - low
        - medium
        - high
        - chain_unique_id
      title: StacksSuggestedFees
    StacksTokenTransferDetails:
      properties:
        type:
          type: string
          const: token_transfer
          title: Type
          description: >-
            A transaction involving the transfer of an sip10 asset from one
            address to another.
        sender:
          $ref: '#/components/schemas/EnrichedStacksAddress'
          description: The sender of the assets.
        recipient:
          $ref: '#/components/schemas/EnrichedStacksAddress'
          description: The recipient of the assets.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - sender
        - recipient
      title: StacksTokenTransferDetails
    StacksTransaction:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state of the transaction.
        state_changes:
          items:
            $ref: '#/components/schemas/PushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the transaction.
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        incoming_aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchIncoming'
        type:
          type: string
          const: stacks_transaction
          title: Type
          description: Stacks transaction type.
        stacks_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/StacksNativeTransferDetails'
            - $ref: '#/components/schemas/StacksTokenTransferDetails'
            - $ref: '#/components/schemas/StacksRawTransactionDetails'
          description: Details of the Stacks transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              native_transfer: '#/components/schemas/StacksNativeTransferDetails'
              raw_transaction: '#/components/schemas/StacksRawTransactionDetails'
              token_transfer: '#/components/schemas/StacksTokenTransferDetails'
        chain:
          $ref: '#/components/schemas/EnrichedStacksChain'
          description: The details of the chain this transaction is on.
        nonce:
          title: Nonce
          description: The nonce of the transaction.
          type: integer
        sender:
          $ref: '#/components/schemas/EnrichedStacksAddress'
          description: The sender of the transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          example: '0xadc53fc37f9210735c5ed562aa914cb745c910ded94720bfe9e67a2ac6f2ae24'
        block:
          description: The block in which the transaction was mined.
          $ref: '#/components/schemas/StacksBlock'
        post_conditions:
          description: The post conditions of the transaction.
          $ref: '#/components/schemas/StacksPostConditions'
        serialized_payload:
          title: Serialized Payload
          description: The serialized payload of the transaction.
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
        serialized_signed_transaction:
          title: Serialized Signed Transaction
          description: The serialized signed transaction.
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
        expected_result:
          description: The expected result of the transaction in case it is mined.
          $ref: '#/components/schemas/StacksTransactionResult'
        simulation_status_result:
          description: Whether simulation succeeded or failed.
          $ref: '#/components/schemas/SimulationStatusResult'
        mined_result:
          description: The result of the transaction after it was mined.
          $ref: '#/components/schemas/StacksTransactionResult'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of this transaction in a blockchain explorer. For example,
            https://explorer.hiro.so/
          example: >-
            https://explorer.hiro.so/txid/0xd303fc22b2b8c346a0a1fa164a1ccb878a172dc2b8ce08253a6b2312cafb1520
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        memo:
          title: Memo
          description: The memo of the transaction.
          type: string
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - stacks_transaction_type_details
        - chain
        - sender
      title: StacksTransaction
    StacksTransactionResult:
      properties:
        reversion:
          $ref: '#/components/schemas/StacksReversion'
          description: Details whether the transaction was reverted or not.
        fee:
          $ref: '#/components/schemas/StacksFee'
          description: The fees of the transaction.
        effects:
          $ref: '#/components/schemas/StacksEffects'
          description: The effects of the transaction.
      type: object
      required:
        - reversion
        - fee
        - effects
      title: StacksTransactionResult
    StacksTransactionType:
      type: string
      enum:
        - native_transfer
        - token_transfer
        - raw_transaction
      title: StacksTransactionType
    StacksTransferEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the transfer.
          example: '1000000000000000000'
        from:
          $ref: '#/components/schemas/EnrichedStacksAddress'
          description: The sender of the transfer.
        to:
          $ref: '#/components/schemas/EnrichedStacksAddress'
          description: The receiver of the transfer.
      type: object
      required:
        - priced_asset
        - amount
        - from
        - to
      title: StacksTransferEffect
    StacksVault:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        metadata:
          title: Metadata
          description: Metadata in a form of map<str, bool | str | int | array[str]>.
          additionalProperties:
            anyOf:
              - items:
                  type: string
                type: array
              - type: string
              - type: integer
              - type: boolean
          type: object
        name:
          type: string
          title: Name
          description: The name of the vault.
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: Details of the vault creator.
        vault_group:
          $ref: '#/components/schemas/VaultGroupRef'
          description: The vault group this vault belongs to.
        pending_vault_group_action:
          description: Details of pending vault movement to another vault group.
          oneOf:
            - $ref: '#/components/schemas/PendingVaultGroupActionAdd'
            - $ref: '#/components/schemas/PendingVaultGroupActionRemove'
          discriminator:
            propertyName: type
            mapping:
              add: '#/components/schemas/PendingVaultGroupActionAdd'
              remove: '#/components/schemas/PendingVaultGroupActionRemove'
        state:
          $ref: '#/components/schemas/VaultState'
          description: State of the vault.
        public_key_compressed:
          type: string
          title: Public Key Compressed
          description: >-
            The public key of the vault in its compressed form: <ul> <li>For
            ECDSA and Schnorr keys, the public key is represented as 33 bytes
            (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1
            standard](https://www.secg.org/SEC1-Ver-1.0.pdf). <li>For EdDSA, the
            public key is represented as a 32-byte value, as defined by [RFC
            8032](https://datatracker.ietf.org/doc/html/rfc8032). </ul>
          example: SGVsbG8=
        derivation_info:
          $ref: '#/components/schemas/VaultDerivationInfo'
          description: The derivation info of the vault.
        key_holder:
          description: >-
            The user who owns the keyset of the vault. If not provided, the
            vault is owned by the organization.
          $ref: '#/components/schemas/EndUserRef'
        origin_type:
          $ref: '#/components/schemas/VaultOriginType'
          description: The origin type of the vault.
        type:
          type: string
          const: stacks
          title: Type
          description: Stacks vault type.
        address:
          type: string
          maxLength: 171
          minLength: 39
          pattern: ^S[0-9A-Za-z._-]+$
          title: Address
          description: The address of the vault on Stacks chain types.
          example: SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - created_by
        - vault_group
        - state
        - are_all_chains_disabled
        - derivation_path
        - public_key_compressed
        - derivation_info
        - keyset
        - origin_type
        - type
        - address
      title: StacksVault
      description: Represents a Stacks vault in the Fordefi platform
    StandaloneImportPackage:
      properties:
        type:
          type: string
          const: standalone
          title: Type
        key_name:
          type: string
          title: Key Name
          description: The name of the key to import.
        backup_zip_content:
          type: string
          title: Backup Zip Content
          description: The base64 encoded content of the Fireblocks backup zip file.
          example: SGVsbG8=
      type: object
      required:
        - type
        - key_name
        - backup_zip_content
      title: StandaloneImportPackage
    StarknetAddressBookContact:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        name:
          type: string
          title: Name
          description: The name of the contact.
        modified_by:
          $ref: '#/components/schemas/UserRef'
          description: Address last modifier.
        state:
          $ref: '#/components/schemas/AddressBookContactState'
          description: The state of the contact.
        groups:
          items:
            $ref: '#/components/schemas/GroupRef'
          type: array
          title: Groups
          description: List of contact's groups.
        pending_changes:
          description: Pending changes for the contact.
          $ref: '#/components/schemas/AddressBookContactChanges'
        asset_infos:
          items:
            $ref: '#/components/schemas/AssetInfo'
          type: array
          title: Asset Infos
          description: >-
            A list of asset infos for the contact. Can be used to enforce
            trading of specific assets intransfers to this address
        chain_type:
          type: string
          const: starknet
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address on the starknet chain.
          example: '0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8'
        chains:
          items:
            $ref: '#/components/schemas/EnrichedStarknetChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - modified_by
        - state
        - groups
        - asset_infos
        - chain_type
        - address
        - chains
      title: StarknetAddressBookContact
      description: Represents a contact in the Fordefi platform
    StarknetAddressBookContactAddressRef:
      properties:
        chain_type:
          type: string
          const: starknet
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address on the Starknet chain.
          example: '0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8'
        chains:
          items:
            $ref: '#/components/schemas/StarknetChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
      type: object
      required:
        - chain_type
        - address
        - chains
      title: StarknetAddressBookContactAddressRef
    StarknetAddressRequest:
      properties:
        chain:
          $ref: '#/components/schemas/StarknetChainUniqueId'
          description: The chain details this address is of.
        hex_repr:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Hex Repr
          description: Hexadecimal representation of the address in the chain.
          example: '0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8'
      type: object
      required:
        - chain
        - hex_repr
      title: StarknetAddressRequest
      description: Address represents a blockchain address.
    StarknetAssetIdentifier:
      properties:
        type:
          type: string
          const: starknet
          title: Type
          description: Starknet asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/StarknetNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/StarknetErc20AssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              erc20: '#/components/schemas/StarknetErc20AssetIdentifierRequest'
              native: '#/components/schemas/StarknetNativeAssetIdentifierRequest'
        chain:
          $ref: '#/components/schemas/EnrichedStarknetChain'
      type: object
      required:
        - type
        - details
        - chain
      title: StarknetAssetIdentifier
    StarknetAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: starknet
          title: Type
          description: Starknet asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/StarknetNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/StarknetErc20AssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              erc20: '#/components/schemas/StarknetErc20AssetIdentifierRequest'
              native: '#/components/schemas/StarknetNativeAssetIdentifierRequest'
      type: object
      required:
        - type
        - details
      title: StarknetAssetIdentifierRequest
    StarknetBalanceChangeEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        diff:
          type: string
          pattern: ^-?\d+$
          title: Diff
          description: >-
            The amount of that was added to or deducted from the owner's
            balance. If the amount was deducted, the value is negative; if the
            amount was added, the value is positive.
          example: '1000000000000000000'
        address:
          $ref: '#/components/schemas/EnrichedStarknetAddress'
          description: The address affected by the balance change.
      type: object
      required:
        - priced_asset
        - diff
        - address
      title: StarknetBalanceChangeEffect
    StarknetBlock:
      properties:
        number:
          type: integer
          title: Number
          description: The block number.
        hash:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Hash
          description: The block hash.
          example: '0x0684532b069fb0ce7e22041538a1c5e4850aafae042c772393cd7d795b767c74'
        mined_at:
          type: string
          format: date-time
          title: Mined At
          description: The date and time when this block was mined.
      type: object
      required:
        - number
        - hash
        - mined_at
      title: StarknetBlock
    StarknetCallData:
      properties:
        to:
          $ref: '#/components/schemas/EnrichedStarknetAddress'
          description: The address of the contract to call.
        method_name:
          type: string
          title: Method Name
          description: The name of the method to call.
        method_arguments:
          items:
            type: string
          type: array
          title: Method Arguments
          description: The arguments of the method to call.
      type: object
      required:
        - to
        - method_name
        - method_arguments
      title: StarknetCallData
    StarknetCallDataRequest:
      properties:
        to:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: To
          description: The address of the contract to call.
          example: '0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8'
        method_name:
          type: string
          title: Method Name
          description: The name of the method to call.
        method_arguments:
          items:
            type: string
          type: array
          title: Method Arguments
          description: The arguments of the method to call.
      type: object
      required:
        - to
        - method_name
        - method_arguments
      title: StarknetCallDataRequest
    StarknetChain:
      properties:
        chain_type:
          type: string
          const: starknet
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/StarknetChainUniqueId'
          description: The type of the Starknet-based chain.
      type: object
      required:
        - chain_type
        - unique_id
      title: StarknetChain
    StarknetChainUniqueId:
      type: string
      enum:
        - starknet_mainnet
      title: StarknetChainUniqueId
    StarknetContractCreationDetails:
      properties:
        type:
          type: string
          const: contract_deployment
          title: Type
          description: A transaction that created a contract.
      type: object
      required:
        - type
      title: StarknetContractCreationDetails
    StarknetEffects:
      properties:
        balance_changes:
          items:
            $ref: '#/components/schemas/StarknetBalanceChangeEffect'
          type: array
          title: Balance Changes
        transfers:
          items:
            $ref: '#/components/schemas/StarknetTransferEffect'
          type: array
          title: Transfers
      type: object
      required:
        - balance_changes
        - transfers
      title: StarknetEffects
    StarknetErc20AssetIdentifierRequest:
      properties:
        type:
          type: string
          const: erc20
          title: Type
          description: Erc20 asset identifier type.
        erc20:
          $ref: '#/components/schemas/StarknetAddressRequest'
          description: The Erc20 details.
      type: object
      required:
        - type
        - erc20
      title: StarknetErc20AssetIdentifierRequest
    StarknetErc20TransferDetails:
      properties:
        type:
          type: string
          const: erc20_transfer
          title: Type
          description: >-
            A transaction involving the transfer of an erc20 from one address to
            another. 
        sender:
          $ref: '#/components/schemas/EnrichedStarknetAddress'
          description: The sender of the assets.
        recipient:
          $ref: '#/components/schemas/EnrichedStarknetAddress'
          description: The recipient of the assets.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - sender
        - recipient
      title: StarknetErc20TransferDetails
    StarknetFees:
      properties:
        fee_payed:
          type: string
          pattern: ^\d+$
          title: Fee Payed
          description: The fee payed for the transaction.
          example: '1000000000000000000'
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The information of the asset used to pay the fee and amount used.
      type: object
      required:
        - fee_payed
        - priced_asset
      title: StarknetFees
    StarknetMessage:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state of the message.
        state_changes:
          items:
            $ref: '#/components/schemas/NonPushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the message.
        type:
          type: string
          const: starknet_message
          title: Type
          description: Starknet message type.
        starknet_message_type:
          $ref: '#/components/schemas/StarknetMessageType'
          description: The type of the Starknet message.
        raw_data:
          type: string
          title: Raw Data
          description: The raw data of the message.
        chain:
          $ref: '#/components/schemas/EnrichedStarknetChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedStarknetAddress'
          description: The sender of the message.
        message_hash:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Message Hash
          description: The hash of the message that was requested to be signed, in hex.
          example: '0x0684532b069fb0ce7e22041538a1c5e4850aafae042c772393cd7d795b767c74'
        starknet_signatures:
          items:
            type: string
          type: array
          title: Starknet Signatures
          description: The signatures of the message in Starknet format.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - starknet_message_type
        - raw_data
        - chain
        - sender
        - message_hash
        - starknet_signatures
      title: StarknetMessage
    StarknetMessageType:
      type: string
      enum:
        - typed_message_type
      title: StarknetMessageType
    StarknetNativeAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: native
          title: Type
          description: Starknet asset identifier type.
        chain:
          $ref: '#/components/schemas/StarknetChainUniqueId'
          description: The details of the chain of the native asset.
      type: object
      required:
        - type
        - chain
      title: StarknetNativeAssetIdentifierRequest
    StarknetNativeTransferDetails:
      properties:
        type:
          type: string
          const: native_transfer
          title: Type
          description: >-
            A transaction involving the transfer of Starknet coin from one
            address to another. 
        sender:
          $ref: '#/components/schemas/EnrichedStarknetAddress'
          description: The sender of the assets.
        recipient:
          $ref: '#/components/schemas/EnrichedStarknetAddress'
          description: The recipient of the assets.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - sender
        - recipient
      title: StarknetNativeTransferDetails
    StarknetRawTransactionDetails:
      properties:
        type:
          type: string
          const: raw_transaction
          title: Type
          description: A transaction with contract calls.
        recipients:
          items:
            $ref: '#/components/schemas/EnrichedStarknetAddress'
          type: array
          title: Recipients
          description: The called contracts.
      type: object
      required:
        - type
        - recipients
      title: StarknetRawTransactionDetails
    StarknetRecipientHex:
      properties:
        type:
          type: string
          const: hex
          title: Type
          description: The type of the recipient.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address of the recipient.
          example: '0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8'
      type: object
      required:
        - type
        - address
      title: StarknetRecipientHex
    StarknetReversion:
      properties:
        state:
          $ref: '#/components/schemas/StarknetReversionState'
          description: >-
            The state of the reversion. Is one of the
            following:<ul><li>`not_reverted`: No reversion, meaning, completed
            successfully.<li>`unknown_revert`: Fordefi does not know the reason
            for the reversion.<li>`contract_asserted`: The smart contract
            originally made an assertion that was later rejected and the
            transaction was halted. <li>`insufficient_funds_gas_and_value`: A
            transaction was sent for which there were insufficient funds.</ul>
        reason:
          title: Reason
          description: The reason for the reversion (additional information).
          type: string
      type: object
      required:
        - state
      title: StarknetReversion
    StarknetReversionState:
      type: string
      enum:
        - not_reverted
        - unknown_revert
        - contract_asserted
        - insufficient_funds_gas_and_value
      title: StarknetReversionState
    StarknetSuggestedFees:
      properties:
        type:
          type: string
          const: starknet
          title: Type
          description: The type of the chain.
        chain_unique_id:
          $ref: '#/components/schemas/StarknetChainUniqueId'
          description: The Starknet chain unique id.
        gas_price:
          type: string
          pattern: ^\d+$
          title: Gas Price
          description: The Current L1 gas price in FRI.
          example: '1000000000000000000'
      type: object
      required:
        - type
        - chain_unique_id
        - gas_price
      title: StarknetSuggestedFees
    StarknetTransaction:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state of the transaction.
        state_changes:
          items:
            $ref: '#/components/schemas/PushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the transaction.
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        incoming_aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchIncoming'
        type:
          type: string
          const: starknet_transaction
          title: Type
          description: Starknet transaction type.
        starknet_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/StarknetNativeTransferDetails'
            - $ref: '#/components/schemas/StarknetErc20TransferDetails'
            - $ref: '#/components/schemas/StarknetRawTransactionDetails'
            - $ref: '#/components/schemas/StarknetContractCreationDetails'
          description: Details of the Starknet transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              contract_deployment: '#/components/schemas/StarknetContractCreationDetails'
              erc20_transfer: '#/components/schemas/StarknetErc20TransferDetails'
              native_transfer: '#/components/schemas/StarknetNativeTransferDetails'
              raw_transaction: '#/components/schemas/StarknetRawTransactionDetails'
        call_data:
          items:
            $ref: '#/components/schemas/StarknetCallData'
          type: array
          title: Call Data
          description: The call data of the transaction.
        chain:
          $ref: '#/components/schemas/EnrichedStarknetChain'
          description: The details of the chain this transaction is on.
        nonce:
          title: Nonce
          description: The nonce of the transaction.
          type: integer
        sender:
          $ref: '#/components/schemas/EnrichedStarknetAddress'
          description: The sender of the transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          example: '0x0684532b069fb0ce7e22041538a1c5e4850aafae042c772393cd7d795b767c74'
        block:
          description: The block in which the transaction was mined.
          $ref: '#/components/schemas/StarknetBlock'
        expected_result:
          description: The expected result of the transaction in case it is mined.
          $ref: '#/components/schemas/StarknetTransactionResult'
        simulation_status_result:
          description: Whether simulation succeeded or failed.
          $ref: '#/components/schemas/SimulationStatusResult'
        mined_result:
          description: The result of the transaction after it was mined.
          $ref: '#/components/schemas/StarknetTransactionResult'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of this transaction in a blockchain explorer. For example,
            starkscan.co
          example: >-
            https://starkscan.co/tx/0x0684532b069fb0ce7e22041538a1c5e4850aafae042c772393cd7d795b767c74
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        l1_gas_max_amount:
          title: L1 Gas Max Amount
          description: The maximum amount of the l1 gas
          type: string
          pattern: ^0*[1-9]\d*$
          example: '1000000000000000000'
        l1_gas_max_price_per_unit:
          title: L1 Gas Max Price Per Unit
          description: The maximum price per unit of the l1 gas
          type: string
          pattern: ^0*[1-9]\d*$
          example: '1000000000000000000'
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - starknet_transaction_type_details
        - call_data
        - chain
        - sender
      title: StarknetTransaction
    StarknetTransactionResult:
      properties:
        reversion:
          $ref: '#/components/schemas/StarknetReversion'
          description: Details whether the transaction was reverted or not.
        fees:
          $ref: '#/components/schemas/StarknetFees'
          description: The total fee of the first transaction on the trace.
        effects:
          $ref: '#/components/schemas/StarknetEffects'
          description: The effects of the transaction.
      type: object
      required:
        - reversion
        - fees
        - effects
      title: StarknetTransactionResult
    StarknetTransactionType:
      type: string
      enum:
        - native_transfer
        - erc20_transfer
        - raw_transaction
        - contract_deployment
      title: StarknetTransactionType
    StarknetTransferEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the transfer.
          example: '1000000000000000000'
        from:
          $ref: '#/components/schemas/EnrichedStarknetAddress'
          description: The sender of the transfer.
        to:
          $ref: '#/components/schemas/EnrichedStarknetAddress'
          description: The receiver of the transfer.
      type: object
      required:
        - priced_asset
        - amount
        - from
        - to
      title: StarknetTransferEffect
    StarknetTypedMessageRequest:
      properties:
        type:
          type: string
          const: typed_message_type
          title: Type
          description: EIP-712 message standard.
        chain:
          $ref: '#/components/schemas/StarknetChainUniqueId'
          description: >-
            The chain that this transaction is on. Specify the chain name (for
            example, `starknet_mainnet`).
        raw_data:
          type: string
          minLength: 1
          title: Raw Data
          description: >-
            The raw data of the message to be signed, provided as a string or
            hex-encoded.
      type: object
      required:
        - type
        - chain
        - raw_data
      title: StarknetTypedMessageRequest
    StarknetVault:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        metadata:
          title: Metadata
          description: Metadata in a form of map<str, bool | str | int | array[str]>.
          additionalProperties:
            anyOf:
              - items:
                  type: string
                type: array
              - type: string
              - type: integer
              - type: boolean
          type: object
        name:
          type: string
          title: Name
          description: The name of the vault.
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: Details of the vault creator.
        vault_group:
          $ref: '#/components/schemas/VaultGroupRef'
          description: The vault group this vault belongs to.
        pending_vault_group_action:
          description: Details of pending vault movement to another vault group.
          oneOf:
            - $ref: '#/components/schemas/PendingVaultGroupActionAdd'
            - $ref: '#/components/schemas/PendingVaultGroupActionRemove'
          discriminator:
            propertyName: type
            mapping:
              add: '#/components/schemas/PendingVaultGroupActionAdd'
              remove: '#/components/schemas/PendingVaultGroupActionRemove'
        state:
          $ref: '#/components/schemas/VaultState'
          description: State of the vault.
        public_key_compressed:
          type: string
          title: Public Key Compressed
          description: >-
            The public key of the vault in its compressed form: <ul> <li>For
            ECDSA and Schnorr keys, the public key is represented as 33 bytes
            (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1
            standard](https://www.secg.org/SEC1-Ver-1.0.pdf). <li>For EdDSA, the
            public key is represented as a 32-byte value, as defined by [RFC
            8032](https://datatracker.ietf.org/doc/html/rfc8032). </ul>
          example: SGVsbG8=
        derivation_info:
          $ref: '#/components/schemas/VaultDerivationInfo'
          description: The derivation info of the vault.
        key_holder:
          description: >-
            The user who owns the keyset of the vault. If not provided, the
            vault is owned by the organization.
          $ref: '#/components/schemas/EndUserRef'
        origin_type:
          $ref: '#/components/schemas/VaultOriginType'
          description: The origin type of the vault.
        type:
          type: string
          const: starknet
          title: Type
          description: Starknet vault type.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address of the vault on Starknet chain types.
          example: '0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8'
        activation_state:
          $ref: '#/components/schemas/StarknetVaultState'
          description: State of the vault on the Starknet chain.
        activating_transaction_id:
          title: Activating Transaction Id
          description: The transaction id of the activating transaction.
          type: string
          format: uuid
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - created_by
        - vault_group
        - state
        - are_all_chains_disabled
        - derivation_path
        - public_key_compressed
        - derivation_info
        - keyset
        - origin_type
        - type
        - address
        - activation_state
      title: StarknetVault
      description: Represents a Starknet vault in the Fordefi platform
    StarknetVaultState:
      type: string
      enum:
        - inactive
        - activating
        - active
      title: StarknetVaultState
    StartImportKeysRequest:
      oneOf:
        - $ref: '#/components/schemas/FireblocksImportPackage'
        - $ref: '#/components/schemas/StandaloneImportPackage'
      discriminator:
        propertyName: type
        mapping:
          fireblocks: '#/components/schemas/FireblocksImportPackage'
          standalone: '#/components/schemas/StandaloneImportPackage'
    StartImportKeysResponse:
      properties:
        keys:
          items:
            $ref: '#/components/schemas/OrganizationMasterKey'
          type: array
          title: Keys
          description: The list of imported keys.
      type: object
      required:
        - keys
      title: StartImportKeysResponse
    StateChangeReason:
      type: string
      enum:
        - failed_to_verify_signature
        - original_transaction_was_completed
      title: StateChangeReason
    StdCoin:
      properties:
        denom:
          type: string
          title: Denom
          description: Denom of this coin.
        amount:
          type: string
          pattern: ^-?\d+$
          title: Amount
          description: Amount of this coin.
          example: '1000000000000000000'
      type: object
      required:
        - denom
        - amount
      title: StdCoin
    StdFee:
      properties:
        coins:
          items:
            $ref: '#/components/schemas/CosmosCoinWithAmount'
          type: array
          title: Coins
        gas:
          type: string
          pattern: ^-?\d+$
          title: Gas
          description: The gas amount.
          example: '1000000000000000000'
        payer:
          description: The payer.
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
        granter:
          description: The granter.
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
        fee_payer:
          description: The fee payer.
          $ref: '#/components/schemas/EnrichedCosmosBechAddress'
      type: object
      required:
        - coins
        - gas
      title: StdFee
    StdFeeRequest:
      properties:
        amount:
          items:
            $ref: '#/components/schemas/StdCoin'
          type: array
          title: Amount
          description: List of coins to pay for this transaction.
        gas:
          type: string
          pattern: ^\d+$
          title: Gas
          description: Gas wanted for this transaction.
          example: '1000000000000000000'
        payer:
          title: Payer
          description: Payer for this transaction.
          default: ''
          type: string
        granter:
          title: Granter
          description: Granter for this transaction.
          default: ''
          type: string
        fee_payer:
          title: Fee Payer
          description: Fee Payer for this transaction.
          default: ''
          type: string
      type: object
      required:
        - amount
        - gas
      title: StdFeeRequest
    StdSignDoc:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedCosmosChain'
          description: The chain the transaction is signed on.
        account_number:
          type: string
          pattern: ^-?\d+$
          title: Account Number
          description: The account number of the signer of the transaction.
          example: '1000000000000000000'
        sequence:
          type: string
          pattern: ^-?\d+$
          title: Sequence
          description: The sequence of the signer of the transaction.
          example: '1000000000000000000'
        timeout_height:
          title: Timeout Height
          description: The timeout height for the signed transaction.
          type: string
          pattern: ^-?\d+$
          example: '1000000000000000000'
        fee:
          $ref: '#/components/schemas/StdFee'
          description: The fee of the signed transaction.
        messages:
          $ref: '#/components/schemas/AminoMessagesList'
          description: The messages of the signed transaction.
        memo:
          type: string
          title: Memo
          description: The memo of the signed transaction.
      type: object
      required:
        - chain
        - account_number
        - sequence
        - fee
        - messages
        - memo
      title: StdSignDoc
    SuggestedFees:
      oneOf:
        - $ref: '#/components/schemas/AptosSuggestedFees'
        - $ref: '#/components/schemas/CosmosSuggestedFees'
        - $ref: '#/components/schemas/EvmSuggestedFees'
        - $ref: '#/components/schemas/StarknetSuggestedFees'
        - $ref: '#/components/schemas/SuiSuggestedFees'
        - $ref: '#/components/schemas/TonSuggestedFees'
        - $ref: '#/components/schemas/UtxoSuggestedFees'
      discriminator:
        propertyName: type
        mapping:
          aptos: '#/components/schemas/AptosSuggestedFees'
          cosmos: '#/components/schemas/CosmosSuggestedFees'
          evm: '#/components/schemas/EvmSuggestedFees'
          starknet: '#/components/schemas/StarknetSuggestedFees'
          sui: '#/components/schemas/SuiSuggestedFees'
          ton: '#/components/schemas/TonSuggestedFees'
          utxo: '#/components/schemas/UtxoSuggestedFees'
    SuiAddressBookContact:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        name:
          type: string
          title: Name
          description: The name of the contact.
        modified_by:
          $ref: '#/components/schemas/UserRef'
          description: Address last modifier.
        state:
          $ref: '#/components/schemas/AddressBookContactState'
          description: The state of the contact.
        groups:
          items:
            $ref: '#/components/schemas/GroupRef'
          type: array
          title: Groups
          description: List of contact's groups.
        pending_changes:
          description: Pending changes for the contact.
          $ref: '#/components/schemas/AddressBookContactChanges'
        asset_infos:
          items:
            $ref: '#/components/schemas/AssetInfo'
          type: array
          title: Asset Infos
          description: >-
            A list of asset infos for the contact. Can be used to enforce
            trading of specific assets intransfers to this address
        chain_type:
          type: string
          const: sui
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address on the sui chain.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
        chains:
          items:
            $ref: '#/components/schemas/EnrichedSuiChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - modified_by
        - state
        - groups
        - asset_infos
        - chain_type
        - address
        - chains
      title: SuiAddressBookContact
      description: Represents a contact in the Fordefi platform
    SuiAddressBookContactAddressRef:
      properties:
        chain_type:
          type: string
          const: sui
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address on the Sui chain.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
        chains:
          items:
            $ref: '#/components/schemas/SuiChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
      type: object
      required:
        - chain_type
        - address
        - chains
      title: SuiAddressBookContactAddressRef
    SuiAsset:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The asset ID.
        decimals:
          type: integer
          minimum: 0
          title: Decimals
        price:
          description: The price of the asset.
          $ref: '#/components/schemas/Price'
        name:
          type: string
          title: Name
          description: The name of the asset.
        symbol:
          type: string
          title: Symbol
          description: The symbol (ticker) of the asset.
        hidden:
          type: boolean
          title: Hidden
          description: '`True` if this asset was set to be hidden, `False` otherwise.'
        verified:
          type: boolean
          title: Verified
          description: '`True` if this asset is verified by Fordefi, `False` otherwise.'
        asset_identifier:
          $ref: '#/components/schemas/EnrichedAssetIdentifier'
          description: The asset identifier.
        metadata_uri:
          title: Metadata Uri
          description: The URI of the asset metadata.
          type: string
      type: object
      required:
        - id
        - decimals
        - name
        - symbol
        - hidden
        - verified
        - asset_identifier
        - type
        - details
      title: SuiAsset
    SuiAssetIdentifier:
      properties:
        type:
          type: string
          const: sui
          title: Type
          description: Sui asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/SuiNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/SuiCoinAssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              coin: '#/components/schemas/SuiCoinAssetIdentifierRequest'
              native: '#/components/schemas/SuiNativeAssetIdentifierRequest'
        chain:
          $ref: '#/components/schemas/EnrichedSuiChain'
      type: object
      required:
        - type
        - details
        - chain
      title: SuiAssetIdentifier
    SuiAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: sui
          title: Type
          description: Sui asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/SuiNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/SuiCoinAssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              coin: '#/components/schemas/SuiCoinAssetIdentifierRequest'
              native: '#/components/schemas/SuiNativeAssetIdentifierRequest'
      type: object
      required:
        - type
        - details
      title: SuiAssetIdentifierRequest
    SuiBalanceChangeEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        diff:
          type: string
          pattern: ^-?\d+$
          title: Diff
          description: >-
            The amount of that was added to or deducted from the owner's
            balance. If the amount was deducted, the value is negative; if the
            amount was added, the value is positive.
          example: '1000000000000000000'
        address:
          $ref: '#/components/schemas/EnrichedSuiAddress'
          description: The address affected by the balance change.
      type: object
      required:
        - priced_asset
        - diff
        - type
        - address
      title: SuiBalanceChangeEffect
    SuiBalanceChangeEffectType:
      type: string
      enum:
        - native
        - coin
      title: SuiBalanceChangeEffectType
    SuiChain:
      properties:
        chain_type:
          type: string
          const: sui
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/SuiChainUniqueId'
          description: The type of the Sui-based chain.
      type: object
      required:
        - chain_type
        - unique_id
      title: SuiChain
    SuiChainUniqueId:
      type: string
      enum:
        - sui_mainnet
        - sui_testnet
      title: SuiChainUniqueId
    SuiCheckpointData:
      properties:
        sequence_number:
          type: integer
          title: Sequence Number
          description: The sequence number of the checkpoint.
        digest:
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          title: Digest
          description: The digest of the checkpoint
          example: 9K8mnqJdxf3B7vgFmRhj9JqKqsN5AxvSgWk5faGshEta
        mined_at:
          type: string
          format: date-time
          title: Mined At
          description: The date and time this checkpoint was mined.
      type: object
      required:
        - sequence_number
        - digest
        - mined_at
      title: SuiCheckpointData
    SuiCoinAsset:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedSuiChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: sui_coin_asset
          title: Type
          description: Sui asset type.
      type: object
      required:
        - chain
        - type
      title: SuiCoinAsset
    SuiCoinAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: coin
          title: Type
          description: Coin asset identifier type.
        coin_type:
          $ref: '#/components/schemas/SuiCoinTypeRequest'
          description: The Coin details.
      type: object
      required:
        - type
        - coin_type
      title: SuiCoinAssetIdentifierRequest
    SuiCoinTransferDetails:
      properties:
        type:
          type: string
          const: coin_transfer
          title: Type
          description: >-
            A transaction involving the transfer of non-SUI coin from one
            address to another. 
        sender:
          $ref: '#/components/schemas/EnrichedSuiAddress'
          description: The sender of the coins.
        recipient:
          $ref: '#/components/schemas/EnrichedSuiAddress'
          description: The recipient of the coins.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - sender
        - recipient
      title: SuiCoinTransferDetails
    SuiCoinTypeRequest:
      properties:
        chain:
          $ref: '#/components/schemas/SuiChainUniqueId'
          description: The chain details this address is of.
        coin_type_str:
          type: string
          title: Coin Type Str
          description: Coin type string representation.
      type: object
      required:
        - chain
        - coin_type_str
      title: SuiCoinTypeRequest
      description: Coin type represents a blockchain coin type.
    SuiCommand:
      oneOf:
        - $ref: '#/components/schemas/SuiTransferObjectsCommand'
        - $ref: '#/components/schemas/SuiSplitCoinsCommand'
        - $ref: '#/components/schemas/SuiMergeCoinsCommand'
        - $ref: '#/components/schemas/SuiMakeMoveVecCommand'
        - $ref: '#/components/schemas/SuiMoveCallCommand'
      discriminator:
        propertyName: type
        mapping:
          make_move_vec: '#/components/schemas/SuiMakeMoveVecCommand'
          merge_coins: '#/components/schemas/SuiMergeCoinsCommand'
          move_call: '#/components/schemas/SuiMoveCallCommand'
          split_coins: '#/components/schemas/SuiSplitCoinsCommand'
          transfer_objects: '#/components/schemas/SuiTransferObjectsCommand'
    SuiCommandArgument:
      oneOf:
        - $ref: '#/components/schemas/SuiCommandInputArgument'
        - $ref: '#/components/schemas/SuiCommandGasCoinArgument'
        - $ref: '#/components/schemas/SuiCommandResultArgument'
        - $ref: '#/components/schemas/SuiCommandNestedResultArgument'
      discriminator:
        propertyName: type
        mapping:
          gas_coin: '#/components/schemas/SuiCommandGasCoinArgument'
          input: '#/components/schemas/SuiCommandInputArgument'
          nested_result: '#/components/schemas/SuiCommandNestedResultArgument'
          result: '#/components/schemas/SuiCommandResultArgument'
    SuiCommandGasCoinArgument:
      properties:
        type:
          type: string
          const: gas_coin
          title: Type
          description: The type of the command argument.
      type: object
      required:
        - type
      title: SuiCommandGasCoinArgument
      description: The object for the SUI coin used to pay for gas.
    SuiCommandInputArgument:
      properties:
        type:
          type: string
          const: input
          title: Type
          description: The type of the command argument.
        index:
          type: integer
          title: Index
          description: The index of the input in the input vector.
      type: object
      required:
        - type
        - index
      title: SuiCommandInputArgument
    SuiCommandNestedResultArgument:
      properties:
        type:
          type: string
          const: nested_result
          title: Type
          description: The type of the command argument.
        index:
          type: integer
          title: Index
          description: The index of the command in the command vector.
        result_index:
          type: integer
          title: Result Index
          description: The index of the result in the result vector of that command.
      type: object
      required:
        - type
        - index
        - result_index
      title: SuiCommandNestedResultArgument
      description: Like a `SuiCommandResultArgument` but it accesses a nested result.
    SuiCommandResultArgument:
      properties:
        type:
          type: string
          const: result
          title: Type
          description: The type of the command argument.
        index:
          type: integer
          title: Index
          description: The index of the command in the command vector.
      type: object
      required:
        - type
        - index
      title: SuiCommandResultArgument
      description: The result of another command.
    SuiEffects:
      properties:
        balance_changes:
          items:
            $ref: '#/components/schemas/SuiBalanceChangeEffect'
          type: array
          title: Balance Changes
          description: The aggregated balance changes of addresses.
        transfers:
          items:
            $ref: '#/components/schemas/SuiTransferEffect'
          type: array
          title: Transfers
          description: The transfer events of the transaction.
      type: object
      required:
        - balance_changes
        - transfers
      title: SuiEffects
    SuiGas:
      properties:
        total_gas:
          type: string
          pattern: ^-?\d+$
          title: Total Gas
          description: The total gas fee of the transaction (in MIST).
          example: '1000000000000000000'
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The information of the asset used to pay the fee and amount used.
      type: object
      required:
        - total_gas
        - priced_asset
      title: SuiGas
    SuiGasConfig:
      properties:
        budget:
          title: Budget
          description: The budget of the gas in the transaction (in MIST).
          type: string
          pattern: ^0*[1-9]\d*$
          example: '1000000000000000000'
        price:
          title: Price
          description: The price per gas unit (in MIST).
          type: string
          pattern: ^0*[1-9]\d*$
          example: '1000000000000000000'
        payment:
          items:
            $ref: '#/components/schemas/SuiObjectRef'
          type: array
          title: Payment
          description: The list of SUI coins used to pay for the gas.
      type: object
      required:
        - payment
      title: SuiGasConfig
    SuiImmOrOwnedObjectRefInputArgument:
      properties:
        digest:
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          title: Digest
          description: The digest of the object.
          example: 9K8mnqJdxf3B7vgFmRhj9JqKqsN5AxvSgWk5faGshEta
        object_id:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Object Id
          description: The id of the object.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
        version:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Version
          description: The version of the object.
          example: '1000000000000000000'
        type:
          type: string
          const: imm_or_owned
          title: Type
          description: The type of the object.
      type: object
      required:
        - digest
        - object_id
        - version
        - type
      title: SuiImmOrOwnedObjectRefInputArgument
    SuiInput:
      oneOf:
        - $ref: '#/components/schemas/SuiPureInputArgument'
        - $ref: '#/components/schemas/SuiObjectInputArgument'
      discriminator:
        propertyName: type
        mapping:
          object: '#/components/schemas/SuiObjectInputArgument'
          pure: '#/components/schemas/SuiPureInputArgument'
    SuiMakeMoveVecCommand:
      properties:
        type:
          type: string
          const: make_move_vec
          title: Type
          description: The type of the command.
        type_tag:
          title: Type Tag
          description: The type of the values in the vector.
          type: string
        objects:
          items:
            $ref: '#/components/schemas/SuiCommandArgument'
          type: array
          title: Objects
          description: The values to put in the vector.
      type: object
      required:
        - type
        - objects
      title: SuiMakeMoveVecCommand
      description: Given n-values of the same type, it constructs a vector.
    SuiMergeCoinsCommand:
      properties:
        type:
          type: string
          const: merge_coins
          title: Type
          description: The type of the command.
        source_coin_objects:
          items:
            $ref: '#/components/schemas/SuiCommandArgument'
          type: array
          title: Source Coin Objects
          description: The coins to merge.
        destination_coin_object:
          $ref: '#/components/schemas/SuiCommandArgument'
          description: The coin to merge into.
      type: object
      required:
        - type
        - source_coin_objects
        - destination_coin_object
      title: SuiMergeCoinsCommand
      description: Merge coins into a single coin.
    SuiMessage:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state of the message.
        state_changes:
          items:
            $ref: '#/components/schemas/NonPushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the message.
        type:
          type: string
          const: sui_message
          title: Type
          description: Sui message type.
        sui_message_type:
          $ref: '#/components/schemas/SuiMessageType'
          description: The type of the Sui message.
        string_data:
          type: string
          title: String Data
          description: The message as a string.
        raw_data:
          type: string
          title: Raw Data
          description: The raw data of the message, encoded in base64
          example: SGVsbG8=
        chain:
          $ref: '#/components/schemas/EnrichedSuiChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedSuiAddress'
          description: The sender of the message.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - sui_message_type
        - string_data
        - raw_data
        - chain
        - sender
      title: SuiMessage
    SuiMessageType:
      type: string
      enum:
        - personal_message_type
      title: SuiMessageType
    SuiMessageVersion:
      type: string
      enum:
        - v1
      title: SuiMessageVersion
    SuiMoveCallCommand:
      properties:
        type:
          type: string
          const: move_call
          title: Type
          description: The type of the command.
        arguments:
          items:
            $ref: '#/components/schemas/SuiCommandArgument'
          type: array
          title: Arguments
          description: The arguments of the call.
        target:
          type: string
          pattern: ^(.*?)::(.*?)::(.*?)$
          title: Target
          description: The target of the call.
        type_arguments:
          items:
            type: string
          type: array
          title: Type Arguments
          description: The types of the arguments.
      type: object
      required:
        - type
        - arguments
        - target
        - type_arguments
      title: SuiMoveCallCommand
      description: A call to either an entry or a public Move function.
    SuiNativeAsset:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedSuiChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: sui_native_asset
          title: Type
          description: Sui asset type.
      type: object
      required:
        - chain
        - type
      title: SuiNativeAsset
    SuiNativeAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: native
          title: Type
          description: Sui asset identifier type.
        chain:
          $ref: '#/components/schemas/SuiChainUniqueId'
          description: The details of the chain of the native asset.
      type: object
      required:
        - type
        - chain
      title: SuiNativeAssetIdentifierRequest
    SuiNativeTransferDetails:
      properties:
        type:
          type: string
          const: native_transfer
          title: Type
          description: >-
            A transaction involving the transfer of SUI coin from one address to
            another. 
        sender:
          $ref: '#/components/schemas/EnrichedSuiAddress'
          description: The sender of the coins.
        recipient:
          $ref: '#/components/schemas/EnrichedSuiAddress'
          description: The recipient of the coins.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - sender
        - recipient
      title: SuiNativeTransferDetails
    SuiObjectInputArgument:
      properties:
        type:
          type: string
          const: object
          title: Type
          description: The type of the input argument.
        details:
          oneOf:
            - $ref: '#/components/schemas/SuiImmOrOwnedObjectRefInputArgument'
            - $ref: '#/components/schemas/SuiReceivingObjectRefInputArgument'
            - $ref: '#/components/schemas/SuiSharedObjectRefInputArgument'
            - $ref: '#/components/schemas/SuiPartialObjectRefInputArgument'
          discriminator:
            propertyName: type
            mapping:
              imm_or_owned: '#/components/schemas/SuiImmOrOwnedObjectRefInputArgument'
              partial: '#/components/schemas/SuiPartialObjectRefInputArgument'
              receiving: '#/components/schemas/SuiReceivingObjectRefInputArgument'
              shared: '#/components/schemas/SuiSharedObjectRefInputArgument'
      type: object
      required:
        - type
        - details
      title: SuiObjectInputArgument
    SuiObjectRef:
      properties:
        digest:
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          title: Digest
          description: The digest of the object.
          example: 9K8mnqJdxf3B7vgFmRhj9JqKqsN5AxvSgWk5faGshEta
        object_id:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Object Id
          description: The id of the object.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
        version:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Version
          description: The version of the object.
          example: '1000000000000000000'
      type: object
      required:
        - digest
        - object_id
        - version
      title: SuiObjectRef
    SuiPartialObjectRefInputArgument:
      properties:
        type:
          type: string
          const: partial
          title: Type
          description: The type of the object.
        object_id:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Object Id
          description: The id of the object.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
      type: object
      required:
        - type
        - object_id
      title: SuiPartialObjectRefInputArgument
    SuiPersonalMessageRequest:
      properties:
        type:
          type: string
          const: personal_message_type
          title: Type
          description: Personal message standard.
        chain:
          $ref: '#/components/schemas/SuiChainUniqueId'
          description: The details of the chain of the native asset.
        raw_data:
          type: string
          title: Raw Data
          description: Base64 of the message to be signed.
          example: SGVsbG8=
      type: object
      required:
        - type
        - chain
        - raw_data
      title: SuiPersonalMessageRequest
    SuiProgrammableTransactionBlockDetails:
      properties:
        type:
          type: string
          const: programmable_transaction_block
          title: Type
          description: A transaction capable of any operation.
        sender:
          $ref: '#/components/schemas/EnrichedSuiAddress'
          description: The sender of the transaction.
        recipients:
          items:
            $ref: '#/components/schemas/EnrichedSuiAddress'
          type: array
          title: Recipients
          description: The recipients that interacted with the transaction.
      type: object
      required:
        - type
        - sender
        - recipients
      title: SuiProgrammableTransactionBlockDetails
    SuiPureBoolInput:
      properties:
        type:
          type: string
          const: bool_pure_input
          title: Type
          description: The type of the pure input.
        value:
          type: boolean
          title: Value
          description: The boolean value of the pure input argument.
      type: object
      required:
        - type
        - value
      title: SuiPureBoolInput
    SuiPureByteArrayInput:
      properties:
        type:
          type: string
          const: byte_array_pure_input
          title: Type
          description: The type of the pure input.
        value:
          type: string
          title: Value
          description: >-
            The byte array value of the pure input argument, represented as a
            base64 string.
          example: SGVsbG8=
      type: object
      required:
        - type
        - value
      title: SuiPureByteArrayInput
    SuiPureInputArgument:
      properties:
        type:
          type: string
          const: pure
          title: Type
          description: The type of the input argument.
        details:
          $ref: '#/components/schemas/BaseSuiPureInput'
      type: object
      required:
        - type
        - details
      title: SuiPureInputArgument
    SuiPureNumberInput:
      properties:
        type:
          type: string
          const: number_pure_input
          title: Type
          description: The type of the pure input.
        value:
          type: string
          pattern: ^\d+$
          title: Value
          description: The number value of the pure input argument.
          example: '1000000000000000000'
      type: object
      required:
        - type
        - value
      title: SuiPureNumberInput
    SuiPureStringInput:
      properties:
        type:
          type: string
          const: string_pure_input
          title: Type
          description: The type of the pure input.
        value:
          type: string
          title: Value
          description: The string value of the pure input argument.
      type: object
      required:
        - type
        - value
      title: SuiPureStringInput
    SuiReceivingObjectRefInputArgument:
      properties:
        digest:
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          title: Digest
          description: The digest of the object.
          example: 9K8mnqJdxf3B7vgFmRhj9JqKqsN5AxvSgWk5faGshEta
        object_id:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Object Id
          description: The id of the object.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
        version:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Version
          description: The version of the object.
          example: '1000000000000000000'
        type:
          type: string
          const: receiving
          title: Type
          description: The type of the object.
      type: object
      required:
        - digest
        - object_id
        - version
        - type
      title: SuiReceivingObjectRefInputArgument
    SuiRecipientHex:
      properties:
        type:
          type: string
          const: hex
          title: Type
          description: The type of the recipient.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address of the recipient.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
      type: object
      required:
        - type
        - address
      title: SuiRecipientHex
    SuiReversion:
      properties:
        state:
          $ref: '#/components/schemas/SuiReversionState'
          description: >-
            The state of the reversion. Is one of the
            following:<ul><li>`not_reverted`: No reversion, meaning, completed
            successfully.<li>`unknown_revert`: Fordefi does not know the reason
            for the reversion.<li>`contract_asserted`: Insufficient coin
            balance.<li>`insufficient_funds_gas_and_value`: A transaction was
            sent for which there were insufficient funds.<li>`invalid_input`:
            The input data was
            invalid.<li>`transaction_failed_to_reach_finality`: The transaction
            failed to reach finality state.<li>`out_of_gas`: The transaction ran
            out of gas.<li>`transaction_locked_objects_failure`: The transaction
            failed due to locked objects on validator.</ul>
        reason:
          title: Reason
          description: The reason for the reversion (additional information).
          type: string
      type: object
      required:
        - state
      title: SuiReversion
    SuiReversionState:
      type: string
      enum:
        - not_reverted
        - unknown_revert
        - contract_asserted
        - insufficient_funds_gas_and_value
        - invalid_input
        - transaction_failed_to_reach_finality
        - out_of_gas
        - transaction_locked_objects_failure
      title: SuiReversionState
    SuiSharedObjectRefInputArgument:
      properties:
        type:
          type: string
          const: shared
          title: Type
          description: The type of the object.
        object_id:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Object Id
          description: The id of the shared object.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
        initial_shared_version:
          type: integer
          title: Initial Shared Version
          description: The initial shared version of the object.
        mutable:
          type: boolean
          title: Mutable
          description: '`True` if the object is mutable, `False` otherwise.'
      type: object
      required:
        - type
        - object_id
        - initial_shared_version
        - mutable
      title: SuiSharedObjectRefInputArgument
    SuiSplitCoinsCommand:
      properties:
        type:
          type: string
          const: split_coins
          title: Type
          description: The type of the command.
        coin_object:
          $ref: '#/components/schemas/SuiCommandArgument'
          description: The coin to split.
        amounts:
          items:
            $ref: '#/components/schemas/SuiCommandArgument'
          type: array
          title: Amounts
          description: The amounts to split the coin into.
      type: object
      required:
        - type
        - coin_object
        - amounts
      title: SuiSplitCoinsCommand
      description: Split coin into smaller coins.
    SuiSuggestedFees:
      properties:
        type:
          type: string
          const: sui
          title: Type
          description: The type of the chain.
        chain_unique_id:
          $ref: '#/components/schemas/SuiChainUniqueId'
          description: The Sui chain unique id.
      type: object
      required:
        - type
        - chain_unique_id
      title: SuiSuggestedFees
    SuiTransaction:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state of the transaction.
        state_changes:
          items:
            $ref: '#/components/schemas/PushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the transaction.
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        incoming_aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchIncoming'
        type:
          type: string
          const: sui_transaction
          title: Type
          description: Sui transaction type.
        sui_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/SuiNativeTransferDetails'
            - $ref: '#/components/schemas/SuiCoinTransferDetails'
            - $ref: '#/components/schemas/SuiProgrammableTransactionBlockDetails'
          description: Details of the Sui transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              coin_transfer: '#/components/schemas/SuiCoinTransferDetails'
              native_transfer: '#/components/schemas/SuiNativeTransferDetails'
              programmable_transaction_block: '#/components/schemas/SuiProgrammableTransactionBlockDetails'
        chain:
          $ref: '#/components/schemas/EnrichedSuiChain'
          description: The details of the chain this transaction is on.
        version:
          $ref: '#/components/schemas/SuiMessageVersion'
          description: The version of the transaction message.
        inputs:
          items:
            $ref: '#/components/schemas/SuiInput'
          type: array
          title: Inputs
          description: The inputs of the transaction.
        commands:
          items:
            $ref: '#/components/schemas/SuiCommand'
          type: array
          title: Commands
          description: The commands of the transactions.
        sender:
          $ref: '#/components/schemas/EnrichedSuiAddress'
          description: The sender of the transaction.
        recipient:
          description: The recipient of the transaction.
          $ref: '#/components/schemas/EnrichedSuiAddress'
        digest:
          title: Digest
          description: The digest of the transaction.
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          example: 9K8mnqJdxf3B7vgFmRhj9JqKqsN5AxvSgWk5faGshEta
        tx_bytes:
          title: Tx Bytes
          description: The tx_bytes param encoded as a base64 string.
          type: string
          example: SGVsbG8=
        decoded_tx_bytes:
          title: Decoded Tx Bytes
          description: The json representation of the transaction's data
          type: string
        checkpoint:
          description: Details of the checkpoint the transaction was mined in.
          $ref: '#/components/schemas/SuiCheckpointData'
        epoch:
          title: Epoch
          description: The epoch of the transaction.
          type: integer
        gas_submitted:
          $ref: '#/components/schemas/SuiGasConfig'
          description: The gas details submitted for the transaction.
        expected_result:
          description: The expected result of the transaction in case it is mined.
          $ref: '#/components/schemas/SuiTransactionResult'
        simulation_status_result:
          $ref: '#/components/schemas/SimulationStatusResult'
          description: Whether simulation succeeded or failed.
        mined_result:
          description: The result of the transaction after it was mined.
          $ref: '#/components/schemas/SuiTransactionResult'
        transaction_block_data:
          title: Transaction Block Data
          description: >-
            The json representation of the transaction's data which contains the
            inputs and commands.
          type: string
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of this transaction in a blockchain explorer. For example,
            Suiscan.
          example: https://suiscan.xyz/mainnet/tx/9K8mnqJdxf3B7v...xvSgWk5faGshEta
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - sui_transaction_type_details
        - chain
        - version
        - inputs
        - commands
        - sender
        - gas_submitted
        - simulation_status_result
      title: SuiTransaction
    SuiTransactionResult:
      properties:
        reversion:
          $ref: '#/components/schemas/SuiReversion'
          description: Details whether the transaction was reverted or not.
        transaction_error:
          title: Transaction Error
          description: The description of the error of the transaction.
          type: string
        enriched_gas:
          $ref: '#/components/schemas/SuiGas'
          description: The gas of the transaction.
        effects:
          $ref: '#/components/schemas/SuiEffects'
          description: The effects of the transaction.
      type: object
      required:
        - reversion
        - enriched_gas
        - effects
      title: SuiTransactionResult
    SuiTransactionType:
      type: string
      enum:
        - native_transfer
        - coin_transfer
        - programmable_transaction_block
      title: SuiTransactionType
    SuiTransferEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the transfer.
          example: '1000000000000000000'
        from:
          $ref: '#/components/schemas/EnrichedSuiAddress'
          description: The sender of the transfer.
        to:
          $ref: '#/components/schemas/EnrichedSuiAddress'
          description: The receiver of the transfer.
      type: object
      required:
        - priced_asset
        - amount
        - type
        - from
        - to
      title: SuiTransferEffect
    SuiTransferEffectType:
      type: string
      enum:
        - native
        - coin
      title: SuiTransferEffectType
    SuiTransferObjectsCommand:
      properties:
        type:
          type: string
          const: transfer_objects
          title: Type
          description: The type of the command.
        objects:
          items:
            $ref: '#/components/schemas/SuiCommandArgument'
          type: array
          title: Objects
          description: The objects to transfer.
        address:
          $ref: '#/components/schemas/SuiCommandArgument'
          description: The destination address of the transfer.
      type: object
      required:
        - type
        - objects
        - address
      title: SuiTransferObjectsCommand
      description: Transfer objects from one account to another.
    SuiVault:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        metadata:
          title: Metadata
          description: Metadata in a form of map<str, bool | str | int | array[str]>.
          additionalProperties:
            anyOf:
              - items:
                  type: string
                type: array
              - type: string
              - type: integer
              - type: boolean
          type: object
        name:
          type: string
          title: Name
          description: The name of the vault.
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: Details of the vault creator.
        vault_group:
          $ref: '#/components/schemas/VaultGroupRef'
          description: The vault group this vault belongs to.
        pending_vault_group_action:
          description: Details of pending vault movement to another vault group.
          oneOf:
            - $ref: '#/components/schemas/PendingVaultGroupActionAdd'
            - $ref: '#/components/schemas/PendingVaultGroupActionRemove'
          discriminator:
            propertyName: type
            mapping:
              add: '#/components/schemas/PendingVaultGroupActionAdd'
              remove: '#/components/schemas/PendingVaultGroupActionRemove'
        state:
          $ref: '#/components/schemas/VaultState'
          description: State of the vault.
        public_key_compressed:
          type: string
          title: Public Key Compressed
          description: >-
            The public key of the vault in its compressed form: <ul> <li>For
            ECDSA and Schnorr keys, the public key is represented as 33 bytes
            (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1
            standard](https://www.secg.org/SEC1-Ver-1.0.pdf). <li>For EdDSA, the
            public key is represented as a 32-byte value, as defined by [RFC
            8032](https://datatracker.ietf.org/doc/html/rfc8032). </ul>
          example: SGVsbG8=
        derivation_info:
          $ref: '#/components/schemas/VaultDerivationInfo'
          description: The derivation info of the vault.
        key_holder:
          description: >-
            The user who owns the keyset of the vault. If not provided, the
            vault is owned by the organization.
          $ref: '#/components/schemas/EndUserRef'
        origin_type:
          $ref: '#/components/schemas/VaultOriginType'
          description: The origin type of the vault.
        type:
          type: string
          const: sui
          title: Type
          description: Sui vault type.
        address:
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Address
          description: The address of the vault on SUI chain types.
          example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - created_by
        - vault_group
        - state
        - are_all_chains_disabled
        - derivation_path
        - public_key_compressed
        - derivation_info
        - keyset
        - origin_type
        - type
        - address
      title: SuiVault
      description: Represents an SUI vault in the Fordefi platform
    SystemUser:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        user_type:
          type: string
          const: system
          title: User Type
          description: The type of the user.
        name:
          type: string
          title: Name
          description: The name of the system user.
        state:
          type: string
          const: active
          title: State
          description: >-
            The state of the system user can be only active and returned for
            consistency.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - user_type
        - name
        - state
      title: SystemUser
      description: Represents a System User in the Fordefi platform.
    SystemUserRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the user in the Fordefi platform.
        user_type:
          type: string
          const: system
          title: User Type
          description: The type of the user.
        name:
          type: string
          title: Name
          description: The name is Fordefi CARE
      type: object
      required:
        - id
        - user_type
        - name
      title: SystemUserRef
    TestWebhookErrorType:
      type: string
      enum:
        - http_error
        - server_disconnected
        - timeout
        - client_connection_error
        - unexpected_error
      title: TestWebhookErrorType
    TestWebhookRequest:
      properties:
        url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Url
          description: The URL of the webhook endpoint.
      type: object
      required:
        - url
      title: TestWebhookRequest
    TokenTransferDetails:
      properties:
        type:
          type: string
          const: token_transfer
          title: Type
          description: >-
            A transaction involving the transfer of a token from one address to
            another.
        recipient:
          $ref: '#/components/schemas/EnrichedEvmAddress'
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - direction
        - recipient
      title: TokenTransferDetails
    TonAccountRepr:
      properties:
        chain_type:
          type: string
          const: ton
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          title: Address
          description: The address of the TON contract in any format.
      type: object
      required:
        - chain_type
        - address
      title: TonAccountRepr
    TonAddressBookContact:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        name:
          type: string
          title: Name
          description: The name of the contact.
        modified_by:
          $ref: '#/components/schemas/UserRef'
          description: Address last modifier.
        state:
          $ref: '#/components/schemas/AddressBookContactState'
          description: The state of the contact.
        groups:
          items:
            $ref: '#/components/schemas/GroupRef'
          type: array
          title: Groups
          description: List of contact's groups.
        pending_changes:
          description: Pending changes for the contact.
          $ref: '#/components/schemas/AddressBookContactChanges'
        asset_infos:
          items:
            $ref: '#/components/schemas/AssetInfo'
          type: array
          title: Asset Infos
          description: >-
            A list of asset infos for the contact. Can be used to enforce
            trading of specific assets intransfers to this address
        chain_type:
          type: string
          const: ton
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          title: Address
          description: The address on the TON chain.
        chains:
          items:
            $ref: '#/components/schemas/EnrichedTonChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
        comment:
          title: Comment
          description: >-
            Comment is an additional address feature used for identifying a
            recipient.
          type: string
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - modified_by
        - state
        - groups
        - asset_infos
        - chain_type
        - address
        - chains
      title: TonAddressBookContact
      description: Represents a contact in the Fordefi platform
    TonAddressBookContactAddressRef:
      properties:
        chain_type:
          type: string
          const: ton
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          title: Address
          description: The address on the TON chain.
        chains:
          items:
            $ref: '#/components/schemas/TonChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
      type: object
      required:
        - chain_type
        - address
        - chains
      title: TonAddressBookContactAddressRef
    TonAddressFee:
      properties:
        address:
          $ref: '#/components/schemas/EnrichedTonAddress'
          description: The address that paid the fee.
        total_fee:
          type: integer
          title: Total Fee
          description: The total fee paid by this address, in nano tons.
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The information of the asset used to pay the fee and amount used.
      type: object
      required:
        - address
        - total_fee
        - priced_asset
      title: TonAddressFee
    TonAddressRequest:
      properties:
        chain:
          $ref: '#/components/schemas/TonChainUniqueId'
          description: The chain details this address is of.
        address:
          type: string
          title: Address
          description: Contract address in any format.
      type: object
      required:
        - chain
        - address
      title: TonAddressRequest
      description: Address represents a blockchain address.
    TonAssetIdentifier:
      properties:
        type:
          type: string
          const: ton
          title: Type
          description: TON asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/TonNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/TonJettonAssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              jetton: '#/components/schemas/TonJettonAssetIdentifierRequest'
              native: '#/components/schemas/TonNativeAssetIdentifierRequest'
        chain:
          $ref: '#/components/schemas/EnrichedTonChain'
      type: object
      required:
        - type
        - details
        - chain
      title: TonAssetIdentifier
    TonAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: ton
          title: Type
          description: TON asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/TonNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/TonJettonAssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              jetton: '#/components/schemas/TonJettonAssetIdentifierRequest'
              native: '#/components/schemas/TonNativeAssetIdentifierRequest'
      type: object
      required:
        - type
        - details
      title: TonAssetIdentifierRequest
    TonBalanceChangeEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        diff:
          type: string
          pattern: ^-?\d+$
          title: Diff
          description: >-
            The amount of that was added to or deducted from the owner's
            balance. If the amount was deducted, the value is negative; if the
            amount was added, the value is positive.
          example: '1000000000000000000'
        address:
          $ref: '#/components/schemas/EnrichedTonAddress'
          description: The address affected by the balance change.
      type: object
      required:
        - priced_asset
        - diff
        - address
      title: TonBalanceChangeEffect
    TonBlock:
      properties:
        sequence:
          type: integer
          title: Sequence
          description: The block number.
        hash:
          title: Hash
          description: The block hash.
          type: string
          maxLength: 64
          pattern: ^[a-fA-F0-9]+$
          example: c7482c1d424bdb2a555f069290a63ab144f3d06d34f944f6ae3505506b97989e
        mined_at:
          type: string
          format: date-time
          title: Mined At
          description: The date and time when this block was mined.
      type: object
      required:
        - sequence
        - mined_at
      title: TonBlock
    TonChain:
      properties:
        chain_type:
          type: string
          const: ton
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/TonChainUniqueId'
          description: The type of the TON-based chain.
      type: object
      required:
        - chain_type
        - unique_id
      title: TonChain
    TonChainUniqueId:
      type: string
      enum:
        - ton_mainnet
      title: TonChainUniqueId
    TonEffects:
      properties:
        balance_changes:
          items:
            $ref: '#/components/schemas/TonBalanceChangeEffect'
          type: array
          title: Balance Changes
        transfers:
          items:
            $ref: '#/components/schemas/TonTransferEffect'
          type: array
          title: Transfers
      type: object
      required:
        - balance_changes
        - transfers
      title: TonEffects
    TonJettonAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: jetton
          title: Type
          description: Jetton asset identifier type.
        jetton:
          $ref: '#/components/schemas/TonAddressRequest'
          description: The Jetton details.
      type: object
      required:
        - type
        - jetton
      title: TonJettonAssetIdentifierRequest
    TonJettonTransferDetails:
      properties:
        type:
          type: string
          const: jetton_transfer
          title: Type
          description: >-
            A transaction involving the transfer of Jetton from one address to
            another. 
        sender:
          $ref: '#/components/schemas/EnrichedTonAddress'
          description: The sender of the assets.
        recipient:
          $ref: '#/components/schemas/EnrichedTonAddress'
          description: The recipient of the assets.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - sender
        - recipient
      title: TonJettonTransferDetails
    TonMessage:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state of the message.
        state_changes:
          items:
            $ref: '#/components/schemas/NonPushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the message.
        type:
          type: string
          const: ton_message
          title: Type
          description: TON message type.
        ton_message_type:
          $ref: '#/components/schemas/TonMessageType'
          description: The type of the TON message.
        raw_payload_to_sign:
          type: string
          title: Raw Payload To Sign
          description: The payload that was requested to be signed, encoded in base64.
          example: SGVsbG8=
        string_payload_to_sign:
          type: string
          title: String Payload To Sign
          description: The payload that was requested to be signed.
        chain:
          $ref: '#/components/schemas/EnrichedTonChain'
          description: The details of the chain that this message is on.
        sender:
          $ref: '#/components/schemas/EnrichedTonAddress'
          description: The sender of the message.
        domain:
          type: string
          title: Domain
          description: The domain of the daap.
        domain_bytes_length:
          type: integer
          title: Domain Bytes Length
          description: The daap domain's length
        timestamp:
          type: integer
          title: Timestamp
          description: The signing timestamp
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - ton_message_type
        - raw_payload_to_sign
        - string_payload_to_sign
        - chain
        - sender
        - domain
        - domain_bytes_length
        - timestamp
      title: TonMessage
    TonMessageType:
      type: string
      enum:
        - proof_message_type
      title: TonMessageType
    TonNativeAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: native
          title: Type
          description: TON asset identifier type.
        chain:
          $ref: '#/components/schemas/TonChainUniqueId'
          description: The details of the chain of the native asset.
      type: object
      required:
        - type
        - chain
      title: TonNativeAssetIdentifierRequest
    TonNativeTransferDetails:
      properties:
        type:
          type: string
          const: native_transfer
          title: Type
          description: >-
            A transaction involving the transfer of TON coin from one address to
            another. 
        sender:
          $ref: '#/components/schemas/EnrichedTonAddress'
          description: The sender of the assets.
        recipient:
          $ref: '#/components/schemas/EnrichedTonAddress'
          description: The recipient of the assets.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - sender
        - recipient
      title: TonNativeTransferDetails
    TonNetwork:
      type: integer
      enum:
        - 0
        - -239
        - -1
      title: TonNetwork
    TonProofMessageRequest:
      properties:
        type:
          type: string
          const: proof_message_type
          title: Type
          description: Proof message standard.
        manifest_url:
          type: string
          minLength: 1
          title: Manifest Url
          description: The manifest_url of the Dapp that the message is for.
        chain:
          $ref: '#/components/schemas/TonChainUniqueId'
          description: The details of the chain of the native asset.
        message_to_sign:
          type: string
          minLength: 1
          title: Message To Sign
          description: The message payload to be signed, encoded in base64.
          example: SGVsbG8=
      type: object
      required:
        - type
        - manifest_url
        - chain
        - message_to_sign
      title: TonProofMessageRequest
    TonRawTransactionDetails:
      properties:
        type:
          type: string
          const: raw_transaction
          title: Type
          description: A transaction with a contract call.
        recipients:
          items:
            $ref: '#/components/schemas/EnrichedTonAddress'
          type: array
          title: Recipients
          description: The called contract.
      type: object
      required:
        - type
        - recipients
      title: TonRawTransactionDetails
    TonRecipientHex:
      properties:
        type:
          type: string
          const: hex
          title: Type
          description: The type of the recipient.
        address:
          type: string
          title: Address
          description: The address of the recipient in any format.
      type: object
      required:
        - type
        - address
      title: TonRecipientHex
    TonReversion:
      properties:
        state:
          $ref: '#/components/schemas/TonReversionState'
          description: >-
            The state of the reversion. Is one of the
            following:<ul><li>`not_reverted`: No reversion, meaning, completed
            successfully.<li>`unknown_revert`: Fordefi does not know the reason
            for the reversion.<li>`contract_asserted`: The smart contract
            originally made an assertion that was later rejected and the
            transaction was halted. <li>`insufficient_funds_gas_and_value`: A
            transaction was sent for which there were insufficient funds.</ul>
        reason:
          title: Reason
          description: The reason for the reversion (additional information).
          type: string
      type: object
      required:
        - state
      title: TonReversion
    TonReversionState:
      type: string
      enum:
        - not_reverted
        - unknown_revert
        - contract_asserted
        - insufficient_funds_gas_and_value
      title: TonReversionState
    TonSuggestedFees:
      properties:
        type:
          type: string
          const: ton
          title: Type
          description: The type of the chain.
        chain_unique_id:
          $ref: '#/components/schemas/TonChainUniqueId'
          description: The Ton chain unique id.
        gas_price:
          type: string
          pattern: ^\d+$
          title: Gas Price
          description: The Current gas price in basechain in nanotons.
          example: '1000000000000000000'
      type: object
      required:
        - type
        - chain_unique_id
        - gas_price
      title: TonSuggestedFees
    TonTransaction:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state of the transaction.
        state_changes:
          items:
            $ref: '#/components/schemas/PushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the transaction.
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        incoming_aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchIncoming'
        type:
          type: string
          const: ton_transaction
          title: Type
          description: TON transaction type.
        ton_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/TonNativeTransferDetails'
            - $ref: '#/components/schemas/TonJettonTransferDetails'
            - $ref: '#/components/schemas/TonRawTransactionDetails'
          description: Details of the Ton transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              jetton_transfer: '#/components/schemas/TonJettonTransferDetails'
              native_transfer: '#/components/schemas/TonNativeTransferDetails'
              raw_transaction: '#/components/schemas/TonRawTransactionDetails'
        chain:
          $ref: '#/components/schemas/EnrichedTonChain'
          description: The details of the chain this transaction is on.
        nonce:
          title: Nonce
          description: The nonce of the transaction.
          type: integer
        sender:
          $ref: '#/components/schemas/EnrichedTonAddress'
          description: The sender of the transaction.
        payload:
          $ref: '#/components/schemas/TonTransactionPayload'
          description: The payload of the transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 64
          pattern: ^[a-fA-F0-9]+$
          example: c7482c1d424bdb2a555f069290a63ab144f3d06d34f944f6ae3505506b97989e
        block:
          description: The block in which the transaction was mined.
          $ref: '#/components/schemas/TonBlock'
        serialized_signed_transaction:
          title: Serialized Signed Transaction
          description: The serialized signed transaction.
          type: string
          example: SGVsbG8=
        expected_result:
          description: The expected result of the transaction in case it is mined.
          $ref: '#/components/schemas/TonTransactionResult'
        simulation_status_result:
          description: Whether simulation succeeded or failed.
          $ref: '#/components/schemas/SimulationStatusResult'
        mined_result:
          description: The result of the transaction after it was mined.
          $ref: '#/components/schemas/TonTransactionResult'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of this transaction in a blockchain explorer. For example,
            tonviewer.com
          example: >-
            https://tonviewer.com/transaction/a8e5ab8f0b452190ad81f92341b42c6cadd57d0e858b92e8113d70b02bf0bfaa
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - ton_transaction_type_details
        - chain
        - sender
        - payload
      title: TonTransaction
    TonTransactionMessage:
      properties:
        address:
          $ref: '#/components/schemas/TonAccountRepr'
          description: The sender of the message in a user friendly format.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of nano tons to send.
          example: '1000000000000000000'
        payload:
          title: Payload
          description: The payload of the message.
          type: string
        state_init:
          title: State Init
          description: >-
            The state_init structure contains all the necessary information
            required to create the initial state of a smart contract.
          type: string
        comment:
          title: Comment
          description: A comment that is attached to the message.
          type: string
      type: object
      required:
        - address
        - amount
      title: TonTransactionMessage
    TonTransactionPayload:
      properties:
        valid_until:
          title: Valid Until
          description: The expiration time of the transaction.
          type: integer
        network:
          description: The transaction's network.
          $ref: '#/components/schemas/TonNetwork'
        messages:
          items:
            $ref: '#/components/schemas/TonTransactionMessage'
          type: array
          title: Messages
          description: The messages of the transaction.
      type: object
      required:
        - messages
      title: TonTransactionPayload
    TonTransactionResult:
      properties:
        reversion:
          $ref: '#/components/schemas/TonReversion'
          description: Details whether the transaction was reverted or not.
        address_fees:
          items:
            $ref: '#/components/schemas/TonAddressFee'
          type: array
          title: Address Fees
          description: The fees paid for this transaction by managed addresses.
        effects:
          $ref: '#/components/schemas/TonEffects'
          description: The effects of the transaction.
      type: object
      required:
        - reversion
        - address_fees
        - effects
      title: TonTransactionResult
    TonTransactionType:
      type: string
      enum:
        - native_transfer
        - jetton_transfer
        - raw_transaction
      title: TonTransactionType
    TonTransferEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the transfer.
          example: '1000000000000000000'
        from:
          $ref: '#/components/schemas/EnrichedTonAddress'
          description: The sender of the transfer.
        to:
          $ref: '#/components/schemas/EnrichedTonAddress'
          description: The receiver of the transfer.
      type: object
      required:
        - priced_asset
        - amount
        - from
        - to
      title: TonTransferEffect
    TonVault:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        metadata:
          title: Metadata
          description: Metadata in a form of map<str, bool | str | int | array[str]>.
          additionalProperties:
            anyOf:
              - items:
                  type: string
                type: array
              - type: string
              - type: integer
              - type: boolean
          type: object
        name:
          type: string
          title: Name
          description: The name of the vault.
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: Details of the vault creator.
        vault_group:
          $ref: '#/components/schemas/VaultGroupRef'
          description: The vault group this vault belongs to.
        pending_vault_group_action:
          description: Details of pending vault movement to another vault group.
          oneOf:
            - $ref: '#/components/schemas/PendingVaultGroupActionAdd'
            - $ref: '#/components/schemas/PendingVaultGroupActionRemove'
          discriminator:
            propertyName: type
            mapping:
              add: '#/components/schemas/PendingVaultGroupActionAdd'
              remove: '#/components/schemas/PendingVaultGroupActionRemove'
        state:
          $ref: '#/components/schemas/VaultState'
          description: State of the vault.
        public_key_compressed:
          type: string
          title: Public Key Compressed
          description: >-
            The public key of the vault in its compressed form: <ul> <li>For
            ECDSA and Schnorr keys, the public key is represented as 33 bytes
            (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1
            standard](https://www.secg.org/SEC1-Ver-1.0.pdf). <li>For EdDSA, the
            public key is represented as a 32-byte value, as defined by [RFC
            8032](https://datatracker.ietf.org/doc/html/rfc8032). </ul>
          example: SGVsbG8=
        derivation_info:
          $ref: '#/components/schemas/VaultDerivationInfo'
          description: The derivation info of the vault.
        key_holder:
          description: >-
            The user who owns the keyset of the vault. If not provided, the
            vault is owned by the organization.
          $ref: '#/components/schemas/EndUserRef'
        origin_type:
          $ref: '#/components/schemas/VaultOriginType'
          description: The origin type of the vault.
        type:
          type: string
          const: ton
          title: Type
          description: TON vault type.
        raw_account:
          type: string
          maxLength: 67
          pattern: ^[-0-9]+:[A-Fa-f0-9]{64}$
          title: Raw Account
          description: The address TON contract in a raw format.
        base64_url_bounceable_account:
          type: string
          maxLength: 48
          minLength: 48
          title: Base64 Url Bounceable Account
          description: The bounceable address of the contract in base64 url format
          example: UQBxs5hnTxjzvzsnDofRfbJeXsylUcxR8OSW7UUv317csHZ1
        base64_url_non_bounceable_account:
          type: string
          maxLength: 48
          minLength: 48
          title: Base64 Url Non Bounceable Account
          description: The non-bounceable address of the contract in base64 url format
          example: UQBxs5hnTxjzvzsnDofRfbJeXsylUcxR8OSW7UUv317csHZ1
        state_init:
          type: string
          title: State Init
          description: The wallet contract state init.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - created_by
        - vault_group
        - state
        - are_all_chains_disabled
        - derivation_path
        - public_key_compressed
        - derivation_info
        - keyset
        - origin_type
        - type
        - raw_account
        - base64_url_bounceable_account
        - base64_url_non_bounceable_account
        - state_init
      title: TonVault
      description: Represents an TON vault in the Fordefi platform
    Transaction:
      oneOf:
        - $ref: '#/components/schemas/AptosMessage'
        - $ref: '#/components/schemas/AptosTransaction'
        - $ref: '#/components/schemas/BlackBoxSignature'
        - $ref: '#/components/schemas/CosmosTransaction'
        - $ref: '#/components/schemas/CosmosMessage'
        - $ref: '#/components/schemas/EvmMessage'
        - $ref: '#/components/schemas/EvmTransaction'
        - $ref: '#/components/schemas/ExchangeTransaction'
        - $ref: '#/components/schemas/SolanaMessage'
        - $ref: '#/components/schemas/SolanaTransaction'
        - $ref: '#/components/schemas/StacksTransaction'
        - $ref: '#/components/schemas/StarknetMessage'
        - $ref: '#/components/schemas/StarknetTransaction'
        - $ref: '#/components/schemas/SuiMessage'
        - $ref: '#/components/schemas/SuiTransaction'
        - $ref: '#/components/schemas/TonMessage'
        - $ref: '#/components/schemas/TonTransaction'
        - $ref: '#/components/schemas/TronTransaction'
        - $ref: '#/components/schemas/UtxoMessage'
        - $ref: '#/components/schemas/UtxoTransaction'
      discriminator:
        propertyName: type
        mapping:
          aptos_message: '#/components/schemas/AptosMessage'
          aptos_transaction: '#/components/schemas/AptosTransaction'
          black_box_signature: '#/components/schemas/BlackBoxSignature'
          cosmos_message: '#/components/schemas/CosmosMessage'
          cosmos_transaction: '#/components/schemas/CosmosTransaction'
          evm_message: '#/components/schemas/EvmMessage'
          evm_transaction: '#/components/schemas/EvmTransaction'
          exchange_transaction: '#/components/schemas/ExchangeTransaction'
          solana_message: '#/components/schemas/SolanaMessage'
          solana_transaction: '#/components/schemas/SolanaTransaction'
          stacks_transaction: '#/components/schemas/StacksTransaction'
          starknet_message: '#/components/schemas/StarknetMessage'
          starknet_transaction: '#/components/schemas/StarknetTransaction'
          sui_message: '#/components/schemas/SuiMessage'
          sui_transaction: '#/components/schemas/SuiTransaction'
          ton_message: '#/components/schemas/TonMessage'
          ton_transaction: '#/components/schemas/TonTransaction'
          tron_transaction: '#/components/schemas/TronTransaction'
          utxo_message: '#/components/schemas/UtxoMessage'
          utxo_transaction: '#/components/schemas/UtxoTransaction'
    TransactionDetailsEvmPersonalMessageRequest:
      properties:
        type:
          type: string
          const: personal_message_type
          title: Type
          description: The type of the EVM message.
        chain:
          $ref: '#/components/schemas/EvmChainRequest'
          description: The evm chain this message is intended for.
        raw_data:
          type: string
          title: Raw Data
          description: >-
            The raw data of the message to be signed, provided as a string or
            hex-encoded.
      type: object
      required:
        - type
        - chain
        - raw_data
      title: TransactionDetailsEvmPersonalMessageRequest
    TransactionDetailsEvmTypedMessageRequest:
      properties:
        type:
          type: string
          const: typed_message_type
          title: Type
          description: The type of the EVM message.
        chain:
          $ref: '#/components/schemas/EvmChainRequest'
          description: The evm chain this message is intended for.
        raw_data:
          type: string
          title: Raw Data
          description: >-
            The raw data of the message to be signed, provided as a string or
            hex-encoded.
      type: object
      required:
        - type
        - chain
        - raw_data
      title: TransactionDetailsEvmTypedMessageRequest
    TransactionDetailsEvmTypedV1MessageRequest:
      properties:
        type:
          type: string
          const: typed_message_type_v1
          title: Type
          description: The type of the EVM message.
        chain:
          $ref: '#/components/schemas/EvmChainRequest'
          description: The evm chain this message is intended for.
        raw_data:
          type: string
          title: Raw Data
          description: >-
            The raw data of the message to be signed, provided as a string or
            hex-encoded.
      type: object
      required:
        - type
        - chain
        - raw_data
      title: TransactionDetailsEvmTypedV1MessageRequest
    TransactionDetailsSolanaRawTransactionRequest:
      properties:
        version:
          $ref: '#/components/schemas/SolanaMessageVersion'
          description: The version of the transaction message.
        instructions:
          items:
            $ref: '#/components/schemas/SolanaCompiledInstructionRequest'
          type: array
          title: Instructions
          description: The instructions of the transaction.
        accounts:
          items:
            $ref: '#/components/schemas/SolanaTransactionAccountRequest'
          type: array
          title: Accounts
          description: Accounts used in the transaction.
        address_table_lookups:
          items:
            $ref: '#/components/schemas/SolanaMessageAddressTableLookupRequest'
          type: array
          title: Address Table Lookups
          description: Lookup tables of accounts used in the transaction.
        signatures:
          title: Signatures
          description: Any partial signatures on the transaction.
          items:
            $ref: '#/components/schemas/SolanaTransactionSignaturesRequest'
          type: array
        recent_blockhash:
          title: Recent Blockhash
          description: The transaction nonce (a recently processed blockhash).
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          example: 4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZAMdL4VZHirAn
        fee:
          description: The fee configuration for the transaction.
          oneOf:
            - $ref: '#/components/schemas/SolanaCustomFeeRequest'
            - $ref: '#/components/schemas/SolanaPriorityFeeRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/SolanaCustomFeeRequest'
              priority: '#/components/schemas/SolanaPriorityFeeRequest'
        type:
          type: string
          const: solana_raw_transaction
          title: Type
          description: The type of the transaction.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        skip_simulation:
          type: boolean
          title: Skip Simulation
          description: '`True` to perform the action without simulation, `False` otherwise.'
          default: false
        chain:
          $ref: '#/components/schemas/SolanaChainUniqueId'
          description: >-
            The chain that this transaction is on. Specify the chain name (for
            example, `solana_mainnet`).
      type: object
      required:
        - version
        - instructions
        - accounts
        - address_table_lookups
        - type
        - chain
      title: TransactionDetailsSolanaRawTransactionRequest
    TransactionDetailsSolanaSpotSwapTransactionRequest:
      properties:
        quote_id:
          type: string
          format: uuid
          title: Quote Id
          description: The quote ID of the swap.
        input_asset_identifier:
          $ref: '#/components/schemas/SolanaAssetIdentifierRequest'
          description: The Solana asset identifier of the input asset.
        output_asset_identifier:
          $ref: '#/components/schemas/SolanaAssetIdentifierRequest'
          description: The Solana asset identifier of the output asset.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The number of units of currency to swap.
          example: '1000000000000000000'
        fee:
          description: >-
            The fee configuration for the transaction, including broadcast mode
            selection.
          oneOf:
            - $ref: '#/components/schemas/SolanaPriorityFeeTypeRequest'
            - $ref: '#/components/schemas/SolanaJitoFeeTypeRequest'
          discriminator:
            propertyName: type
            mapping:
              jito: '#/components/schemas/SolanaJitoFeeTypeRequest'
              priority_fee: '#/components/schemas/SolanaPriorityFeeTypeRequest'
        slippage_bps:
          title: Slippage Bps
          description: The slippage in basis points.
          type: string
          pattern: ^\d+$
          example: '1000000000000000000'
        type:
          type: string
          const: solana_spot_swap
          title: Type
          description: The type of the transaction.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        skip_simulation:
          type: boolean
          title: Skip Simulation
          description: '`True` to perform the action without simulation, `False` otherwise.'
          default: false
      type: object
      required:
        - quote_id
        - input_asset_identifier
        - output_asset_identifier
        - amount
        - type
      title: TransactionDetailsSolanaSpotSwapTransactionRequest
    TransactionDetailsSuiProgrammableTransactionBlockRequest:
      properties:
        type:
          type: string
          const: sui_programmable_transaction_block
          title: Type
          description: >-
            A Sui programmable transaction block transaction. A transaction of
            this kind is for any operation.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        skip_simulation:
          type: boolean
          title: Skip Simulation
          description: '`True` to perform the action without simulation, `False` otherwise.'
          default: false
        chain:
          $ref: '#/components/schemas/SuiChainUniqueId'
        gas_config:
          description: The gas configuration for the transaction.
          $ref: '#/components/schemas/SuiGasConfig'
        inputs:
          items:
            $ref: '#/components/schemas/SuiInput'
          type: array
          title: Inputs
          description: The inputs of the transaction.
        commands:
          items:
            $ref: '#/components/schemas/SuiCommand'
          type: array
          title: Commands
          description: The commands of the transactions.
      type: object
      required:
        - type
        - chain
        - inputs
        - commands
      title: TransactionDetailsSuiProgrammableTransactionBlockRequest
    TransactionDetailsUtxoPsbtRequest:
      properties:
        type:
          type: string
          const: utxo_partially_signed_bitcoin_transaction
          title: Type
          description: A partially signed bitcoin transaction (PSBT).
        psbt_raw_data:
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Psbt Raw Data
          description: Partially signed bitcoin transaction data encoded as a hex string.
        auto_finalize:
          type: boolean
          title: Auto Finalize
          description: Whether to finalize the transaction or not.
          default: true
        sender:
          $ref: '#/components/schemas/UtxoAddress'
          description: The signer on the inputs.
        inputs:
          title: Inputs
          description: Describes how to sign each input.
          items:
            $ref: '#/components/schemas/PsbtInput'
          type: array
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi.<li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party (for example a dapp
            that created a PSBT).<li>`deferred`: The transaction is pushed by
            Fordefi after a certain time, if by that time it wasn't pushed
            manually by the client.</ul></ul> 
          default: auto
      type: object
      required:
        - type
        - psbt_raw_data
        - sender
      title: TransactionDetailsUtxoPsbtRequest
    TransactionDetailsUtxoTransferRequest:
      properties:
        type:
          type: string
          const: utxo_transfer
          title: Type
          description: A UTXO transfer transaction.
        outputs:
          items:
            $ref: '#/components/schemas/UtxoOutputRequest'
          type: array
          title: Outputs
        fee_per_byte:
          description: >-
            The fee details of the transaction. The details depend on which
            option you choose:<ul><li>Fee Priority or <li>Custom Fee Request
            </ul>
          oneOf:
            - $ref: '#/components/schemas/FeePriorityRequest'
            - $ref: '#/components/schemas/CustomFeeRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/CustomFeeRequest'
              priority: '#/components/schemas/FeePriorityRequest'
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi.<li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party (for example a dapp
            that created a PSBT).<li>`deferred`: The transaction is pushed by
            Fordefi after a certain time, if by that time it wasn't pushed
            manually by the client.</ul></ul> 
          default: auto
        memos:
          items:
            type: string
          type: array
          title: Memos
          description: >-
            List of memos to include in the transaction, provided as strings or
            hex-encoded.
      type: object
      required:
        - type
        - outputs
      title: TransactionDetailsUtxoTransferRequest
    TransactionDirection:
      type: string
      enum:
        - outgoing
        - incoming
      title: TransactionDirection
    TransactionPolicyMatchActionType:
      type: string
      enum:
        - allow
        - block
        - require_approval
      title: TransactionPolicyMatchActionType
    TransactionPredictAptosMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: aptos_message
          title: Type
          description: Aptos message type.
        details:
          $ref: '#/components/schemas/AptosPersonalMessageRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictAptosMessageRequest
    TransactionPredictAptosTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: aptos_transaction
          title: Type
          description: Aptos transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/PredictAptosTransferRequest'
            - $ref: '#/components/schemas/PredictAptosSerializedRawTransactionRequest'
          discriminator:
            propertyName: type
            mapping:
              aptos_serialized_entry_point_payload: '#/components/schemas/PredictAptosSerializedRawTransactionRequest'
              aptos_transfer: '#/components/schemas/PredictAptosTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictAptosTransactionRequest
    TransactionPredictCosmosMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: cosmos_message
          title: Type
          description: The type of the transaction.
        details:
          $ref: '#/components/schemas/CosmosArbitraryMessageRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictCosmosMessageRequest
    TransactionPredictCosmosTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: cosmos_transaction
          title: Type
          description: The type of the transaction.
        details:
          oneOf:
            - $ref: '#/components/schemas/TypedCosmosRawTransactionRequest'
            - $ref: '#/components/schemas/TypedCosmosTransferRequest'
          description: Transaction details.
          discriminator:
            propertyName: type
            mapping:
              cosmos_raw_transaction: '#/components/schemas/TypedCosmosRawTransactionRequest'
              cosmos_transfer: '#/components/schemas/TypedCosmosTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictCosmosTransactionRequest
    TransactionPredictEvmMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: evm_message
          title: Type
          description: The type of the transaction.
        details:
          oneOf:
            - $ref: '#/components/schemas/TransactionDetailsEvmTypedMessageRequest'
            - $ref: '#/components/schemas/TransactionDetailsEvmTypedV1MessageRequest'
            - $ref: '#/components/schemas/TransactionDetailsEvmPersonalMessageRequest'
          discriminator:
            propertyName: type
            mapping:
              personal_message_type: '#/components/schemas/TransactionDetailsEvmPersonalMessageRequest'
              typed_message_type: '#/components/schemas/TransactionDetailsEvmTypedMessageRequest'
              typed_message_type_v1: '#/components/schemas/TransactionDetailsEvmTypedV1MessageRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictEvmMessageRequest
    TransactionPredictEvmRawTransactionRequest:
      properties:
        type:
          type: string
          const: evm_raw_transaction
          title: Type
          description: >-
            An EVM raw transaction receives raw data and is for general
            transactions.
        gas:
          description: >-
            The gas details of the transaction. The details depend on which
            option you choose:<ul><li>Gas Priority or <li>Custom Gas Request
            </ul>
          oneOf:
            - $ref: '#/components/schemas/GasPriorityRequest'
            - $ref: '#/components/schemas/CustomGasRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/CustomGasRequest'
              priority: '#/components/schemas/GasPriorityRequest'
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        skip_simulation:
          type: boolean
          title: Skip Simulation
          description: '`True` to perform the action without simulation, `False` otherwise.'
          default: false
        chain:
          $ref: '#/components/schemas/EvmChainRequest'
          description: >-
            The chain that this transaction is on. Specify either the chain ID
            (for example `1` for `ethereum_mainnet`)or the chain name (for
            example, `ethereum_goerli`).
        to:
          title: To
          description: >-
            The address of the recipient of the transaction, or null for
            contract creation.
          type: string
          maxLength: 42
          minLength: 42
          pattern: ^0[xX][a-fA-F0-9]+$
          example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        value:
          type: string
          pattern: ^\d+$
          title: Value
          description: The value of native currency to send this transaction with.
          example: '1000000000000000000'
        data:
          description: The data of the transaction.
          $ref: '#/components/schemas/EvmDataRequest'
      type: object
      required:
        - type
        - chain
        - value
      title: TransactionPredictEvmRawTransactionRequest
    TransactionPredictEvmRevokeAllowanceRequest:
      properties:
        type:
          type: string
          const: evm_revoke_allowance
          title: Type
          description: The type of the transaction.
        gas:
          description: >-
            The gas details of the transaction. The details depend on which
            option you choose:<ul><li>Gas Priority or <li>Custom Gas Request
            </ul>
          oneOf:
            - $ref: '#/components/schemas/GasPriorityRequest'
            - $ref: '#/components/schemas/CustomGasRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/CustomGasRequest'
              priority: '#/components/schemas/GasPriorityRequest'
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        skip_simulation:
          type: boolean
          title: Skip Simulation
          description: '`True` to perform the action without simulation, `False` otherwise.'
          default: false
        chain:
          $ref: '#/components/schemas/EvmChainRequest'
          description: >-
            The chain that this transaction is on.Specify either the chain ID
            (for example `1` for `ethereum_mainnet`)or the chain name (for
            example, `ethereum_goerli`).
        token:
          type: string
          maxLength: 42
          minLength: 42
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Token
          description: The address of the token to revoke allowance for.
          example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        spender:
          type: string
          maxLength: 42
          minLength: 42
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Spender
          description: The address of the spender to revoke allowance for.
          example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
      type: object
      required:
        - type
        - chain
        - token
        - spender
      title: TransactionPredictEvmRevokeAllowanceRequest
    TransactionPredictEvmTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: evm_transaction
          title: Type
          description: The type of the transaction.
        details:
          oneOf:
            - $ref: '#/components/schemas/TransactionPredictEvmRawTransactionRequest'
            - $ref: '#/components/schemas/TransactionPredictEvmTransferRequest'
            - $ref: '#/components/schemas/TransactionPredictEvmRevokeAllowanceRequest'
          discriminator:
            propertyName: type
            mapping:
              evm_raw_transaction: '#/components/schemas/TransactionPredictEvmRawTransactionRequest'
              evm_revoke_allowance: '#/components/schemas/TransactionPredictEvmRevokeAllowanceRequest'
              evm_transfer: '#/components/schemas/TransactionPredictEvmTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictEvmTransactionRequest
    TransactionPredictEvmTransferRequest:
      properties:
        type:
          type: string
          const: evm_transfer
          title: Type
          description: The type of the transaction.
        gas:
          description: >-
            The gas details of the transaction. The details depend on which
            option you choose:<ul><li>Gas Priority or <li>Custom Gas Request
            </ul>
          oneOf:
            - $ref: '#/components/schemas/GasPriorityRequest'
            - $ref: '#/components/schemas/CustomGasRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/CustomGasRequest'
              priority: '#/components/schemas/GasPriorityRequest'
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        skip_simulation:
          type: boolean
          title: Skip Simulation
          description: '`True` to perform the action without simulation, `False` otherwise.'
          default: false
        to:
          anyOf:
            - type: string
              maxLength: 42
              minLength: 42
              pattern: ^0[xX][a-fA-F0-9]+$
              example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
            - type: string
              format: uuid
          title: To
          description: 'The recipient of the transfer: either an address or a vault ID.'
        asset_identifier:
          $ref: '#/components/schemas/EvmAssetIdentifierRequest'
          description: The asset to be transferred.
        value:
          oneOf:
            - $ref: '#/components/schemas/CreateTransferRequestExplicitAmount'
            - $ref: '#/components/schemas/CreateTransferRequestMaxAmount'
          description: >-
            The number of units of currency to transfer. If you do not specify a
            value for `token`, the assumption is that you are transferring units
            in the native currency of the chain.
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateTransferRequestMaxAmount'
              value: '#/components/schemas/CreateTransferRequestExplicitAmount'
      type: object
      required:
        - type
        - to
        - asset_identifier
        - value
      title: TransactionPredictEvmTransferRequest
    TransactionPredictExchangeTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: exchange_transaction
          title: Type
          description: Exchange transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateExchangeExternalWithdrawRequest'
          discriminator:
            propertyName: type
            mapping:
              external_withdraw: '#/components/schemas/CreateExchangeExternalWithdrawRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictExchangeTransactionRequest
    TransactionPredictSolanaMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: solana_message
          title: Type
          description: The type of the transaction.
        details:
          $ref: '#/components/schemas/SolanaPersonalMessageRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictSolanaMessageRequest
    TransactionPredictSolanaSerializedTransactionMessageRequest:
      properties:
        fee:
          description: The fee configuration for the transaction.
          oneOf:
            - $ref: '#/components/schemas/SolanaCustomFeeRequest'
            - $ref: '#/components/schemas/SolanaPriorityFeeRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/SolanaCustomFeeRequest'
              priority: '#/components/schemas/SolanaPriorityFeeRequest'
        type:
          type: string
          const: solana_serialized_transaction_message
          title: Type
          description: A Solana serialized transaction message request.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        skip_simulation:
          type: boolean
          title: Skip Simulation
          description: '`True` to perform the action without simulation, `False` otherwise.'
          default: false
        chain:
          $ref: '#/components/schemas/SolanaChainUniqueId'
          description: >-
            The chain that this transaction is on. Specify the chain name (for
            example, `solana_mainnet`).
        data:
          type: string
          title: Data
          description: >-
            The base64 encoded binary transaction message. Can be either a
            serialized legacy Message or a serialized MessageV0.

            The first account in the serialized transaction message must match
            theaddress of the vault in the request.

            If the serialized message contains a recent block hash, the server
            may override it to prevent the transaction from expiring.

            Additionally, if the transaction does not include a priority fee
            (ComputeBudget instruction), the server might add it to increase the
            chances of the transaction landing on chain.
          example: SGVsbG8=
        signatures:
          title: Signatures
          description: >-
            List of Base64 encoded partial signatures.

            Can be omitted if the transaction requires no partial signatures, or
            if ephemeral_keys are passed instead.

            If passed, then the size of this array must match the total number
            of signers in the transaction, and elements in positions
            corresponding to vault accounts must be `{data: null}`
          items:
            $ref: '#/components/schemas/SolanaTransactionSignaturesRequest'
          type: array
        ephemeral_keys:
          title: Ephemeral Keys
          description: >-
            A list of 64-byte Solana secret keys, encoded as base64, for any
            non-vault signer accounts.

            Can be omitted if the transaction requires no partial signatures, or
            if signatures are passed instead.

            If passed, then the size of this array must match the total number
            of signers in the transaction, and elements in positions
            corresponding to vault accounts must be `{data: null}`
          items:
            $ref: '#/components/schemas/SolanaSecretKeyRequest'
          type: array
      type: object
      required:
        - type
        - chain
        - data
      title: TransactionPredictSolanaSerializedTransactionMessageRequest
    TransactionPredictSolanaTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: solana_transaction
          title: Type
          description: The type of the transaction.
        details:
          oneOf:
            - $ref: '#/components/schemas/TransactionPredictSolanaTransferRequest'
            - $ref: >-
                #/components/schemas/TransactionDetailsSolanaRawTransactionRequest
            - $ref: >-
                #/components/schemas/TransactionPredictSolanaSerializedTransactionMessageRequest
          discriminator:
            propertyName: type
            mapping:
              solana_raw_transaction: >-
                #/components/schemas/TransactionDetailsSolanaRawTransactionRequest
              solana_serialized_transaction_message: >-
                #/components/schemas/TransactionPredictSolanaSerializedTransactionMessageRequest
              solana_transfer: '#/components/schemas/TransactionPredictSolanaTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictSolanaTransactionRequest
    TransactionPredictSolanaTransferRequest:
      properties:
        fee:
          description: The fee configuration for the transaction.
          oneOf:
            - $ref: '#/components/schemas/SolanaCustomFeeRequest'
            - $ref: '#/components/schemas/SolanaPriorityFeeRequest'
          discriminator:
            propertyName: type
            mapping:
              custom: '#/components/schemas/SolanaCustomFeeRequest'
              priority: '#/components/schemas/SolanaPriorityFeeRequest'
        type:
          type: string
          const: solana_transfer
          title: Type
          description: The type of the transaction.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        skip_simulation:
          type: boolean
          title: Skip Simulation
          description: '`True` to perform the action without simulation, `False` otherwise.'
          default: false
        to:
          anyOf:
            - type: string
              maxLength: 44
              minLength: 32
              pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
              example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
            - type: string
              format: uuid
          title: To
          description: 'The recipient of the transfer: either an address or a vault ID.'
        value:
          oneOf:
            - $ref: '#/components/schemas/CreateTransferRequestExplicitAmount'
            - $ref: '#/components/schemas/CreateTransferRequestMaxAmount'
          description: The number of units of currency to transfer.
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateTransferRequestMaxAmount'
              value: '#/components/schemas/CreateTransferRequestExplicitAmount'
        asset_identifier:
          $ref: '#/components/schemas/SolanaAssetIdentifierRequest'
          description: The Solana asset identifier to transfer.
      type: object
      required:
        - type
        - to
        - value
        - asset_identifier
      title: TransactionPredictSolanaTransferRequest
    TransactionPredictSuiMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: sui_message
          title: Type
          description: Sui message type.
        details:
          $ref: '#/components/schemas/SuiPersonalMessageRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictSuiMessageRequest
    TransactionPredictSuiTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: sui_transaction
          title: Type
          description: Sui transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/TransactionPredictSuiTransferRequest'
            - $ref: >-
                #/components/schemas/TransactionDetailsSuiProgrammableTransactionBlockRequest
          discriminator:
            propertyName: type
            mapping:
              sui_programmable_transaction_block: >-
                #/components/schemas/TransactionDetailsSuiProgrammableTransactionBlockRequest
              sui_transfer: '#/components/schemas/TransactionPredictSuiTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictSuiTransactionRequest
    TransactionPredictSuiTransferRequest:
      properties:
        type:
          type: string
          const: sui_transfer
          title: Type
          description: >-
            A Sui transfer transaction. A transaction of this kind is for
            transferring native currency or a coin.
        fail_on_prediction_failure:
          type: boolean
          title: Fail On Prediction Failure
          description: >-
            `True` if the request should fail in case simulation failed, `False`
            otherwise. <br> In case simulation has failed upon continuation, the
            expected result of the transaction will be partial and policy will
            be applied on information that can be extracted statically from the
            transaction only. This might result in falling back to the default
            policy rule. 
          default: true
        skip_simulation:
          type: boolean
          title: Skip Simulation
          description: '`True` to perform the action without simulation, `False` otherwise.'
          default: false
        to:
          oneOf:
            - $ref: '#/components/schemas/SuiRecipientHex'
            - $ref: '#/components/schemas/RecipientVaultId'
          discriminator:
            propertyName: type
            mapping:
              hex: '#/components/schemas/SuiRecipientHex'
              vault_id: '#/components/schemas/RecipientVaultId'
        value:
          oneOf:
            - $ref: '#/components/schemas/CreateTransferRequestExplicitAmount'
            - $ref: '#/components/schemas/CreateTransferRequestMaxAmount'
          description: The number of units of currency to transfer.
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateTransferRequestMaxAmount'
              value: '#/components/schemas/CreateTransferRequestExplicitAmount'
        asset_identifier:
          $ref: '#/components/schemas/SuiAssetIdentifierRequest'
          description: The Sui asset identifier to transfer.
        gas_config:
          description: The gas configuration for the transaction.
          $ref: '#/components/schemas/SuiGasConfig'
      type: object
      required:
        - type
        - to
        - value
        - asset_identifier
      title: TransactionPredictSuiTransferRequest
    TransactionPredictTonMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: ton_message
          title: Type
          description: TON message type.
        details:
          $ref: '#/components/schemas/TonProofMessageRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictTonMessageRequest
    TransactionPredictTonTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: ton_transaction
          title: Type
          description: TON transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/PredictTonTransferRequest'
            - $ref: '#/components/schemas/PredictTonSerializedRawTransactionRequest'
          discriminator:
            propertyName: type
            mapping:
              ton_raw_transaction: '#/components/schemas/PredictTonSerializedRawTransactionRequest'
              ton_transfer: '#/components/schemas/PredictTonTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictTonTransactionRequest
    TransactionPredictTronTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: tron_transaction
          title: Type
          description: TRON transaction type.
        details:
          oneOf:
            - $ref: '#/components/schemas/CreateTronTransferRequest'
          discriminator:
            propertyName: type
            mapping:
              tron_transfer: '#/components/schemas/CreateTronTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictTronTransactionRequest
    TransactionPredictUtxoMessageRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: utxo_message
          title: Type
          description: The type of the transaction.
        details:
          $ref: '#/components/schemas/UtxoMessageDetails'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictUtxoMessageRequest
    TransactionPredictUtxoTransactionRequest:
      properties:
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        type:
          type: string
          const: utxo_transaction
          title: Type
          description: The type of the transaction.
        details:
          oneOf:
            - $ref: '#/components/schemas/TransactionDetailsUtxoTransferRequest'
            - $ref: '#/components/schemas/TransactionDetailsUtxoPsbtRequest'
          description: Transaction details.
          discriminator:
            propertyName: type
            mapping:
              utxo_partially_signed_bitcoin_transaction: '#/components/schemas/TransactionDetailsUtxoPsbtRequest'
              utxo_transfer: '#/components/schemas/TransactionDetailsUtxoTransferRequest'
      type: object
      required:
        - vault_id
        - type
        - details
      title: TransactionPredictUtxoTransactionRequest
    TransactionRisk:
      properties:
        type:
          $ref: '#/components/schemas/TransactionRiskType'
          description: >-

            Fordefi has detected that one or more of the following risks are
            associated with the requested transaction:<ul><li>The user is
            transferring tokens to an ERC-20 contract
            (`transfer_to_erc20_contract`).<li>The allowance transaction is
            requesting to approve a non-contract address
            (`allowance_to_eoa`).<li>Allowance has been granted for an unlimited
            amount (`unlimited_allowance`).<li>This bridge transaction sends
            funds to an address that is not the sender's
            (`bridge_dest_differ_from_sender`).<li>This is the first time the
            organization is interacting with this address
            (`organization_not_interacted_with_address`).<li>This is the first
            time this vault is interacting with this address
            (`vault_not_interacted_with_address`).<li>Trying to interact with a
            contract that is not verified (`contract_not_verified`).<li>Approve
            for all NFT in a collection (`nft_approve_for_all`).<li>The
            simulation for this transaction failed
            (`missing_simulation`).<li>The simulation for this transaction is
            unsupported for this chain (`unsupported_simulation`).</ul>
        severity:
          $ref: '#/components/schemas/TransactionRiskSeverity'
          description: The severity of the risk.
        title:
          type: string
          title: Title
          description: The title of the risk.
        description:
          type: string
          title: Description
          description: A detailed description of the risk.
      type: object
      required:
        - type
        - severity
        - title
        - description
      title: TransactionRisk
    TransactionRiskSeverity:
      type: string
      enum:
        - low
        - medium
        - high
      title: TransactionRiskSeverity
    TransactionRiskType:
      type: string
      enum:
        - transfer_to_erc20_contract
        - organization_not_interacted_with_address
        - vault_not_interacted_with_address
        - allowance_to_eoa
        - unlimited_allowance
        - contract_not_verified
        - bridge_dest_differ_from_sender
        - nft_approve_for_all
        - missing_simulation
        - unsupported_simulation
        - post_conditions_allow_mode
      title: TransactionRiskType
    TransactionSortableFields:
      type: string
      enum:
        - created_at_asc
        - created_at_desc
        - modified_at_asc
        - modified_at_desc
        - type_asc
        - type_desc
        - chains_asc
        - chains_desc
        - initiators_asc
        - initiators_desc
        - state_asc
        - state_desc
      title: TransactionSortableFields
    TransactionSpamState:
      type: string
      enum:
        - unset
        - manually_set
        - automatically_set
      title: TransactionSpamState
    TransactionSubType:
      type: string
      enum:
        - transfer
        - allowance
        - cross_chain_bridge
        - transaction
        - contract_call
        - contract_deployment
        - message_signature
        - allowance_signature
      title: TransactionSubType
    TransactionType:
      type: string
      enum:
        - aptos_message
        - aptos_transaction
        - black_box_signature
        - cosmos_message
        - cosmos_transaction
        - evm_message
        - evm_transaction
        - exchange_transaction
        - solana_message
        - solana_transaction
        - stacks_transaction
        - starknet_message
        - starknet_transaction
        - sui_message
        - sui_transaction
        - ton_message
        - ton_transaction
        - tron_transaction
        - utxo_message
        - utxo_transaction
      title: TransactionType
    TransferDirection:
      type: string
      enum:
        - outgoing
        - incoming
        - internal
      title: TransferDirection
    TronAddressBookContact:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        name:
          type: string
          title: Name
          description: The name of the contact.
        modified_by:
          $ref: '#/components/schemas/UserRef'
          description: Address last modifier.
        state:
          $ref: '#/components/schemas/AddressBookContactState'
          description: The state of the contact.
        groups:
          items:
            $ref: '#/components/schemas/GroupRef'
          type: array
          title: Groups
          description: List of contact's groups.
        pending_changes:
          description: Pending changes for the contact.
          $ref: '#/components/schemas/AddressBookContactChanges'
        asset_infos:
          items:
            $ref: '#/components/schemas/AssetInfo'
          type: array
          title: Asset Infos
          description: >-
            A list of asset infos for the contact. Can be used to enforce
            trading of specific assets intransfers to this address
        chain_type:
          type: string
          const: tron
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 34
          minLength: 34
          pattern: ^T[a-km-zA-HJ-NP-Z1-9]+$
          title: Address
          description: The address on the TRON chain.
          example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW
        chains:
          items:
            $ref: '#/components/schemas/EnrichedTronChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
        memo:
          title: Memo
          description: >-
            Memo is an additional address feature used for identifying a
            recipient.
          type: string
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - modified_by
        - state
        - groups
        - asset_infos
        - chain_type
        - address
        - chains
      title: TronAddressBookContact
      description: Represents a contact in the Fordefi platform
    TronAddressBookContactAddressRef:
      properties:
        chain_type:
          type: string
          const: tron
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 34
          minLength: 34
          pattern: ^T[a-km-zA-HJ-NP-Z1-9]+$
          title: Address
          description: The address on the TRON chain.
          example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW
        chains:
          items:
            $ref: '#/components/schemas/TronChain'
          type: array
          title: Chains
          description: The chains the contact belongs to.
      type: object
      required:
        - chain_type
        - address
        - chains
      title: TronAddressBookContactAddressRef
    TronAddressRequest:
      properties:
        chain:
          $ref: '#/components/schemas/TronChainUniqueId'
          description: The chain details this address is of.
        base58_repr:
          type: string
          maxLength: 34
          minLength: 34
          pattern: ^T[a-km-zA-HJ-NP-Z1-9]+$
          title: Base58 Repr
          description: Base58 representation of the address in the chain.
          example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW
      type: object
      required:
        - chain
        - base58_repr
      title: TronAddressRequest
      description: Address represents a blockchain address.
    TronAssetIdentifier:
      properties:
        type:
          type: string
          const: tron
          title: Type
          description: TRON asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/TronNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/TronTrc20AssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              native: '#/components/schemas/TronNativeAssetIdentifierRequest'
              trc20: '#/components/schemas/TronTrc20AssetIdentifierRequest'
        chain:
          $ref: '#/components/schemas/EnrichedTronChain'
      type: object
      required:
        - type
        - details
        - chain
      title: TronAssetIdentifier
    TronAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: tron
          title: Type
          description: TRON asset identifier type.
        details:
          oneOf:
            - $ref: '#/components/schemas/TronNativeAssetIdentifierRequest'
            - $ref: '#/components/schemas/TronTrc20AssetIdentifierRequest'
          discriminator:
            propertyName: type
            mapping:
              native: '#/components/schemas/TronNativeAssetIdentifierRequest'
              trc20: '#/components/schemas/TronTrc20AssetIdentifierRequest'
      type: object
      required:
        - type
        - details
      title: TronAssetIdentifierRequest
    TronBalanceChangeEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        diff:
          type: string
          pattern: ^-?\d+$
          title: Diff
          description: >-
            The amount of that was added to or deducted from the owner's
            balance. If the amount was deducted, the value is negative; if the
            amount was added, the value is positive.
          example: '1000000000000000000'
        address:
          $ref: '#/components/schemas/EnrichedTronAddress'
          description: The address affected by the balance change.
      type: object
      required:
        - priced_asset
        - diff
        - address
      title: TronBalanceChangeEffect
    TronBlock:
      properties:
        number:
          type: integer
          title: Number
          description: The block number.
        hash:
          type: string
          maxLength: 64
          minLength: 64
          pattern: ^[a-fA-F0-9]+$
          title: Hash
          description: The block hash.
          example: 32bd287f0d6c5fde3381cca851fb7c021cc9782165c08078d9a8554163a86b17
        mined_at:
          type: string
          format: date-time
          title: Mined At
          description: The date and time when this block was mined.
      type: object
      required:
        - number
        - hash
        - mined_at
      title: TronBlock
    TronChain:
      properties:
        chain_type:
          type: string
          const: tron
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/TronChainUniqueId'
          description: The type of the Tron-based chain.
      type: object
      required:
        - chain_type
        - unique_id
      title: TronChain
    TronChainUniqueId:
      type: string
      enum:
        - tron_mainnet
      title: TronChainUniqueId
    TronEffects:
      properties:
        balance_changes:
          items:
            $ref: '#/components/schemas/TronBalanceChangeEffect'
          type: array
          title: Balance Changes
        transfers:
          items:
            $ref: '#/components/schemas/TronTransferEffect'
          type: array
          title: Transfers
      type: object
      required:
        - balance_changes
        - transfers
      title: TronEffects
    TronFee:
      properties:
        trx_fee:
          type: string
          pattern: ^\d+$
          title: Trx Fee
          description: The total TRX fee payed for the transaction.
          example: '1000000000000000000'
        energy_fee:
          type: string
          pattern: ^\d+$
          title: Energy Fee
          description: The total energy fee payed for the transaction.
          example: '1000000000000000000'
        bandwidth_fee:
          type: string
          pattern: ^\d+$
          title: Bandwidth Fee
          description: The total bandwidth fee payed for the transaction.
          example: '1000000000000000000'
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The information of the asset used to pay the fee and amount used.
      type: object
      required:
        - trx_fee
        - energy_fee
        - bandwidth_fee
        - priced_asset
      title: TronFee
    TronNativeAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: native
          title: Type
          description: TRON asset identifier type.
        chain:
          $ref: '#/components/schemas/TronChainUniqueId'
          description: The details of the chain of the native asset.
      type: object
      required:
        - type
        - chain
      title: TronNativeAssetIdentifierRequest
    TronNativeTransferDetails:
      properties:
        type:
          type: string
          const: native_transfer
          title: Type
          description: >-
            A transaction involving the transfer of TRON coin from one address
            to another.
        sender:
          $ref: '#/components/schemas/EnrichedTronAddress'
          description: The sender of the assets.
        recipient:
          $ref: '#/components/schemas/EnrichedTronAddress'
          description: The recipient of the assets.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - sender
        - recipient
      title: TronNativeTransferDetails
    TronRecipientHex:
      properties:
        type:
          type: string
          const: hex
          title: Type
          description: The type of the recipient.
        address:
          type: string
          maxLength: 34
          minLength: 34
          pattern: ^T[a-km-zA-HJ-NP-Z1-9]+$
          title: Address
          description: The address of the recipient.
          example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW
      type: object
      required:
        - type
        - address
      title: TronRecipientHex
    TronReversion:
      properties:
        state:
          $ref: '#/components/schemas/TronReversionState'
          description: >-
            The state of the reversion. Is one of the
            following:<ul><li>`not_reverted`: No reversion, meaning, completed
            successfully.<li>`unknown_revert`: Fordefi does not know the reason
            for the reversion.<li>`contract_asserted`: The smart contract
            originally made an assertion that was later rejected and the
            transaction was halted. <li>`insufficient_funds_gas_and_value`: A
            transaction was sent for which there were insufficient funds.</ul>
        reason:
          title: Reason
          description: The reason for the reversion (additional information).
          type: string
      type: object
      required:
        - state
      title: TronReversion
    TronReversionState:
      type: string
      enum:
        - not_reverted
        - unknown_revert
        - contract_asserted
        - insufficient_funds_gas_and_value
      title: TronReversionState
    TronTokenTransferDetails:
      properties:
        type:
          type: string
          const: token_transfer
          title: Type
          description: >-
            A transaction involving the transfer of an sip10 asset from one
            address to another.
        sender:
          $ref: '#/components/schemas/EnrichedTronAddress'
          description: The sender of the assets.
        recipient:
          $ref: '#/components/schemas/EnrichedTronAddress'
          description: The recipient of the assets.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
      type: object
      required:
        - type
        - sender
        - recipient
      title: TronTokenTransferDetails
    TronTransaction:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state of the transaction.
        state_changes:
          items:
            $ref: '#/components/schemas/PushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the transaction.
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        incoming_aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchIncoming'
        type:
          type: string
          const: tron_transaction
          title: Type
          description: TRON transaction type.
        tron_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/TronNativeTransferDetails'
            - $ref: '#/components/schemas/TronTokenTransferDetails'
          description: Details of the TRON transaction based on its type.
          discriminator:
            propertyName: type
            mapping:
              native_transfer: '#/components/schemas/TronNativeTransferDetails'
              token_transfer: '#/components/schemas/TronTokenTransferDetails'
        chain:
          $ref: '#/components/schemas/EnrichedTronChain'
          description: The details of the chain this transaction is on.
        sender:
          $ref: '#/components/schemas/EnrichedTronAddress'
          description: The sender of the transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 64
          minLength: 64
          pattern: ^[a-fA-F0-9]+$
          example: 32bd287f0d6c5fde3381cca851fb7c021cc9782165c08078d9a8554163a86b17
        serialized_signed_transaction:
          title: Serialized Signed Transaction
          description: The serialized signed transaction.
          type: string
        block:
          description: The block in which the transaction was mined.
          $ref: '#/components/schemas/TronBlock'
        expected_result:
          description: The expected result of the transaction in case it is mined.
          $ref: '#/components/schemas/TronTransactionResult'
        simulation_status_result:
          description: Whether simulation succeeded or failed.
          $ref: '#/components/schemas/SimulationStatusResult'
        mined_result:
          description: The result of the transaction after it was mined.
          $ref: '#/components/schemas/TronTransactionResult'
        explorer_url:
          title: Explorer Url
          description: >-
            The URL of this transaction in a blockchain explorer. For example,
            https://explorer.hiro.so/
          example: >-
            https://explorer.hiro.so/txid/0xd303fc22b2b8c346a0a1fa164a1ccb878a172dc2b8ce08253a6b2312cafb1520
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        memo:
          title: Memo
          description: The memo of the transaction.
          type: string
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - tron_transaction_type_details
        - chain
        - sender
      title: TronTransaction
    TronTransactionResult:
      properties:
        reversion:
          $ref: '#/components/schemas/TronReversion'
          description: Details whether the transaction was reverted or not.
        fee:
          $ref: '#/components/schemas/TronFee'
          description: The fees of the transaction.
        effects:
          $ref: '#/components/schemas/TronEffects'
          description: The effects of the transaction.
      type: object
      required:
        - reversion
        - fee
        - effects
      title: TronTransactionResult
    TronTransactionType:
      type: string
      enum:
        - native_transfer
        - token_transfer
      title: TronTransactionType
    TronTransferEffect:
      properties:
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the transfer.
          example: '1000000000000000000'
        from:
          $ref: '#/components/schemas/EnrichedTronAddress'
          description: The sender of the transfer.
        to:
          $ref: '#/components/schemas/EnrichedTronAddress'
          description: The receiver of the transfer.
      type: object
      required:
        - priced_asset
        - amount
        - from
        - to
      title: TronTransferEffect
    TronTrc20AssetIdentifierRequest:
      properties:
        type:
          type: string
          const: trc20
          title: Type
          description: Trc20 asset identifier type.
        trc20:
          $ref: '#/components/schemas/TronAddressRequest'
          description: The Trc20 details.
      type: object
      required:
        - type
        - trc20
      title: TronTrc20AssetIdentifierRequest
    TronVault:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        metadata:
          title: Metadata
          description: Metadata in a form of map<str, bool | str | int | array[str]>.
          additionalProperties:
            anyOf:
              - items:
                  type: string
                type: array
              - type: string
              - type: integer
              - type: boolean
          type: object
        name:
          type: string
          title: Name
          description: The name of the vault.
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: Details of the vault creator.
        vault_group:
          $ref: '#/components/schemas/VaultGroupRef'
          description: The vault group this vault belongs to.
        pending_vault_group_action:
          description: Details of pending vault movement to another vault group.
          oneOf:
            - $ref: '#/components/schemas/PendingVaultGroupActionAdd'
            - $ref: '#/components/schemas/PendingVaultGroupActionRemove'
          discriminator:
            propertyName: type
            mapping:
              add: '#/components/schemas/PendingVaultGroupActionAdd'
              remove: '#/components/schemas/PendingVaultGroupActionRemove'
        state:
          $ref: '#/components/schemas/VaultState'
          description: State of the vault.
        public_key_compressed:
          type: string
          title: Public Key Compressed
          description: >-
            The public key of the vault in its compressed form: <ul> <li>For
            ECDSA and Schnorr keys, the public key is represented as 33 bytes
            (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1
            standard](https://www.secg.org/SEC1-Ver-1.0.pdf). <li>For EdDSA, the
            public key is represented as a 32-byte value, as defined by [RFC
            8032](https://datatracker.ietf.org/doc/html/rfc8032). </ul>
          example: SGVsbG8=
        derivation_info:
          $ref: '#/components/schemas/VaultDerivationInfo'
          description: The derivation info of the vault.
        key_holder:
          description: >-
            The user who owns the keyset of the vault. If not provided, the
            vault is owned by the organization.
          $ref: '#/components/schemas/EndUserRef'
        origin_type:
          $ref: '#/components/schemas/VaultOriginType'
          description: The origin type of the vault.
        type:
          type: string
          const: tron
          title: Type
          description: TRON vault type.
        address:
          type: string
          maxLength: 34
          minLength: 34
          pattern: ^T[a-km-zA-HJ-NP-Z1-9]+$
          title: Address
          description: The address of the vault on TRON chain types.
          example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW
        energy_and_bandwidth_data_map:
          additionalProperties:
            $ref: '#/components/schemas/TronVaultEnergyAndBandwidthData'
          type: object
          title: Energy And Bandwidth Data Map
          description: >-
            Resource usage tracking per chain type map. Key is the chain type
            (for example, MAINNET).
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - created_by
        - vault_group
        - state
        - are_all_chains_disabled
        - derivation_path
        - public_key_compressed
        - derivation_info
        - keyset
        - origin_type
        - type
        - address
        - energy_and_bandwidth_data_map
      title: TronVault
      description: Represents a TRON vault in the Fordefi platform
    TronVaultEnergyAndBandwidthData:
      properties:
        energy_used:
          type: integer
          title: Energy Used
          description: The amount of energy used by the vault.
        energy_limit:
          type: integer
          title: Energy Limit
          description: The energy limit of the vault.
        bandwidth_used:
          type: integer
          title: Bandwidth Used
          description: The amount of bandwidth used by the vault.
        bandwidth_limit:
          type: integer
          title: Bandwidth Limit
          description: The bandwidth limit of the vault.
      type: object
      required:
        - energy_used
        - energy_limit
        - bandwidth_used
        - bandwidth_limit
      title: TronVaultEnergyAndBandwidthData
      description: Represents the energy and bandwidth data of a TRON vault
    TypedCosmosRawTransactionRequest:
      properties:
        type:
          type: string
          const: cosmos_raw_transaction
          title: Type
          description: A cosmos raw transaction is for any operation.
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        chain:
          $ref: '#/components/schemas/CosmosChainUniqueId'
          description: Chain id on which the transaction will be processed.
        request_data:
          oneOf:
            - $ref: '#/components/schemas/AminoRequestData'
            - $ref: '#/components/schemas/DirectRequestData'
          description: Request data.
          discriminator:
            propertyName: format
            mapping:
              amino: '#/components/schemas/AminoRequestData'
              direct: '#/components/schemas/DirectRequestData'
      type: object
      required:
        - type
        - chain
        - request_data
      title: TypedCosmosRawTransactionRequest
    TypedCosmosTransferRequest:
      properties:
        type:
          type: string
          const: cosmos_transfer
          title: Type
          description: >-
            A Cosmos transfer transaction. A transaction of this kind is for
            transferring Cosmos assets.
        push_mode:
          $ref: '#/components/schemas/PushMode'
          description: >-
            The push mode of the transaction when sending it to the node. It can
            be one of the following:<ul><li>`auto`: The transaction is pushed
            automatically by Fordefi. <li>`manual`: The transaction should be
            pushed manually by the user using a 3rd party.<li>`deferred`: The
            transaction is pushed by Fordefi after a certain time, if by that
            time it wasn't pushed manually by the client.</ul></ul> 
          default: auto
        to:
          oneOf:
            - $ref: '#/components/schemas/CosmosTransferToAddressRequest'
            - $ref: '#/components/schemas/RecipientVaultId'
          description: >-
            The recipient of the transfer. Specify either a general address  or
            the ID of another vault (a UUID string).
          discriminator:
            propertyName: type
            mapping:
              address: '#/components/schemas/CosmosTransferToAddressRequest'
              vault_id: '#/components/schemas/RecipientVaultId'
        asset_identifier:
          $ref: '#/components/schemas/CosmosAssetIdentifierRequest'
          description: The asset to be transferred.
        value:
          oneOf:
            - $ref: '#/components/schemas/CreateTransferRequestExplicitAmount'
            - $ref: '#/components/schemas/CreateTransferRequestMaxAmount'
          description: 'Specify one of the following: <ul><li>`value`<li>`max`</ul>'
          discriminator:
            propertyName: type
            mapping:
              max: '#/components/schemas/CreateTransferRequestMaxAmount'
              value: '#/components/schemas/CreateTransferRequestExplicitAmount'
        memo:
          title: Memo
          description: Transaction memo.
          type: string
      type: object
      required:
        - type
        - to
        - asset_identifier
        - value
      title: TypedCosmosTransferRequest
    UnfreezeApprovalState:
      type: string
      enum:
        - pending
        - approved
      title: UnfreezeApprovalState
    UnknownAssetStacksPostCondition:
      properties:
        address:
          $ref: '#/components/schemas/EnrichedStacksAddress'
          description: The address this post condition applies to.
        condition_code:
          $ref: '#/components/schemas/StacksPostConditionComparator'
          description: The condition code of the post condition.
        amount:
          type: string
          pattern: ^\d+$
          title: Amount
          description: The amount of the asset this post condition applies to.
          example: '1000000000000000000'
        type:
          type: string
          const: unknown_asset
          title: Type
          description: The type of the post condition.
        asset_name:
          type: string
          title: Asset Name
          description: The asset name this post condition applies to
      type: object
      required:
        - address
        - condition_code
        - amount
        - type
        - asset_name
      title: UnknownAssetStacksPostCondition
    UnknownTypedMessageEvmMessage:
      properties:
        domain:
          $ref: '#/components/schemas/EvmMessageDomainData'
          description: The domain data.
        primary_type:
          type: string
          title: Primary Type
          description: Used to identify the primary type of the message.
        type:
          type: string
          const: unknown
          title: Type
          description: The typed message type.
      type: object
      required:
        - domain
        - primary_type
        - type
      title: UnknownTypedMessageEvmMessage
    UpdateAssetConfiguration:
      properties:
        asset:
          $ref: '#/components/schemas/AssetIdentifierRequest'
          description: The address of the ERC-20 asset to update.
        hidden:
          type: boolean
          title: Hidden
          description: '`True` to hide the token when listing assets, `False` otherwise.'
      type: object
      required:
        - asset
        - hidden
      title: UpdateAssetConfiguration
    UpdateTransactionSpamStateRequest:
      properties:
        is_spam:
          type: boolean
          title: Is Spam
      type: object
      required:
        - is_spam
      title: UpdateTransactionSpamStateRequest
    User:
      oneOf:
        - $ref: '#/components/schemas/Person'
        - $ref: '#/components/schemas/ApiUser'
        - $ref: '#/components/schemas/ApiSigner'
        - $ref: '#/components/schemas/SystemUser'
      description: Represents a user in the Fordefi platform
      discriminator:
        propertyName: user_type
        mapping:
          api_signer: '#/components/schemas/ApiSigner'
          api_user: '#/components/schemas/ApiUser'
          person: '#/components/schemas/Person'
          system: '#/components/schemas/SystemUser'
    UserGroup:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the user group.
        users_count:
          type: integer
          minimum: 0
          title: Users Count
          description: The number of users in the group.
        admins_count:
          type: integer
          minimum: 0
          title: Admins Count
          description: The number of admins in the group.
        state:
          $ref: '#/components/schemas/UserGroupState'
          description: The state of the user group.
        modified_by:
          $ref: '#/components/schemas/UserRef'
          description: Group last modifier.
        proposed_change:
          description: The change proposal for the group.
          $ref: '#/components/schemas/UserGroupChangeRequest'
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - users_count
        - admins_count
        - state
        - modified_by
      title: UserGroup
      description: Represents a user group in the Fordefi platform
    UserGroupChangeRequest:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The ID of the change proposal.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The time the change proposal was created.
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: The user who created the change proposal.
        new_name:
          title: New Name
          description: The new name of the group if it is changed.
          type: string
        added_users:
          title: Added Users
          description: The users added to the group.
          items:
            $ref: '#/components/schemas/GroupUserRef'
          type: array
        removed_users:
          title: Removed Users
          description: The users removed from the group.
          items:
            $ref: '#/components/schemas/GroupUserRef'
          type: array
      type: object
      required:
        - id
        - created_at
        - created_by
      title: UserGroupChangeRequest
      description: Represents a user group change proposal in the Fordefi platform
    UserGroupRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of user group in the Fordefi platform.
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the user group.
        users_count:
          type: integer
          minimum: 0
          title: Users Count
          description: The number of users in the group.
        admins_count:
          type: integer
          minimum: 0
          title: Admins Count
          description: The number of admins in the group.
        state:
          $ref: '#/components/schemas/UserGroupState'
          description: The state of the user group.
      type: object
      required:
        - id
        - name
        - users_count
        - admins_count
        - state
      title: UserGroupRef
    UserGroupSortableFields:
      type: string
      enum:
        - created_at_asc
        - created_at_desc
        - modified_at_asc
        - modified_at_desc
        - name_asc
        - name_desc
        - users_count_asc
        - users_count_desc
      title: UserGroupSortableFields
    UserGroupState:
      type: string
      enum:
        - active
        - deleted
      title: UserGroupState
      description: Represents a user group state in the Fordefi platform
    UserRef:
      oneOf:
        - $ref: '#/components/schemas/PersonRef'
        - $ref: '#/components/schemas/ApiUserRef'
        - $ref: '#/components/schemas/ApiSignerRef'
        - $ref: '#/components/schemas/EndUserRef'
        - $ref: '#/components/schemas/SystemUserRef'
      description: Represents a reference to a user in the Fordefi platform
      discriminator:
        propertyName: user_type
        mapping:
          api_signer: '#/components/schemas/ApiSignerRef'
          api_user: '#/components/schemas/ApiUserRef'
          end_user: '#/components/schemas/EndUserRef'
          person: '#/components/schemas/PersonRef'
          system: '#/components/schemas/SystemUserRef'
    UserRole:
      type: string
      enum:
        - admin
        - trader
        - viewer
      title: UserRole
    UserSortableFields:
      type: string
      enum:
        - role_asc
        - role_desc
        - email_asc
        - email_desc
        - created_asc
        - created_desc
        - name_asc
        - name_desc
        - last_keep_alive_asc
        - last_keep_alive_desc
        - state_asc
        - state_desc
        - type_asc
        - type_desc
      title: UserSortableFields
    UserState:
      type: string
      enum:
        - active
        - onboarding
        - pending_approval
        - deleted
      title: UserState
    UserStateOnGroup:
      type: string
      enum:
        - active
        - pending_addition
        - pending_removal
      title: UserStateOnGroup
    UserType:
      type: string
      enum:
        - person
        - api_signer
        - api_user
        - system
      title: UserType
    UtxoAddress:
      properties:
        address:
          type: string
          maxLength: 74
          minLength: 14
          title: Address
          description: The UTXO string address.
          example: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
        address_type:
          $ref: '#/components/schemas/UtxoAddressType'
          description: The type of the address.
        chain:
          $ref: '#/components/schemas/UtxoChain'
          description: The UTXO chain unique ID.
      type: object
      required:
        - address
        - address_type
        - chain
      title: UtxoAddress
    UtxoAddressBookContact:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        name:
          type: string
          title: Name
          description: The name of the contact.
        modified_by:
          $ref: '#/components/schemas/UserRef'
          description: Address last modifier.
        state:
          $ref: '#/components/schemas/AddressBookContactState'
          description: The state of the contact.
        groups:
          items:
            $ref: '#/components/schemas/GroupRef'
          type: array
          title: Groups
          description: List of contact's groups.
        pending_changes:
          description: Pending changes for the contact.
          $ref: '#/components/schemas/AddressBookContactChanges'
        asset_infos:
          items:
            $ref: '#/components/schemas/AssetInfo'
          type: array
          title: Asset Infos
          description: >-
            A list of asset infos for the contact. Can be used to enforce
            trading of specific assets intransfers to this address
        chain_type:
          type: string
          const: utxo
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 74
          minLength: 14
          title: Address
          description: The address on the utxo chain.
          example: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
        chain:
          $ref: '#/components/schemas/EnrichedUtxoChain'
          description: The chain the contact belongs to.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - modified_by
        - state
        - groups
        - asset_infos
        - chain_type
        - address
        - chain
      title: UtxoAddressBookContact
      description: Represents a contact in the Fordefi platform
    UtxoAddressBookContactAddressRef:
      properties:
        chain_type:
          type: string
          const: utxo
          title: Chain Type
          description: The type of the chain.
        address:
          type: string
          maxLength: 74
          minLength: 14
          title: Address
          description: The address on the utxo chain.
          example: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
        chain:
          $ref: '#/components/schemas/UtxoChain'
          description: The chain the contact belongs to.
      type: object
      required:
        - chain_type
        - address
        - chain
      title: UtxoAddressBookContactAddressRef
    UtxoAddressType:
      type: string
      enum:
        - legacy
        - p2sh
        - segwit
        - taproot
      title: UtxoAddressType
    UtxoAsset:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The asset ID.
        decimals:
          type: integer
          minimum: 0
          title: Decimals
        price:
          description: The price of the asset.
          $ref: '#/components/schemas/Price'
        name:
          type: string
          title: Name
          description: The name of the asset.
        symbol:
          type: string
          title: Symbol
          description: The symbol (ticker) of the asset.
        hidden:
          type: boolean
          title: Hidden
          description: '`True` if this asset was set to be hidden, `False` otherwise.'
        verified:
          type: boolean
          title: Verified
          description: '`True` if this asset is verified by Fordefi, `False` otherwise.'
        asset_identifier:
          $ref: '#/components/schemas/EnrichedAssetIdentifier'
          description: The asset identifier.
        metadata_uri:
          title: Metadata Uri
          description: The URI of the asset metadata.
          type: string
      type: object
      required:
        - id
        - decimals
        - name
        - symbol
        - hidden
        - verified
        - asset_identifier
        - type
        - details
      title: UtxoAsset
    UtxoAssetIdentifier:
      properties:
        type:
          type: string
          const: utxo
          title: Type
          description: Utxo asset identifier type.
        details:
          $ref: '#/components/schemas/UtxoNativeAssetIdentifierRequest'
        chain:
          $ref: '#/components/schemas/EnrichedUtxoChain'
      type: object
      required:
        - type
        - details
        - chain
      title: UtxoAssetIdentifier
    UtxoAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: utxo
          title: Type
          description: Utxo asset identifier type.
        details:
          $ref: '#/components/schemas/UtxoNativeAssetIdentifierRequest'
      type: object
      required:
        - type
        - details
      title: UtxoAssetIdentifierRequest
    UtxoBalanceChangeEffect:
      properties:
        type:
          type: string
          const: native
          title: Type
          description: The type of the balance change.
        vault:
          $ref: '#/components/schemas/VaultRef'
          description: The vault affected by the balance change.
        diff:
          type: string
          pattern: ^-?\d+$
          title: Diff
          description: >-
            The amount of native currency that was added to or deducted from the
            owner's balance. If the amount was deducted, the value is negative;
            if the amount was added, the value is positive.
          example: '1000000000000000000'
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
      type: object
      required:
        - type
        - vault
        - diff
        - priced_asset
      title: UtxoBalanceChangeEffect
    UtxoBlockData:
      properties:
        number:
          type: integer
          title: Number
          description: The block number.
        hash:
          type: string
          title: Hash
          description: The block hash.
        mined_at:
          type: string
          format: date-time
          title: Mined At
          description: The date and time when this block was mined.
      type: object
      required:
        - number
        - hash
        - mined_at
      title: UtxoBlockData
    UtxoChain:
      properties:
        chain_type:
          type: string
          const: utxo
          title: Chain Type
          description: The type of the chain.
        unique_id:
          $ref: '#/components/schemas/UtxoChainUniqueId'
          description: The UTXO chain unique ID.
      type: object
      required:
        - chain_type
        - unique_id
      title: UtxoChain
    UtxoChainUniqueId:
      type: string
      enum:
        - bitcoin_mainnet
        - bitcoin_testnet
      title: UtxoChainUniqueId
    UtxoEffects:
      properties:
        inputs:
          items:
            $ref: '#/components/schemas/UtxoInput'
          type: array
          title: Inputs
          description: The inputs of the transaction.
        outputs:
          items:
            $ref: '#/components/schemas/UtxoOutput'
          type: array
          title: Outputs
          description: The outputs of the transaction.
        balance_changes:
          items:
            $ref: '#/components/schemas/UtxoBalanceChangeEffect'
          type: array
          title: Balance Changes
          description: The aggregated balance changes of vaults.
        total_value:
          type: string
          pattern: ^\d+$
          title: Total Value
          description: The total value of the transaction.
          example: '1000000000000000000'
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The asset information.
      type: object
      required:
        - inputs
        - outputs
        - balance_changes
        - total_value
        - priced_asset
      title: UtxoEffects
    UtxoFees:
      properties:
        priority:
          $ref: '#/components/schemas/FeePriorityLevel'
          description: The priority level.
        fee_per_byte:
          type: string
          pattern: ^\d+$
          title: Fee Per Byte
          description: The fee per byte.
          example: '1000000000000000000'
        transaction_byte_size:
          type: string
          pattern: ^\d+$
          title: Transaction Byte Size
          description: The transaction size in bytes.
          example: '1000000000000000000'
        total_fee:
          type: string
          pattern: ^\d+$
          title: Total Fee
          description: The total fee paid.
          example: '1000000000000000000'
        priced_asset:
          $ref: '#/components/schemas/PricedAsset'
          description: The information of the asset used to pay the fee and amount used.
      type: object
      required:
        - priority
        - fee_per_byte
        - transaction_byte_size
        - total_fee
        - priced_asset
      title: UtxoFees
    UtxoInput:
      properties:
        address:
          $ref: '#/components/schemas/EnrichedUtxoAddress'
          description: The address of the input.
        value:
          type: string
          pattern: ^\d+$
          title: Value
          description: The value of the input.
          example: '1000000000000000000'
        should_sign:
          type: boolean
          title: Should Sign
          description: >-
            `True` if this is signed by the creating vault (relevant for PSBT),
            `False` otherwise.
          default: true
      type: object
      required:
        - address
        - value
      title: UtxoInput
    UtxoMessage:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The state of the message.
        state_changes:
          items:
            $ref: '#/components/schemas/NonPushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the message.
        type:
          type: string
          const: utxo_message
          title: Type
          description: utxo message type.
        utxo_message_type:
          $ref: '#/components/schemas/UtxoMessageType'
          description: The type of the message to sign.
        raw_data:
          type: string
          title: Raw Data
          description: The raw data of the message, encoded in base64
          example: SGVsbG8=
        chain:
          $ref: '#/components/schemas/EnrichedUtxoChain'
          description: The details of the chain that this message is on.
        string_data:
          type: string
          title: String Data
          description: The message as a string.
        sender:
          $ref: '#/components/schemas/EnrichedUtxoAddress'
          description: The sender of the message.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - utxo_message_type
        - raw_data
        - chain
        - string_data
        - sender
      title: UtxoMessage
    UtxoMessageDetails:
      properties:
        type:
          $ref: '#/components/schemas/UtxoMessageType'
          description: The type of the message to sign.
        sender:
          $ref: '#/components/schemas/UtxoAddress'
          description: The sender of the message.
        raw_data:
          type: string
          title: Raw Data
          description: The raw data of the message, encoded in base64
          example: SGVsbG8=
      type: object
      required:
        - type
        - sender
        - raw_data
      title: UtxoMessageDetails
    UtxoMessageType:
      type: string
      enum:
        - ecdsa
        - bip322_simple
      title: UtxoMessageType
    UtxoNativeAsset:
      properties:
        chain:
          $ref: '#/components/schemas/EnrichedUtxoChain'
          description: The details of the chain of the native asset.
        type:
          type: string
          const: utxo_native_asset
          title: Type
          description: Utxo asset type.
      type: object
      required:
        - chain
        - type
      title: UtxoNativeAsset
    UtxoNativeAssetIdentifierRequest:
      properties:
        type:
          type: string
          const: native
          title: Type
          description: Utxo asset identifier type.
        chain:
          $ref: '#/components/schemas/UtxoChainUniqueId'
          description: The unique id of the chain of the asset.
      type: object
      required:
        - type
        - chain
      title: UtxoNativeAssetIdentifierRequest
    UtxoNativeTransferDetails:
      properties:
        type:
          type: string
          const: native_transfer
          title: Type
          description: >-
            A transaction involving the transfer of native currency from one or
            moreaddresses to one or more addresses.
        is_internal:
          title: Is Internal
          description: >-
            Is this transfer an internal transfer between two vaults. None if
            the transaction is incoming.
          type: boolean
        vault:
          description: The vault that signed this transfer.
          $ref: '#/components/schemas/VaultRef'
        memos:
          items:
            type: string
          type: array
          title: Memos
          description: List of memos of the transaction.
      type: object
      required:
        - type
        - direction
        - memos
      title: UtxoNativeTransferDetails
    UtxoOutput:
      properties:
        address:
          $ref: '#/components/schemas/EnrichedUtxoAddress'
          description: The address of the output.
        value:
          type: string
          pattern: ^\d+$
          title: Value
          description: The value of the output.
          example: '1000000000000000000'
        is_change_address:
          title: Is Change Address
          description: Whether the output is a change address.
          type: boolean
      type: object
      required:
        - address
        - value
      title: UtxoOutput
    UtxoOutputRequest:
      properties:
        to:
          oneOf:
            - $ref: '#/components/schemas/UtxoOutputToAddressRequest'
            - $ref: '#/components/schemas/UtxoOutputToVaultAddressIdRequest'
            - $ref: '#/components/schemas/UtxoOutputToVaultIdRequest'
          discriminator:
            propertyName: type
            mapping:
              address: '#/components/schemas/UtxoOutputToAddressRequest'
              vault_address_id: '#/components/schemas/UtxoOutputToVaultAddressIdRequest'
              vault_id: '#/components/schemas/UtxoOutputToVaultIdRequest'
        value:
          type: string
          pattern: ^0*[1-9]\d*$
          title: Value
          example: '1000000000000000000'
      type: object
      required:
        - to
        - value
      title: UtxoOutputRequest
    UtxoOutputToAddressRequest:
      properties:
        type:
          type: string
          const: address
          title: Type
        address:
          type: string
          maxLength: 74
          minLength: 14
          title: Address
          example: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
      type: object
      required:
        - type
        - address
      title: UtxoOutputToAddressRequest
    UtxoOutputToVaultAddressIdRequest:
      properties:
        type:
          type: string
          const: vault_address_id
          title: Type
        vault_address_id:
          type: string
          format: uuid
          title: Vault Address Id
      type: object
      required:
        - type
        - vault_address_id
      title: UtxoOutputToVaultAddressIdRequest
    UtxoOutputToVaultIdRequest:
      properties:
        type:
          type: string
          const: vault_id
          title: Type
        vault_id:
          type: string
          format: uuid
          title: Vault Id
      type: object
      required:
        - type
        - vault_id
      title: UtxoOutputToVaultIdRequest
    UtxoPsbtDetails:
      properties:
        type:
          type: string
          const: partially_signed_bitcoin_transaction
          title: Type
          description: A partially signed bitcoin transaction (PSBT).
        psbt_raw_data:
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
          title: Psbt Raw Data
          description: Partially signed bitcoin transaction data encoded as a hex string.
        signed_psbt_raw_data:
          title: Signed Psbt Raw Data
          description: Partially signed bitcoin transaction data encoded as a hex string.
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
        sender:
          $ref: '#/components/schemas/EnrichedUtxoAddress'
          description: The address that signed the inputs.
        json_representation:
          title: Json Representation
          description: Json representation of the PSBT.
          type: string
      type: object
      required:
        - type
        - psbt_raw_data
        - sender
      title: UtxoPsbtDetails
    UtxoSuggestedFees:
      properties:
        type:
          type: string
          const: utxo
          title: Type
          description: The type of the chain.
        low:
          type: string
          pattern: ^\d+$
          title: Low
          description: The low suggested fee per byte.
          example: '1000000000000000000'
        medium:
          type: string
          pattern: ^\d+$
          title: Medium
          description: The medium suggested fee per byte.
          example: '1000000000000000000'
        high:
          type: string
          pattern: ^\d+$
          title: High
          description: The high suggested fee per byte.
          example: '1000000000000000000'
        chain_unique_id:
          $ref: '#/components/schemas/UtxoChainUniqueId'
          description: The UTXO chain unique id.
      type: object
      required:
        - type
        - low
        - medium
        - high
        - chain_unique_id
      title: UtxoSuggestedFees
    UtxoTransaction:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        managed_transaction_data:
          description: >-
            Managed transaction data. Presented if the transaction was initiated
            from the Fordefi system itself, in contrast to unmanaged
            transactions (which are, for example, transfers of funds into a
            vault visible to Fordefi). 
          $ref: '#/components/schemas/ManagedTransactionData'
        signatures:
          items:
            $ref: '#/components/schemas/Signature'
          type: array
          title: Signatures
          description: The transaction signatures.
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
          default: unset
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: The direction of the transaction.
        signed_externally:
          type: boolean
          title: Signed Externally
          description: >-
            Whether the transaction was signed by an external user (for example
            in case of imported vault).
          default: false
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The state of the transaction.
        state_changes:
          items:
            $ref: '#/components/schemas/PushableTransactionStateChange'
          type: array
          title: State Changes
          description: The state changes of the transaction.
        aml_results:
          description: The AML results.
          $ref: '#/components/schemas/AmlResults'
        incoming_aml_policy_match:
          description: The AML policy match.
          $ref: '#/components/schemas/AmlPolicyMatchIncoming'
        type:
          type: string
          const: utxo_transaction
          title: Type
          description: The type of the transaction.
        utxo_transaction_type_details:
          oneOf:
            - $ref: '#/components/schemas/UtxoNativeTransferDetails'
            - $ref: '#/components/schemas/UtxoPsbtDetails'
          description: Details of UTXO transaction, based on its type.
          discriminator:
            propertyName: type
            mapping:
              native_transfer: '#/components/schemas/UtxoNativeTransferDetails'
              partially_signed_bitcoin_transaction: '#/components/schemas/UtxoPsbtDetails'
        chain:
          $ref: '#/components/schemas/EnrichedUtxoChain'
          description: Details of the chain this transaction is on.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
        explorer_url:
          title: Explorer Url
          description: The URL of this transaction in a blockchain explorer.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        block:
          description: Details of the block the transaction was mined in.
          $ref: '#/components/schemas/UtxoBlockData'
        expected_result:
          description: The expected result of the transaction in case it is mined.
          $ref: '#/components/schemas/UtxoTransactionResult'
        mined_result:
          description: The result of the transaction after it was mined.
          $ref: '#/components/schemas/UtxoTransactionResult'
      type: object
      required:
        - id
        - created_at
        - modified_at
        - signatures
        - direction
        - state
        - state_changes
        - type
        - utxo_transaction_type_details
        - chain
      title: UtxoTransaction
    UtxoTransactionResult:
      properties:
        fees:
          description: The fees of the transaction.
          $ref: '#/components/schemas/UtxoFees'
        effects:
          $ref: '#/components/schemas/UtxoEffects'
          description: The effects of the transaction.
      type: object
      required:
        - effects
      title: UtxoTransactionResult
    UtxoTransactionType:
      type: string
      enum:
        - native_transfer
        - partially_signed_bitcoin_transaction
      title: UtxoTransactionType
    UtxoVault:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        metadata:
          title: Metadata
          description: Metadata in a form of map<str, bool | str | int | array[str]>.
          additionalProperties:
            anyOf:
              - items:
                  type: string
                type: array
              - type: string
              - type: integer
              - type: boolean
          type: object
        name:
          type: string
          title: Name
          description: The name of the vault.
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: Details of the vault creator.
        vault_group:
          $ref: '#/components/schemas/VaultGroupRef'
          description: The vault group this vault belongs to.
        pending_vault_group_action:
          description: Details of pending vault movement to another vault group.
          oneOf:
            - $ref: '#/components/schemas/PendingVaultGroupActionAdd'
            - $ref: '#/components/schemas/PendingVaultGroupActionRemove'
          discriminator:
            propertyName: type
            mapping:
              add: '#/components/schemas/PendingVaultGroupActionAdd'
              remove: '#/components/schemas/PendingVaultGroupActionRemove'
        state:
          $ref: '#/components/schemas/VaultState'
          description: State of the vault.
        public_key_compressed:
          type: string
          title: Public Key Compressed
          description: >-
            The public key of the vault in its compressed form: <ul> <li>For
            ECDSA and Schnorr keys, the public key is represented as 33 bytes
            (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1
            standard](https://www.secg.org/SEC1-Ver-1.0.pdf). <li>For EdDSA, the
            public key is represented as a 32-byte value, as defined by [RFC
            8032](https://datatracker.ietf.org/doc/html/rfc8032). </ul>
          example: SGVsbG8=
        derivation_info:
          $ref: '#/components/schemas/VaultDerivationInfo'
          description: The derivation info of the vault.
        key_holder:
          description: >-
            The user who owns the keyset of the vault. If not provided, the
            vault is owned by the organization.
          $ref: '#/components/schemas/EndUserRef'
        origin_type:
          $ref: '#/components/schemas/VaultOriginType'
          description: The origin type of the vault.
        type:
          type: string
          const: utxo
          title: Type
          description: UTXO vault type.
        chain:
          $ref: '#/components/schemas/EnrichedUtxoChain'
          description: The UTXO chain.
        default_address:
          $ref: '#/components/schemas/UtxoVaultAddress'
          description: The default address of the vault on the chain.
        default_next_address_name:
          type: string
          title: Default Next Address Name
          description: The default name of the next address to be created.
        taproot_key_public_compressed:
          title: Taproot Key Public Compressed
          description: >-
            The compressed public key of the second key (taproot key for UTXO
            vault). As defined in the SEC1 standard:
            https://www.secg.org/SEC1-Ver-1.0.pdf.
          type: string
          example: SGVsbG8=
        taproot_key_derivation_info:
          description: The derivation info of the second key (taproot key for UTXO vault).
          $ref: '#/components/schemas/VaultDerivationInfo'
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - created_by
        - vault_group
        - state
        - are_all_chains_disabled
        - derivation_path
        - public_key_compressed
        - derivation_info
        - keyset
        - origin_type
        - type
        - chain
        - default_address
        - default_next_address_name
      title: UtxoVault
      description: Represents a Utxo vault in the Fordefi platform
    UtxoVaultAddress:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        vault:
          $ref: '#/components/schemas/VaultRef'
          description: The vault this address belongs to.
        name:
          type: string
          title: Name
          description: The name of the address.
        public_key_compressed:
          type: string
          title: Public Key Compressed
          description: >-
            The compressed public key of the address. As defined in the SEC1
            standard: https://www.secg.org/SEC1-Ver-1.0.pdf.
          example: SGVsbG8=
        derivation_path:
          type: string
          title: Derivation Path
          description: The BIP-32 derivation path of the address.
          example: m/44/60/0/0/0
        type:
          type: string
          const: utxo
          title: Type
          description: The type of the vault address.
        address:
          $ref: '#/components/schemas/UtxoAddress'
          description: The address on the chain.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - vault
        - name
        - public_key_compressed
        - derivation_path
        - type
        - address
      title: UtxoVaultAddress
    ValidationError:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          items:
            $ref: '#/components/schemas/ValidationErrorDetail'
          type: array
          title: Detail
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
      type: object
      required:
        - title
        - detail
      title: ValidationError
    ValidationErrorDetail:
      properties:
        loc:
          items:
            anyOf:
              - type: integer
              - type: string
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationErrorDetail
    Vault:
      oneOf:
        - $ref: '#/components/schemas/AptosVault'
        - $ref: '#/components/schemas/BlackBoxVault'
        - $ref: '#/components/schemas/CosmosVault'
        - $ref: '#/components/schemas/EvmVault'
        - $ref: '#/components/schemas/SolanaVault'
        - $ref: '#/components/schemas/StacksVault'
        - $ref: '#/components/schemas/StarknetVault'
        - $ref: '#/components/schemas/SuiVault'
        - $ref: '#/components/schemas/TonVault'
        - $ref: '#/components/schemas/TronVault'
        - $ref: '#/components/schemas/UtxoVault'
        - $ref: '#/components/schemas/ExchangeVault'
      description: Represents a vault in the Fordefi platform
      discriminator:
        propertyName: type
        mapping:
          aptos: '#/components/schemas/AptosVault'
          black_box: '#/components/schemas/BlackBoxVault'
          cosmos: '#/components/schemas/CosmosVault'
          evm: '#/components/schemas/EvmVault'
          exchange: '#/components/schemas/ExchangeVault'
          solana: '#/components/schemas/SolanaVault'
          stacks: '#/components/schemas/StacksVault'
          starknet: '#/components/schemas/StarknetVault'
          sui: '#/components/schemas/SuiVault'
          ton: '#/components/schemas/TonVault'
          tron: '#/components/schemas/TronVault'
          utxo: '#/components/schemas/UtxoVault'
    VaultAddressRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the vault address in the Fordefi platform.
        vault_id:
          type: string
          format: uuid
          title: Vault Id
          description: The unique identifier of the vault this address belongs to.
        name:
          type: string
          title: Name
          description: The name of the vault address.
        address:
          type: string
          title: Address
          description: The address of the vault address.
      type: object
      required:
        - id
        - vault_id
        - name
        - address
      title: VaultAddressRef
      description: Represents a reference to a vault address in the Fordefi platform
    VaultAddressSortableFields:
      type: string
      enum:
        - created_at_asc
        - created_at_desc
        - name_asc
        - name_desc
      title: VaultAddressSortableFields
    VaultDerivationInfo:
      properties:
        derivation_path:
          type: string
          pattern: ^(m/44/[0-9]+/[0-9]+/[0-9]+/[0-9]+|m)$
          title: Derivation Path
          description: The BIP 44 derivation path of the vault.
          example: m/44/60/0/0/0
        master_public_key:
          $ref: '#/components/schemas/MasterPublicKey'
          description: The public key of the vault.
      type: object
      required:
        - derivation_path
        - master_public_key
      title: VaultDerivationInfo
    VaultGroup:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: >-
            The date and time when the object was last modified. Any change to
            any field of the resource is considered a modification.
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the vault group.
        created_by:
          description: Details of the vault group creator. None for Default vault group.
          $ref: '#/components/schemas/UserRef'
        vault_count:
          type: integer
          title: Vault Count
          description: The number of vaults in the group.
        permissions:
          $ref: '#/components/schemas/VaultGroupPermissions'
          description: The permissions of the vault group
        owner:
          $ref: '#/components/schemas/VaultGroupOwner'
          description: The owner type of the vault group.
        modified_by:
          description: >-
            Details of the vault group last editor. None for Default vault
            group.
          $ref: '#/components/schemas/UserRef'
        pending_change_request:
          description: >-
            Info on pending change request. None if there is no pending change
            request.
          $ref: '#/components/schemas/VaultGroupPendingChangeRequestInfo'
        state:
          $ref: '#/components/schemas/VaultGroupState'
          description: The state of the vault group.
      type: object
      required:
        - id
        - created_at
        - modified_at
        - name
        - vault_count
        - permissions
        - owner
        - state
      title: VaultGroup
      description: Represents a vault group in the Fordefi platform
    VaultGroupAccessPermissions:
      oneOf:
        - $ref: '#/components/schemas/VaultGroupAccessPermissionsAll'
        - $ref: '#/components/schemas/VaultGroupAccessPermissionsPermitted'
      description: The access type of the permissions.
      discriminator:
        propertyName: access_type
        mapping:
          all: '#/components/schemas/VaultGroupAccessPermissionsAll'
          permitted: '#/components/schemas/VaultGroupAccessPermissionsPermitted'
    VaultGroupAccessPermissionsAll:
      properties:
        access_type:
          type: string
          const: all
          title: Access Type
          description: access type
      type: object
      required:
        - access_type
      title: VaultGroupAccessPermissionsAll
    VaultGroupAccessPermissionsPermitted:
      properties:
        access_type:
          type: string
          const: permitted
          title: Access Type
          description: access type
        user_groups:
          items:
            $ref: '#/components/schemas/UserGroupRef'
          type: array
          title: User Groups
          description: The list of permitted user group
        users:
          items:
            $ref: '#/components/schemas/UserRef'
          type: array
          title: Users
          description: The list of permitted users
      type: object
      required:
        - access_type
        - user_groups
        - users
      title: VaultGroupAccessPermissionsPermitted
    VaultGroupOwner:
      type: string
      enum:
        - system
        - user
      title: VaultGroupOwner
    VaultGroupPendingChangeRequestInfo:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: ID of a pending change request.
        new_name:
          title: New Name
          description: >-
            New proposed name of the pending change request. None if there is no
            pending change request or no new name is proposed.
          type: string
          minLength: 1
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: The user who initiated the change request
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when change request was initiated.
      type: object
      required:
        - id
        - new_name
        - created_by
        - created_at
      title: VaultGroupPendingChangeRequestInfo
    VaultGroupPermissions:
      properties:
        access_permissions:
          $ref: '#/components/schemas/VaultGroupAccessPermissions'
          description: the access permissions for this vault group
        can_non_admins_create_or_edit_vaults:
          type: boolean
          title: Can Non Admins Create Or Edit Vaults
          description: >-
            True to give create or edit permissions to the user groups. False to
            allow only admins
        can_current_user_create_or_edit_vaults:
          type: boolean
          title: Can Current User Create Or Edit Vaults
          description: >-
            Can the current user create or edit vaults in the group's based on
            the group permissions
      type: object
      required:
        - access_permissions
        - can_non_admins_create_or_edit_vaults
        - can_current_user_create_or_edit_vaults
      title: VaultGroupPermissions
    VaultGroupRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the vault group in the Fordefi platform.
        name:
          type: string
          title: Name
          description: The name of the vault group.
        vault_count:
          type: integer
          title: Vault Count
          description: The number of vaults in the group.
        can_current_user_create_or_edit_vaults:
          type: boolean
          title: Can Current User Create Or Edit Vaults
          description: >-
            Can the current user create or edit vaults in the group's based on
            the group permissions
      type: object
      required:
        - id
        - name
        - vault_count
        - can_current_user_create_or_edit_vaults
      title: VaultGroupRef
      description: Represents a reference to a vault group in the Fordefi platform
    VaultGroupSortableFields:
      type: string
      enum:
        - created_at_asc
        - created_at_desc
        - name_asc
        - name_desc
        - vault_count_asc
        - vault_count_desc
      title: VaultGroupSortableFields
    VaultGroupState:
      type: string
      enum:
        - pending_approval
        - active
      title: VaultGroupState
    VaultOriginType:
      type: string
      enum:
        - native
        - imported
      title: VaultOriginType
    VaultRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the vault in the Fordefi platform.
        vault_group_id:
          type: string
          format: uuid
          title: Vault Group Id
          description: The unique identifier of the vault group this vault belongs to.
        name:
          type: string
          title: Name
          description: The name of the vault.
        address:
          title: Address
          description: The address of the vault.
          type: string
        state:
          $ref: '#/components/schemas/VaultState'
          description: State of the vault.
        type:
          $ref: '#/components/schemas/VaultType'
          description: Type of the vault.
        logo_url:
          title: Logo Url
          description: The logo of the vault. Supported only for exchange vaults.
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
        end_user:
          description: >-
            The end user that owns this vault if it is in a Consumer Wallet
            organization. `None` otherwise.
          $ref: '#/components/schemas/EndUserRef'
      type: object
      required:
        - id
        - vault_group_id
        - name
        - state
        - type
      title: VaultRef
      description: Represents a reference to a vault in the Fordefi platform
    VaultSortableFields:
      type: string
      enum:
        - created_at_asc
        - created_at_desc
        - name_asc
        - name_desc
        - vault_type_asc
        - vault_type_desc
      title: VaultSortableFields
    VaultState:
      type: string
      enum:
        - active
        - archived
      title: VaultState
    VaultType:
      type: string
      enum:
        - aptos
        - black_box
        - cosmos
        - evm
        - solana
        - stacks
        - starknet
        - sui
        - ton
        - tron
        - utxo
        - exchange
      title: VaultType
    WebhookAptosMessageStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: aptos_message
          title: Type
          description: The type of the transaction.
        aptos_message_type:
          $ref: '#/components/schemas/AptosMessageType'
          description: The type of the Aptos message.
        chain:
          $ref: '#/components/schemas/AptosChain'
          description: The chain type this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - aptos_message_type
        - chain
      title: WebhookAptosMessageStatusChangeEvent
    WebhookAptosTransactionStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: aptos_transaction
          title: Type
          description: The type of the transaction.
        aptos_transaction_type:
          $ref: '#/components/schemas/AptosTransactionType'
          description: The type of the Aptos transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          example: '0x780f21260f89d610f24eed21b34d29229611a37e0003e83dd0da91981d7131ae'
        serialized_signed_transaction:
          title: Serialized Signed Transaction
          description: The serialized signed transaction param encoded as a base64 string.
          type: string
          example: SGVsbG8=
        chain:
          $ref: '#/components/schemas/AptosChain'
          description: The chain type this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - aptos_transaction_type
        - chain
      title: WebhookAptosTransactionStatusChangeEvent
    WebhookBlackBoxSignatureStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        type:
          type: string
          const: black_box_signature
          title: Type
          description: The type of the transaction.
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The current state of the message.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - type
        - state
      title: WebhookBlackBoxSignatureStatusChangeEvent
    WebhookCosmosMessageStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: cosmos_message
          title: Type
          description: The type of the transaction.
        cosmos_message_type:
          $ref: '#/components/schemas/CosmosMessageType'
          description: The type of the Cosmos message.
        chain:
          $ref: '#/components/schemas/CosmosChain'
          description: The chain type this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - cosmos_message_type
        - chain
      title: WebhookCosmosMessageStatusChangeEvent
    WebhookCosmosTransactionStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: cosmos_transaction
          title: Type
          description: The type of the transaction.
        cosmos_transaction_type:
          $ref: '#/components/schemas/CosmosTransactionType'
          description: The type of the Cosmos transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 64
          minLength: 64
          pattern: ^[a-fA-F0-9]+$
          example: 12BE33E7F1B6CA644CC006FB8CBD0C4C7C95B1072DA90E9F4C39CB837072BBF5
        chain:
          $ref: '#/components/schemas/CosmosChain'
          description: The chain id this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - cosmos_transaction_type
        - chain
      title: WebhookCosmosTransactionStatusChangeEvent
    WebhookEvent:
      $ref: '#/components/schemas/WebhookTransactionStatusChangeEvent'
      title: WebhookEvent
    WebhookEvmMessageStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: evm_message
          title: Type
          description: The type of the transaction.
        evm_message_type:
          $ref: '#/components/schemas/EvmMessageType'
          description: The type of the EVM message.
        chain:
          $ref: '#/components/schemas/EvmChain'
          description: The details of the chain that this message is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - evm_message_type
        - chain
      title: WebhookEvmMessageStatusChangeEvent
    WebhookEvmTransactionStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: evm_transaction
          title: Type
          description: The type of the transaction.
        evm_transaction_type:
          $ref: '#/components/schemas/EvmTransactionType'
          description: The type of the EVM transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          example: '0x780f21260f89d610f24eed21b34d29229611a37e0003e83dd0da91981d7131ae'
        raw_transaction:
          title: Raw Transaction
          description: The raw transaction data, encoded as a hex string.
          type: string
          pattern: ^0[xX][a-fA-F0-9]+$
        chain:
          $ref: '#/components/schemas/EvmChain'
          description: The details of the chain this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - evm_transaction_type
        - chain
      title: WebhookEvmTransactionStatusChangeEvent
    WebhookExchangeTransactionStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: exchange_transaction
          title: Type
          description: The type of the transaction.
        exchange_transaction_type:
          $ref: '#/components/schemas/ExchangeTransactionType'
          description: The type of the exchange transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
        exchange_transaction_id:
          title: Exchange Transaction Id
          description: The ID of the transaction as returned by the exchange
          type: string
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - exchange_transaction_type
      title: WebhookExchangeTransactionStatusChangeEvent
    WebhookSolanaMessageStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: solana_message
          title: Type
          description: The type of the transaction.
        solana_message_type:
          $ref: '#/components/schemas/SolanaMessageType'
          description: The type of the Solana message.
        chain:
          $ref: '#/components/schemas/SolanaChain'
          description: The chain type this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - solana_message_type
        - chain
      title: WebhookSolanaMessageStatusChangeEvent
    WebhookSolanaTransactionStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: solana_transaction
          title: Type
          description: The type of the transaction.
        solana_transaction_type:
          $ref: '#/components/schemas/SolanaTransactionType'
          description: The type of the Solana transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 88
          minLength: 64
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          example: >-
            FAWA66fudpiwdRDDQ4DRxdJsRvawvauwg4vQkm98ZHFpXmW5N7xzRiTRpt8QiZ19s1aVbzKgXW6kEZanwHeDFNS
        raw_transaction:
          title: Raw Transaction
          description: The serialized transaction encoded as a base64 string
          type: string
          example: SGVsbG8=
        chain:
          $ref: '#/components/schemas/SolanaChain'
          description: The chain type this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - solana_transaction_type
        - chain
      title: WebhookSolanaTransactionStatusChangeEvent
    WebhookStacksTransactionStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: stacks_transaction
          title: Type
          description: The type of the transaction.
        stacks_transaction_type:
          $ref: '#/components/schemas/StacksTransactionType'
          description: The type of the Stacks transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          example: '0xadc53fc37f9210735c5ed562aa914cb745c910ded94720bfe9e67a2ac6f2ae24'
        chain:
          $ref: '#/components/schemas/StacksChain'
          description: The chain type this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - stacks_transaction_type
        - chain
      title: WebhookStacksTransactionStatusChangeEvent
    WebhookStarknetMessageStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: starknet_message
          title: Type
          description: The type of the transaction.
        starknet_message_type:
          $ref: '#/components/schemas/StarknetMessageType'
          description: The type of the Starknet message.
        chain:
          $ref: '#/components/schemas/StarknetChain'
          description: The chain type this message is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - starknet_message_type
        - chain
      title: WebhookStarknetMessageStatusChangeEvent
    WebhookStarknetTransactionStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: starknet_transaction
          title: Type
          description: The type of the transaction.
        starknet_transaction_type:
          $ref: '#/components/schemas/StarknetTransactionType'
          description: The type of the Starknet transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 66
          minLength: 66
          pattern: ^0[xX][a-fA-F0-9]+$
          example: '0x0684532b069fb0ce7e22041538a1c5e4850aafae042c772393cd7d795b767c74'
        chain:
          $ref: '#/components/schemas/StarknetChain'
          description: The chain type this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - starknet_transaction_type
        - chain
      title: WebhookStarknetTransactionStatusChangeEvent
    WebhookSuiMessageStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: sui_message
          title: Type
          description: The type of the transaction.
        sui_message_type:
          $ref: '#/components/schemas/SuiMessageType'
          description: The type of the Sui message.
        chain:
          $ref: '#/components/schemas/SuiChain'
          description: The chain type this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - sui_message_type
        - chain
      title: WebhookSuiMessageStatusChangeEvent
    WebhookSuiTransactionStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: sui_transaction
          title: Type
          description: The type of the transaction.
        sui_transaction_type:
          $ref: '#/components/schemas/SuiTransactionType'
          description: The type of the Sui transaction.
        digest:
          title: Digest
          description: The digest of the transaction.
          type: string
          maxLength: 44
          minLength: 32
          pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
          example: 9K8mnqJdxf3B7vgFmRhj9JqKqsN5AxvSgWk5faGshEta
        tx_bytes:
          title: Tx Bytes
          description: The tx_bytes param encoded as a base64 string.
          type: string
          example: SGVsbG8=
        chain:
          $ref: '#/components/schemas/SuiChain'
          description: The chain type this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - sui_transaction_type
        - chain
      title: WebhookSuiTransactionStatusChangeEvent
    WebhookTonMessageStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: ton_message
          title: Type
          description: The type of the transaction.
        ton_message_type:
          $ref: '#/components/schemas/TonMessageType'
          description: The type of the TON message.
        chain:
          $ref: '#/components/schemas/TonChain'
          description: The chain type this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - ton_message_type
        - chain
      title: WebhookTonMessageStatusChangeEvent
    WebhookTonTransactionStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: ton_transaction
          title: Type
          description: The type of the transaction.
        ton_transaction_type:
          $ref: '#/components/schemas/TonTransactionType'
          description: The type of the TON transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 64
          pattern: ^[a-fA-F0-9]+$
          example: c7482c1d424bdb2a555f069290a63ab144f3d06d34f944f6ae3505506b97989e
        serialized_signed_transaction:
          title: Serialized Signed Transaction
          description: The serialized signed transaction param encoded as a base64 string.
          type: string
          example: SGVsbG8=
        chain:
          $ref: '#/components/schemas/TonChain'
          description: The chain type this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - ton_transaction_type
        - chain
      title: WebhookTonTransactionStatusChangeEvent
    WebhookTransactionStatusChangeEvent:
      properties:
        webhook_id:
          type: string
          format: uuid
          title: Webhook Id
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The time of the webhook event creation in UTC.
        event_id:
          type: string
          format: uuid
          title: Event Id
          description: The unique ID of this event.
        attempt:
          type: integer
          minimum: 1
          title: Attempt
          description: The attempt number of this event.
        sent_at:
          type: string
          format: date-time
          title: Sent At
          description: The time the current event was sent in UTC.
        event:
          oneOf:
            - $ref: '#/components/schemas/WebhookAptosMessageStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookAptosTransactionStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookBlackBoxSignatureStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookCosmosMessageStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookCosmosTransactionStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookEvmMessageStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookEvmTransactionStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookExchangeTransactionStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookSolanaMessageStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookSolanaTransactionStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookStacksTransactionStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookStarknetMessageStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookStarknetTransactionStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookSuiMessageStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookSuiTransactionStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookTonMessageStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookTonTransactionStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookTronTransactionStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookUtxoMessageStatusChangeEvent'
            - $ref: '#/components/schemas/WebhookUtxoTransactionStatusChangeEvent'
          discriminator:
            propertyName: type
            mapping:
              aptos_message: '#/components/schemas/WebhookAptosMessageStatusChangeEvent'
              aptos_transaction: '#/components/schemas/WebhookAptosTransactionStatusChangeEvent'
              black_box_signature: '#/components/schemas/WebhookBlackBoxSignatureStatusChangeEvent'
              cosmos_message: '#/components/schemas/WebhookCosmosMessageStatusChangeEvent'
              cosmos_transaction: '#/components/schemas/WebhookCosmosTransactionStatusChangeEvent'
              evm_message: '#/components/schemas/WebhookEvmMessageStatusChangeEvent'
              evm_transaction: '#/components/schemas/WebhookEvmTransactionStatusChangeEvent'
              exchange_transaction: '#/components/schemas/WebhookExchangeTransactionStatusChangeEvent'
              solana_message: '#/components/schemas/WebhookSolanaMessageStatusChangeEvent'
              solana_transaction: '#/components/schemas/WebhookSolanaTransactionStatusChangeEvent'
              stacks_transaction: '#/components/schemas/WebhookStacksTransactionStatusChangeEvent'
              starknet_message: '#/components/schemas/WebhookStarknetMessageStatusChangeEvent'
              starknet_transaction: '#/components/schemas/WebhookStarknetTransactionStatusChangeEvent'
              sui_message: '#/components/schemas/WebhookSuiMessageStatusChangeEvent'
              sui_transaction: '#/components/schemas/WebhookSuiTransactionStatusChangeEvent'
              ton_message: '#/components/schemas/WebhookTonMessageStatusChangeEvent'
              ton_transaction: '#/components/schemas/WebhookTonTransactionStatusChangeEvent'
              tron_transaction: '#/components/schemas/WebhookTronTransactionStatusChangeEvent'
              utxo_message: '#/components/schemas/WebhookUtxoMessageStatusChangeEvent'
              utxo_transaction: '#/components/schemas/WebhookUtxoTransactionStatusChangeEvent'
        event_type:
          type: string
          const: transaction_state_update
          title: Event Type
          description: The type of the event.
      type: object
      required:
        - webhook_id
        - created_at
        - event_id
        - attempt
        - sent_at
        - event
        - event_type
      title: WebhookTransactionStatusChangeEvent
    WebhookTronTransactionStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: tron_transaction
          title: Type
          description: The type of the transaction.
        tron_transaction_type:
          $ref: '#/components/schemas/TronTransactionType'
          description: The type of the Tron transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
          maxLength: 64
          minLength: 64
          pattern: ^[a-fA-F0-9]+$
          example: 32bd287f0d6c5fde3381cca851fb7c021cc9782165c08078d9a8554163a86b17
        chain:
          $ref: '#/components/schemas/TronChain'
          description: The chain type this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - tron_transaction_type
        - chain
      title: WebhookTronTransactionStatusChangeEvent
    WebhookUtxoMessageStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/NonPushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: utxo_message
          title: Type
          description: The type of the transaction.
        utxo_message_type:
          $ref: '#/components/schemas/UtxoMessageType'
          description: The type of the UTXO message.
        chain:
          $ref: '#/components/schemas/UtxoChain'
          description: The chain type this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - utxo_message_type
        - chain
      title: WebhookUtxoMessageStatusChangeEvent
    WebhookUtxoTransactionStatusChangeEvent:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The unique identifier of the object in the Fordefi platform.
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: >-
            Indicates whether the transaction was initiated from the Fordefi
            system itself, in contrast to incoming transactions (which are, for
            example, transfers of funds into a vault visible to Fordefi).
        note:
          title: Note
          description: An optional transaction note.
          type: string
        spam_state:
          $ref: '#/components/schemas/TransactionSpamState'
          description: >-
            `automatically_set` if the transaction was automatically set as spam
            by Fordefi, `manually_set` if the transaction was manually set as
            spam by a user, and `unset` if the transaction was not set as spam.
        state:
          $ref: '#/components/schemas/PushableTransactionState'
          description: The current state of the transaction.
        type:
          type: string
          const: utxo_transaction
          title: Type
          description: The type of the transaction.
        utxo_transaction_type:
          $ref: '#/components/schemas/UtxoTransactionType'
          description: The type of the Utxo transaction.
        hash:
          title: Hash
          description: The hash of the transaction.
          type: string
        chain:
          $ref: '#/components/schemas/UtxoChain'
          description: The chain this transaction is on.
      type: object
      required:
        - transaction_id
        - is_managed_transaction
        - direction
        - spam_state
        - state
        - type
        - utxo_transaction_type
        - chain
      title: WebhookUtxoTransactionStatusChangeEvent
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
tags:
  - name: Users
    description: >-
      These endpoints allow you to get information about users in your Fordefi
      organization.


      There are several types of users in the Fordefi platform:
       - **Person**: A human user of the platform.
       - **API User**, also commonly known as a service account.
         See [Create an API user](https://docs.fordefi.com/developers/getting-started/create-an-api-user).
       - **API Signer**: Used to auto-sign transactions.
         See [Automate Signing with API Signer](https://docs.fordefi.com/developers/getting-started/set-up-an-api-signer).

      Users can have one of three possible roles, which define the permissions
      that the user is given:
       - **Admin**: A user with high privileges in the organization.
         Only admins have permission to manage the policy, set up the backup, manage the address book,
         and add or remove users in the organization.
         Only a person can have an admin role.
       - **Trader**: A user who can create vaults and transactions.
       - **Viewer**: A user who has full view of the organization's users, addresses, and policies,
         as well as of the vaults and transactions, but does not have permissions to create or modify them.

      The Users API is currently read-only. To add/remove users, visit the
      Fordefi web console.
  - name: Authorization Tokens
    description: >-
      These endpoints allow you to manage end-user authorization tokens used for
      Fordefi's WaaS solution.<br><br>Authorization tokens allow end users to
      authenticate with Fordefi. Each end user can have a maximum of ten active
      authorization tokens at any time.<br><br>More information on
      authenticating end users is provided in the <a
      href="https://docs.fordefi.com/waas/waas-authentication">WaaS developer
      guide</a>.
  - name: Blockchains
    description: >-
      These endpoints allow you to get information about blockchains supported
      by Fordefi.
  - name: Webhooks
    description: >-
      These endpoints allow you to manually trigger your pre-configured
      webhooks.<br><br><a href="https://docs.fordefi.com/reference/webhooks">Use
      Webhooks</a> describes how to configure webhooks, validate them, and
      resend them. 
  - name: Address Book
    description: >-
      These endpoints allow you to list the contacts in your address
      book.<br><br>To add/remove contacts, visit the Fordefi web console. See
      the <a href='https://docs.fordefi.com/user-guide/address-book'>user
      guide</a> for more info.
  - name: Transactions
    description: |-
      These endpoints allow you to manage transactions on the Fordefi platform.
              <br><br>
              A transaction represents an operation that can be one of the following:
              <ul>
              <li>An on-chain action that modifies blockchain state</li>
              <li>An off-chain cryptographically signed message or data</li>
              </ul>
              Consult the developer guide for more information on
              <a href='https://docs.fordefi.com/developers/getting-started/create-and-authenticate-transactions'>creating</a>,
              <a href='https://docs.fordefi.com/developers/monitor-transactions'>monitoring</a>,
              and <a href='https://docs.fordefi.com/developers/simulate-transactions'>simulating</a> tranasctions.
  - name: Batch Transactions
    description: >-
      These endpoints allow you to manage batch transactions on the Fordefi
      platform.
              <br><br>
              Batch transactions are currently supported only on Solana, for the purpose
              of supporting the `signAllTransactions` flow used by certain Solana DApps.
              Batch transactions undergo policy evaluation as a whole:  the policy is
              applied to a “virtual transaction” whose list of instructions is the union
              of the instructions of the individual transactions in the batch, and whose balance
              changes are the aggregation of balance changes of the individual transactions.
  - name: Vaults
    description: |-
      These endpoints allow you to manage vaults.
              <br><br>
              A vault is the basic unit to manage funds.
              Each vault supports a single "chain family", such as EVM, Bitcoin, Solana, Cosmos, etc.,
              determined by the vault's type. A vault supports all the chains within the chain family
              (e.g., an EVM vault supports all EVM chains).
  - name: Vault Groups
    description: |-
      These endpoints allow you to view your vault groups.
              <br><br>
              Vault Groups are used to collectively manage policies and view permissions for a group of vaults.
             <br><br>
             The API is read-only. To manage vault groups, visit the Fordefi web console. See more info in the
             <a href='https://docs.fordefi.com/user-guide/vaults/handle-vault-groups'>user</a> guide.
  - name: Assets
    description: >-
      These endpoints allow you to get information about the assets in your
      organization,
              including metadata, balances, and prices.
              <br><br>
              Fordefi supports native assets and fungible tokens on each of the supported blockchains,
              and on many chains also non-fungible tokens.
              <br><br>
              Assets are chain-specific, meaning that USDC on Ethereum is different from USDC on Polygon.
              
  - name: End Users
    description: |-
      These endpoints allow you to manage WaaS end-users.
              <br><br>
              End users correspond to users of the platform who has integrated the Fordefi WaaS solution.
              For example, in the case of a retail platform, these would be the retail consumers of the platform.
  - name: User Groups
    description: |-
      These endpoints allow you to view your user groups.
              <br><br>
              User Groups are used to collectively manage policies and view permissions for a group of users.
             <br><br>
             The API is read-only. To manage user groups, visit the Fordefi web console. See more info in the
             <a href='https://docs.fordefi.com/user-guide/organization-management/manage-user-groups'>user</a> guide.
  - name: Audit Log
    description: |-
      These endpoints allow you to manage audit logs.
              <br><br>
              Audit logs are used to track the actions of users in your organization.
              
  - name: Exports
    description: >-
      These endpoints allow you to manage asynchronous actions such as data
      exports.
security:
  - bearerAuth: []
