{
  "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": "skip_count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to skip counting the total number of items.",
              "default": false,
              "title": "Skip Count"
            },
            "description": "Whether to skip counting the total number of items."
          },
          {
            "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": "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>`\"arch_mainnet\"`</li><li>`\"arch_testnet\"`</li><li>`\"canton_mainnet\"`</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_ssc-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>`\"exchange_kraken\"`</li><li>`\"solana_mainnet\"`</li><li>`\"solana_devnet\"`</li><li>`\"solana_eclipse_mainnet\"`</li><li>`\"solana_fogo_mainnet\"`</li><li>`\"solana_fogo_testnet\"`</li><li>`\"stacks_mainnet\"`</li><li>`\"starknet_mainnet\"`</li><li>`\"stellar_mainnet\"`</li><li>`\"sui_mainnet\"`</li><li>`\"sui_testnet\"`</li><li>`\"ton_mainnet\"`</li><li>`\"tron_mainnet\"`</li><li>`\"tron_shasta\"`</li><li>`\"bitcoin_mainnet\"`</li><li>`\"bitcoin_testnet\"`</li><li>`\"bitcoin_testnet_v4\"`</li><li>`\"dogecoin_mainnet\"`</li><li>`\"bitcoin_cash_mainnet\"`</li><li>`\"pearl_mainnet\"`</li><li>`\"evm_1\"`</li><li>`\"evm_5\"`</li><li>`\"evm_10\"`</li><li>`\"evm_14\"`</li><li>`\"evm_16\"`</li><li>`\"evm_30\"`</li><li>`\"evm_56\"`</li><li>`\"evm_100\"`</li><li>`\"evm_130\"`</li><li>`\"evm_137\"`</li><li>`\"evm_143\"`</li><li>`\"evm_146\"`</li><li>`\"evm_169\"`</li><li>`\"evm_250\"`</li><li>`\"evm_324\"`</li><li>`\"evm_999\"`</li><li>`\"evm_1030\"`</li><li>`\"evm_1100\"`</li><li>`\"evm_1101\"`</li><li>`\"evm_1329\"`</li><li>`\"evm_1672\"`</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_8819\"`</li><li>`\"evm_9745\"`</li><li>`\"evm_16661\"`</li><li>`\"evm_17000\"`</li><li>`\"evm_80001\"`</li><li>`\"evm_80094\"`</li><li>`\"evm_42161\"`</li><li>`\"evm_43114\"`</li><li>`\"evm_57073\"`</li><li>`\"evm_59144\"`</li><li>`\"evm_81457\"`</li><li>`\"evm_421614\"`</li><li>`\"evm_534352\"`</li><li>`\"evm_660279\"`</li><li>`\"evm_747474\"`</li><li>`\"evm_810180\"`</li><li>`\"evm_11155111\"`</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_rootstock_mainnet\"`</li><li>`\"evm_bsc_mainnet\"`</li><li>`\"evm_gnosis_mainnet\"`</li><li>`\"evm_unichain_mainnet\"`</li><li>`\"evm_polygon_mainnet\"`</li><li>`\"evm_monad_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_hyperevm_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_pharos_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_clink_testnet\"`</li><li>`\"evm_plasma_mainnet\"`</li><li>`\"evm_zero_gravity_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_ink_mainnet\"`</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_katana_mainnet\"`</li><li>`\"evm_zklink_nova_mainnet\"`</li><li>`\"evm_ethereum_sepolia\"`</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": "skip_count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to skip counting the total number of items.",
              "default": false,
              "title": "Skip Count"
            },
            "description": "Whether to skip counting the total number of items."
          },
          {
            "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_pending_code_generation`: The user has been approved but still needs to generate a code for the user.<li>`onboarding_pending_activation`: The user has been generated a code but still needs to activate the account with it.<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_pending_code_generation`: The user has been approved but still needs to generate a code for the user.<li>`onboarding_pending_activation`: The user has been generated a code but still needs to activate the account with it.<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>"
          },
          {
            "name": "exclude_user_ids",
            "in": "query",
            "required": false,
            "schema": {
              "description": "The user IDs to exclude.",
              "title": "Exclude User Ids",
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "description": "The user IDs to exclude."
          }
        ],
        "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": "skip_count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to skip counting the total number of items.",
              "default": false,
              "title": "Skip Count"
            },
            "description": "Whether to skip counting the total number of items."
          },
          {
            "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": "exclude_user_group_ids",
            "in": "query",
            "required": false,
            "schema": {
              "description": "The group IDs to exclude.",
              "title": "Exclude User Group Ids",
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "description": "The group IDs to exclude."
          },
          {
            "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/ListVaultsSortableFields"
              },
              "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": "skip_count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to skip counting the total number of items.",
              "default": false,
              "title": "Skip Count"
            },
            "description": "Whether to skip counting the total number of items."
          },
          {
            "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": "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."
          },
          {
            "name": "account_addresses",
            "in": "query",
            "required": false,
            "schema": {
              "description": "List of account addresses to filter on.",
              "title": "Account Addresses",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "List of account addresses to filter on."
          },
          {
            "name": "positive_native_balance_chain_ids",
            "in": "query",
            "required": false,
            "schema": {
              "description": "List of chain IDs to fetch native assets for. Only vaults with positive native balance in any of these chains will be included in native_assets response.",
              "title": "Positive Native Balance Chain Ids",
              "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>`\"arch_mainnet\"`</li><li>`\"arch_testnet\"`</li><li>`\"canton_mainnet\"`</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_ssc-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>`\"exchange_kraken\"`</li><li>`\"solana_mainnet\"`</li><li>`\"solana_devnet\"`</li><li>`\"solana_eclipse_mainnet\"`</li><li>`\"solana_fogo_mainnet\"`</li><li>`\"solana_fogo_testnet\"`</li><li>`\"stacks_mainnet\"`</li><li>`\"starknet_mainnet\"`</li><li>`\"stellar_mainnet\"`</li><li>`\"sui_mainnet\"`</li><li>`\"sui_testnet\"`</li><li>`\"ton_mainnet\"`</li><li>`\"tron_mainnet\"`</li><li>`\"tron_shasta\"`</li><li>`\"bitcoin_mainnet\"`</li><li>`\"bitcoin_testnet\"`</li><li>`\"bitcoin_testnet_v4\"`</li><li>`\"dogecoin_mainnet\"`</li><li>`\"bitcoin_cash_mainnet\"`</li><li>`\"pearl_mainnet\"`</li><li>`\"evm_1\"`</li><li>`\"evm_5\"`</li><li>`\"evm_10\"`</li><li>`\"evm_14\"`</li><li>`\"evm_16\"`</li><li>`\"evm_30\"`</li><li>`\"evm_56\"`</li><li>`\"evm_100\"`</li><li>`\"evm_130\"`</li><li>`\"evm_137\"`</li><li>`\"evm_143\"`</li><li>`\"evm_146\"`</li><li>`\"evm_169\"`</li><li>`\"evm_250\"`</li><li>`\"evm_324\"`</li><li>`\"evm_999\"`</li><li>`\"evm_1030\"`</li><li>`\"evm_1100\"`</li><li>`\"evm_1101\"`</li><li>`\"evm_1329\"`</li><li>`\"evm_1672\"`</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_8819\"`</li><li>`\"evm_9745\"`</li><li>`\"evm_16661\"`</li><li>`\"evm_17000\"`</li><li>`\"evm_80001\"`</li><li>`\"evm_80094\"`</li><li>`\"evm_42161\"`</li><li>`\"evm_43114\"`</li><li>`\"evm_57073\"`</li><li>`\"evm_59144\"`</li><li>`\"evm_81457\"`</li><li>`\"evm_421614\"`</li><li>`\"evm_534352\"`</li><li>`\"evm_660279\"`</li><li>`\"evm_747474\"`</li><li>`\"evm_810180\"`</li><li>`\"evm_11155111\"`</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_rootstock_mainnet\"`</li><li>`\"evm_bsc_mainnet\"`</li><li>`\"evm_gnosis_mainnet\"`</li><li>`\"evm_unichain_mainnet\"`</li><li>`\"evm_polygon_mainnet\"`</li><li>`\"evm_monad_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_hyperevm_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_pharos_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_clink_testnet\"`</li><li>`\"evm_plasma_mainnet\"`</li><li>`\"evm_zero_gravity_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_ink_mainnet\"`</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_katana_mainnet\"`</li><li>`\"evm_zklink_nova_mainnet\"`</li><li>`\"evm_ethereum_sepolia\"`</li></ul>",
                "title": "ChainUniqueId"
              }
            },
            "description": "List of chain IDs to fetch native assets for. Only vaults with positive native balance in any of these chains will be included in native_assets response."
          }
        ],
        "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_async": {
      "get": {
        "tags": [
          "Vaults"
        ],
        "summary": "Export Vaults With Assets Async",
        "description": "Get a CSV-format list of balances of all vaults and their assets.",
        "operationId": "export_vaults_with_assets_async_api_v1_vaults_export_async_get",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "description": "The number of vault/asset pairs to export, unlimited if not set.",
              "title": "Limit",
              "type": "integer"
            },
            "description": "The number of vault/asset pairs to export, unlimited if not set."
          },
          {
            "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": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Export Vaults With Assets Async Api V1 Vaults Export Async 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/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."
          },
          {
            "name": "skip_count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to skip counting the total number of items.",
              "default": false,
              "title": "Skip Count"
            },
            "description": "Whether to skip counting the total number of items."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnedAsset"
                }
              }
            }
          },
          "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": "skip_count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to skip counting the total number of items.",
              "default": false,
              "title": "Skip Count"
            },
            "description": "Whether to skip counting the total number of items."
          },
          {
            "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>`\"arch_mainnet\"`</li><li>`\"arch_testnet\"`</li><li>`\"canton_mainnet\"`</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_ssc-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>`\"exchange_kraken\"`</li><li>`\"solana_mainnet\"`</li><li>`\"solana_devnet\"`</li><li>`\"solana_eclipse_mainnet\"`</li><li>`\"solana_fogo_mainnet\"`</li><li>`\"solana_fogo_testnet\"`</li><li>`\"stacks_mainnet\"`</li><li>`\"starknet_mainnet\"`</li><li>`\"stellar_mainnet\"`</li><li>`\"sui_mainnet\"`</li><li>`\"sui_testnet\"`</li><li>`\"ton_mainnet\"`</li><li>`\"tron_mainnet\"`</li><li>`\"tron_shasta\"`</li><li>`\"bitcoin_mainnet\"`</li><li>`\"bitcoin_testnet\"`</li><li>`\"bitcoin_testnet_v4\"`</li><li>`\"dogecoin_mainnet\"`</li><li>`\"bitcoin_cash_mainnet\"`</li><li>`\"pearl_mainnet\"`</li><li>`\"evm_1\"`</li><li>`\"evm_5\"`</li><li>`\"evm_10\"`</li><li>`\"evm_14\"`</li><li>`\"evm_16\"`</li><li>`\"evm_30\"`</li><li>`\"evm_56\"`</li><li>`\"evm_100\"`</li><li>`\"evm_130\"`</li><li>`\"evm_137\"`</li><li>`\"evm_143\"`</li><li>`\"evm_146\"`</li><li>`\"evm_169\"`</li><li>`\"evm_250\"`</li><li>`\"evm_324\"`</li><li>`\"evm_999\"`</li><li>`\"evm_1030\"`</li><li>`\"evm_1100\"`</li><li>`\"evm_1101\"`</li><li>`\"evm_1329\"`</li><li>`\"evm_1672\"`</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_8819\"`</li><li>`\"evm_9745\"`</li><li>`\"evm_16661\"`</li><li>`\"evm_17000\"`</li><li>`\"evm_80001\"`</li><li>`\"evm_80094\"`</li><li>`\"evm_42161\"`</li><li>`\"evm_43114\"`</li><li>`\"evm_57073\"`</li><li>`\"evm_59144\"`</li><li>`\"evm_81457\"`</li><li>`\"evm_421614\"`</li><li>`\"evm_534352\"`</li><li>`\"evm_660279\"`</li><li>`\"evm_747474\"`</li><li>`\"evm_810180\"`</li><li>`\"evm_11155111\"`</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_rootstock_mainnet\"`</li><li>`\"evm_bsc_mainnet\"`</li><li>`\"evm_gnosis_mainnet\"`</li><li>`\"evm_unichain_mainnet\"`</li><li>`\"evm_polygon_mainnet\"`</li><li>`\"evm_monad_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_hyperevm_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_pharos_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_clink_testnet\"`</li><li>`\"evm_plasma_mainnet\"`</li><li>`\"evm_zero_gravity_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_ink_mainnet\"`</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_katana_mainnet\"`</li><li>`\"evm_zklink_nova_mainnet\"`</li><li>`\"evm_ethereum_sepolia\"`</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}/proposals": {
      "post": {
        "tags": [
          "Vaults"
        ],
        "summary": "Submit Update Vault Change Proposal",
        "description": "Submit an update vault change proposal. Verify, approve, and abort are handled via the user-actions API.",
        "operationId": "submit_update_vault_change_proposal_api_v1_vaults__id__proposals_post",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "ID of the vault to submit a change proposal for.",
              "title": "Id"
            },
            "description": "ID of the vault to submit a change proposal for."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitUpdateVaultChangeProposalRequest"
              }
            }
          }
        },
        "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/vaults/{id}/archive": {
      "post": {
        "tags": [
          "Vaults"
        ],
        "summary": "Archive Vault",
        "description": "Archive an existing vault.",
        "operationId": "archive_vault_api_v1_vaults__id__archive_post",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "ID of the vault to archive.",
              "title": "Id"
            },
            "description": "ID of the vault to archive."
          }
        ],
        "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/vaults/{id}/restore": {
      "post": {
        "tags": [
          "Vaults"
        ],
        "summary": "Restore Vault",
        "description": "Restore an archived vault.",
        "operationId": "restore_vault_api_v1_vaults__id__restore_post",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "ID of the vault to restore.",
              "title": "Id"
            },
            "description": "ID of the vault to restore."
          }
        ],
        "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/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/CreateUtxoVaultAddressRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UtxoVaultAddress"
                }
              }
            }
          },
          "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": "skip_count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to skip counting the total number of items.",
              "default": false,
              "title": "Skip Count"
            },
            "description": "Whether to skip counting the total number of items."
          },
          {
            "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": "skip_count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to skip counting the total number of items.",
              "default": false,
              "title": "Skip Count"
            },
            "description": "Whether to skip counting the total number of items."
          },
          {
            "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"
            }
          },
          {
            "name": "exclude_vault_group_ids",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Vault group IDs to exclude.",
              "title": "Exclude Vault Group Ids",
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "description": "Vault group IDs to exclude."
          },
          {
            "name": "states",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Vault group states to filter on.",
              "title": "States",
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/VaultGroupState"
              }
            },
            "description": "Vault group states to filter on."
          }
        ],
        "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/OwnedAsset"
                }
              }
            }
          },
          "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>`\"arch_mainnet\"`</li><li>`\"arch_testnet\"`</li><li>`\"canton_mainnet\"`</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_ssc-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>`\"exchange_kraken\"`</li><li>`\"solana_mainnet\"`</li><li>`\"solana_devnet\"`</li><li>`\"solana_eclipse_mainnet\"`</li><li>`\"solana_fogo_mainnet\"`</li><li>`\"solana_fogo_testnet\"`</li><li>`\"stacks_mainnet\"`</li><li>`\"starknet_mainnet\"`</li><li>`\"stellar_mainnet\"`</li><li>`\"sui_mainnet\"`</li><li>`\"sui_testnet\"`</li><li>`\"ton_mainnet\"`</li><li>`\"tron_mainnet\"`</li><li>`\"tron_shasta\"`</li><li>`\"bitcoin_mainnet\"`</li><li>`\"bitcoin_testnet\"`</li><li>`\"bitcoin_testnet_v4\"`</li><li>`\"dogecoin_mainnet\"`</li><li>`\"bitcoin_cash_mainnet\"`</li><li>`\"pearl_mainnet\"`</li><li>`\"evm_1\"`</li><li>`\"evm_5\"`</li><li>`\"evm_10\"`</li><li>`\"evm_14\"`</li><li>`\"evm_16\"`</li><li>`\"evm_30\"`</li><li>`\"evm_56\"`</li><li>`\"evm_100\"`</li><li>`\"evm_130\"`</li><li>`\"evm_137\"`</li><li>`\"evm_143\"`</li><li>`\"evm_146\"`</li><li>`\"evm_169\"`</li><li>`\"evm_250\"`</li><li>`\"evm_324\"`</li><li>`\"evm_999\"`</li><li>`\"evm_1030\"`</li><li>`\"evm_1100\"`</li><li>`\"evm_1101\"`</li><li>`\"evm_1329\"`</li><li>`\"evm_1672\"`</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_8819\"`</li><li>`\"evm_9745\"`</li><li>`\"evm_16661\"`</li><li>`\"evm_17000\"`</li><li>`\"evm_80001\"`</li><li>`\"evm_80094\"`</li><li>`\"evm_42161\"`</li><li>`\"evm_43114\"`</li><li>`\"evm_57073\"`</li><li>`\"evm_59144\"`</li><li>`\"evm_81457\"`</li><li>`\"evm_421614\"`</li><li>`\"evm_534352\"`</li><li>`\"evm_660279\"`</li><li>`\"evm_747474\"`</li><li>`\"evm_810180\"`</li><li>`\"evm_11155111\"`</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_rootstock_mainnet\"`</li><li>`\"evm_bsc_mainnet\"`</li><li>`\"evm_gnosis_mainnet\"`</li><li>`\"evm_unichain_mainnet\"`</li><li>`\"evm_polygon_mainnet\"`</li><li>`\"evm_monad_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_hyperevm_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_pharos_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_clink_testnet\"`</li><li>`\"evm_plasma_mainnet\"`</li><li>`\"evm_zero_gravity_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_ink_mainnet\"`</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_katana_mainnet\"`</li><li>`\"evm_zklink_nova_mainnet\"`</li><li>`\"evm_ethereum_sepolia\"`</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": "only_native",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "title": "Only Native"
            }
          },
          {
            "name": "is_nft",
            "in": "query",
            "required": false,
            "schema": {
              "title": "Is Nft",
              "type": "boolean"
            }
          },
          {
            "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."
          },
          {
            "name": "skip_count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to skip counting the total number of items.",
              "default": false,
              "title": "Skip Count"
            },
            "description": "Whether to skip counting the total number of items."
          }
        ],
        "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/AssetInfo"
                }
              }
            }
          },
          "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 using cursor pagination.",
        "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>`\"arch_mainnet\"`</li><li>`\"arch_testnet\"`</li><li>`\"canton_mainnet\"`</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_ssc-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>`\"exchange_kraken\"`</li><li>`\"solana_mainnet\"`</li><li>`\"solana_devnet\"`</li><li>`\"solana_eclipse_mainnet\"`</li><li>`\"solana_fogo_mainnet\"`</li><li>`\"solana_fogo_testnet\"`</li><li>`\"stacks_mainnet\"`</li><li>`\"starknet_mainnet\"`</li><li>`\"stellar_mainnet\"`</li><li>`\"sui_mainnet\"`</li><li>`\"sui_testnet\"`</li><li>`\"ton_mainnet\"`</li><li>`\"tron_mainnet\"`</li><li>`\"tron_shasta\"`</li><li>`\"bitcoin_mainnet\"`</li><li>`\"bitcoin_testnet\"`</li><li>`\"bitcoin_testnet_v4\"`</li><li>`\"dogecoin_mainnet\"`</li><li>`\"bitcoin_cash_mainnet\"`</li><li>`\"pearl_mainnet\"`</li><li>`\"evm_1\"`</li><li>`\"evm_5\"`</li><li>`\"evm_10\"`</li><li>`\"evm_14\"`</li><li>`\"evm_16\"`</li><li>`\"evm_30\"`</li><li>`\"evm_56\"`</li><li>`\"evm_100\"`</li><li>`\"evm_130\"`</li><li>`\"evm_137\"`</li><li>`\"evm_143\"`</li><li>`\"evm_146\"`</li><li>`\"evm_169\"`</li><li>`\"evm_250\"`</li><li>`\"evm_324\"`</li><li>`\"evm_999\"`</li><li>`\"evm_1030\"`</li><li>`\"evm_1100\"`</li><li>`\"evm_1101\"`</li><li>`\"evm_1329\"`</li><li>`\"evm_1672\"`</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_8819\"`</li><li>`\"evm_9745\"`</li><li>`\"evm_16661\"`</li><li>`\"evm_17000\"`</li><li>`\"evm_80001\"`</li><li>`\"evm_80094\"`</li><li>`\"evm_42161\"`</li><li>`\"evm_43114\"`</li><li>`\"evm_57073\"`</li><li>`\"evm_59144\"`</li><li>`\"evm_81457\"`</li><li>`\"evm_421614\"`</li><li>`\"evm_534352\"`</li><li>`\"evm_660279\"`</li><li>`\"evm_747474\"`</li><li>`\"evm_810180\"`</li><li>`\"evm_11155111\"`</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_rootstock_mainnet\"`</li><li>`\"evm_bsc_mainnet\"`</li><li>`\"evm_gnosis_mainnet\"`</li><li>`\"evm_unichain_mainnet\"`</li><li>`\"evm_polygon_mainnet\"`</li><li>`\"evm_monad_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_hyperevm_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_pharos_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_clink_testnet\"`</li><li>`\"evm_plasma_mainnet\"`</li><li>`\"evm_zero_gravity_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_ink_mainnet\"`</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_katana_mainnet\"`</li><li>`\"evm_zklink_nova_mainnet\"`</li><li>`\"evm_ethereum_sepolia\"`</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": "user_types",
            "in": "query",
            "required": false,
            "schema": {
              "title": "User Types",
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/UserType"
              }
            }
          },
          {
            "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": "frozen",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Filter for frozen transactions or transactions that were unfrozen.",
              "title": "Frozen",
              "type": "boolean"
            },
            "description": "Filter for frozen transactions or transactions that were unfrozen."
          }
        ],
        "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": "skip_count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to skip counting the total number of items.",
              "default": false,
              "title": "Skip Count"
            },
            "description": "Whether to skip counting the total number of items."
          },
          {
            "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>`\"arch_mainnet\"`</li><li>`\"arch_testnet\"`</li><li>`\"canton_mainnet\"`</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_ssc-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>`\"exchange_kraken\"`</li><li>`\"solana_mainnet\"`</li><li>`\"solana_devnet\"`</li><li>`\"solana_eclipse_mainnet\"`</li><li>`\"solana_fogo_mainnet\"`</li><li>`\"solana_fogo_testnet\"`</li><li>`\"stacks_mainnet\"`</li><li>`\"starknet_mainnet\"`</li><li>`\"stellar_mainnet\"`</li><li>`\"sui_mainnet\"`</li><li>`\"sui_testnet\"`</li><li>`\"ton_mainnet\"`</li><li>`\"tron_mainnet\"`</li><li>`\"tron_shasta\"`</li><li>`\"bitcoin_mainnet\"`</li><li>`\"bitcoin_testnet\"`</li><li>`\"bitcoin_testnet_v4\"`</li><li>`\"dogecoin_mainnet\"`</li><li>`\"bitcoin_cash_mainnet\"`</li><li>`\"pearl_mainnet\"`</li><li>`\"evm_1\"`</li><li>`\"evm_5\"`</li><li>`\"evm_10\"`</li><li>`\"evm_14\"`</li><li>`\"evm_16\"`</li><li>`\"evm_30\"`</li><li>`\"evm_56\"`</li><li>`\"evm_100\"`</li><li>`\"evm_130\"`</li><li>`\"evm_137\"`</li><li>`\"evm_143\"`</li><li>`\"evm_146\"`</li><li>`\"evm_169\"`</li><li>`\"evm_250\"`</li><li>`\"evm_324\"`</li><li>`\"evm_999\"`</li><li>`\"evm_1030\"`</li><li>`\"evm_1100\"`</li><li>`\"evm_1101\"`</li><li>`\"evm_1329\"`</li><li>`\"evm_1672\"`</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_8819\"`</li><li>`\"evm_9745\"`</li><li>`\"evm_16661\"`</li><li>`\"evm_17000\"`</li><li>`\"evm_80001\"`</li><li>`\"evm_80094\"`</li><li>`\"evm_42161\"`</li><li>`\"evm_43114\"`</li><li>`\"evm_57073\"`</li><li>`\"evm_59144\"`</li><li>`\"evm_81457\"`</li><li>`\"evm_421614\"`</li><li>`\"evm_534352\"`</li><li>`\"evm_660279\"`</li><li>`\"evm_747474\"`</li><li>`\"evm_810180\"`</li><li>`\"evm_11155111\"`</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_rootstock_mainnet\"`</li><li>`\"evm_bsc_mainnet\"`</li><li>`\"evm_gnosis_mainnet\"`</li><li>`\"evm_unichain_mainnet\"`</li><li>`\"evm_polygon_mainnet\"`</li><li>`\"evm_monad_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_hyperevm_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_pharos_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_clink_testnet\"`</li><li>`\"evm_plasma_mainnet\"`</li><li>`\"evm_zero_gravity_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_ink_mainnet\"`</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_katana_mainnet\"`</li><li>`\"evm_zklink_nova_mainnet\"`</li><li>`\"evm_ethereum_sepolia\"`</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": "user_types",
            "in": "query",
            "required": false,
            "schema": {
              "title": "User Types",
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/UserType"
              }
            }
          },
          {
            "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": "frozen",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Filter for frozen transactions or transactions that were unfrozen.",
              "title": "Frozen",
              "type": "boolean"
            },
            "description": "Filter for frozen transactions or transactions that were unfrozen."
          },
          {
            "name": "states",
            "in": "query",
            "required": false,
            "schema": {
              "description": "State of the transaction. Can be one of the following:`aborted` `accelerated` `accelerating` `approved` `canceling` `cancelled` `completed` `completed_reverted` `dropped` `error_processing_by_exchange` `error_pushing_to_blockchain` `error_signing` `error_submitting_to_exchange` `error_submitting_to_provider` `insufficient_funds` `mined` `mined_reverted` `pending_exchange` `pushed_to_blockchain` `queued` `sent_to_provider` `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>`error_submitting_to_provider`</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>`error_submitting_to_provider`</li><li>`insufficient_funds`</li></ul><li>`pending`, which can be one of:</li><ul><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>`sent_to_provider`</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` `accelerated` `accelerating` `approved` `canceling` `cancelled` `completed` `completed_reverted` `dropped` `error_processing_by_exchange` `error_pushing_to_blockchain` `error_signing` `error_submitting_to_exchange` `error_submitting_to_provider` `insufficient_funds` `mined` `mined_reverted` `pending_exchange` `pushed_to_blockchain` `queued` `sent_to_provider` `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>`error_submitting_to_provider`</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>`error_submitting_to_provider`</li><li>`insufficient_funds`</li></ul><li>`pending`, which can be one of:</li><ul><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>`sent_to_provider`</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/transfer": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "summary": "Create Transfer",
        "description": "Create basic transfer transaction.",
        "operationId": "create_transfer_api_v1_transactions_transfer_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/GenericCreateTransferRequest"
              }
            }
          }
        },
        "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.\n\nA transaction awaits approval when the caller API user has been specified as a\npotential approver in the policy and the transaction\nis 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.\n\nAbort is possible only for a transaction that is in one of the following states:\n   <ul>\n   <li>Waiting for approval\n   <li>Approved\n   </ul>\n\nThe aborting user must be one of the following:\n<ul>\n<li>The user who created the transaction\n<li>An admin\n<li>A legitimate approver\n</ul>\n\nAPI 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\nbalances, 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\nhave been previously created with a `push_mode: manual` flag and must now\nbe 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": {
          "content": {
            "application/json": {
              "schema": {
                "title": "Request",
                "$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.\n<br>\nBatch 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\ntoken balances, in addition to the fee estimation\n<br>\nBatch 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": "skip_count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to skip counting the total number of items.",
              "default": false,
              "title": "Skip Count"
            },
            "description": "Whether to skip counting the total number of items."
          },
          {
            "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>`\"arch_mainnet\"`</li><li>`\"arch_testnet\"`</li><li>`\"canton_mainnet\"`</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_ssc-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>`\"exchange_kraken\"`</li><li>`\"solana_mainnet\"`</li><li>`\"solana_devnet\"`</li><li>`\"solana_eclipse_mainnet\"`</li><li>`\"solana_fogo_mainnet\"`</li><li>`\"solana_fogo_testnet\"`</li><li>`\"stacks_mainnet\"`</li><li>`\"starknet_mainnet\"`</li><li>`\"stellar_mainnet\"`</li><li>`\"sui_mainnet\"`</li><li>`\"sui_testnet\"`</li><li>`\"ton_mainnet\"`</li><li>`\"tron_mainnet\"`</li><li>`\"tron_shasta\"`</li><li>`\"bitcoin_mainnet\"`</li><li>`\"bitcoin_testnet\"`</li><li>`\"bitcoin_testnet_v4\"`</li><li>`\"dogecoin_mainnet\"`</li><li>`\"bitcoin_cash_mainnet\"`</li><li>`\"pearl_mainnet\"`</li><li>`\"evm_1\"`</li><li>`\"evm_5\"`</li><li>`\"evm_10\"`</li><li>`\"evm_14\"`</li><li>`\"evm_16\"`</li><li>`\"evm_30\"`</li><li>`\"evm_56\"`</li><li>`\"evm_100\"`</li><li>`\"evm_130\"`</li><li>`\"evm_137\"`</li><li>`\"evm_143\"`</li><li>`\"evm_146\"`</li><li>`\"evm_169\"`</li><li>`\"evm_250\"`</li><li>`\"evm_324\"`</li><li>`\"evm_999\"`</li><li>`\"evm_1030\"`</li><li>`\"evm_1100\"`</li><li>`\"evm_1101\"`</li><li>`\"evm_1329\"`</li><li>`\"evm_1672\"`</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_8819\"`</li><li>`\"evm_9745\"`</li><li>`\"evm_16661\"`</li><li>`\"evm_17000\"`</li><li>`\"evm_80001\"`</li><li>`\"evm_80094\"`</li><li>`\"evm_42161\"`</li><li>`\"evm_43114\"`</li><li>`\"evm_57073\"`</li><li>`\"evm_59144\"`</li><li>`\"evm_81457\"`</li><li>`\"evm_421614\"`</li><li>`\"evm_534352\"`</li><li>`\"evm_660279\"`</li><li>`\"evm_747474\"`</li><li>`\"evm_810180\"`</li><li>`\"evm_11155111\"`</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_rootstock_mainnet\"`</li><li>`\"evm_bsc_mainnet\"`</li><li>`\"evm_gnosis_mainnet\"`</li><li>`\"evm_unichain_mainnet\"`</li><li>`\"evm_polygon_mainnet\"`</li><li>`\"evm_monad_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_hyperevm_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_pharos_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_clink_testnet\"`</li><li>`\"evm_plasma_mainnet\"`</li><li>`\"evm_zero_gravity_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_ink_mainnet\"`</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_katana_mainnet\"`</li><li>`\"evm_zklink_nova_mainnet\"`</li><li>`\"evm_ethereum_sepolia\"`</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."
          },
          {
            "name": "exclude_contact_ids",
            "in": "query",
            "required": false,
            "schema": {
              "description": "List of contact IDs to exclude.",
              "title": "Exclude Contact Ids",
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "description": "List of contact 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/batch": {
      "post": {
        "tags": [
          "Address Book"
        ],
        "summary": "Create Batch Contacts",
        "description": "Create multiple new address book contacts in an organization.",
        "operationId": "create_batch_contacts_api_v1_addressbook_contacts_batch_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/CreateBatchContactsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateBatchContactsResponse"
                }
              }
            }
          },
          "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/proposals/{proposal_id}/abort": {
      "post": {
        "tags": [
          "Address Book"
        ],
        "summary": "Abort Contact Change Proposal",
        "description": "Abort a contact change proposal.",
        "operationId": "abort_contact_change_proposal_api_v1_addressbook_contacts_proposals__proposal_id__abort_post",
        "parameters": [
          {
            "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": "skip_count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to skip counting the total number of items.",
              "default": false,
              "title": "Skip Count"
            },
            "description": "Whether to skip counting the total number of items."
          },
          {
            "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/IssueEndUserAuthTokenResponse"
                }
              }
            }
          },
          "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": "skip_count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to skip counting the total number of items.",
              "default": false,
              "title": "Skip Count"
            },
            "description": "Whether to skip counting the total number of items."
          },
          {
            "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": "skip_count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to skip counting the total number of items.",
              "default": false,
              "title": "Skip Count"
            },
            "description": "Whether to skip counting the total number of items."
          },
          {
            "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/swaps/providers/{chain_type}": {
      "get": {
        "tags": [
          "Swaps"
        ],
        "summary": "Get Providers",
        "description": "Get providers for a chain type.",
        "operationId": "get_providers_api_v1_swaps_providers__chain_type__get",
        "parameters": [
          {
            "name": "chain_type",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ChainType",
              "description": "Chain type to get providers for."
            },
            "description": "Chain type to get providers for."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetProvidersResponse"
                }
              }
            }
          },
          "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/swaps/quotes": {
      "post": {
        "tags": [
          "Swaps"
        ],
        "summary": "Get Quotes",
        "description": "Get available quotes for a swap between two assets.",
        "operationId": "get_quotes_api_v1_swaps_quotes_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetQuotesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetQuotesResponse"
                }
              }
            }
          },
          "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/swaps": {
      "post": {
        "tags": [
          "Swaps"
        ],
        "summary": "Create Transaction",
        "description": "Create a new spot swap.",
        "operationId": "create_transaction_api_v1_swaps_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/CreateSpotSwapRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpotSwap"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DefinedPreconditionError_CreateSwapErrorType_"
                }
              }
            }
          },
          "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/swaps/predict": {
      "post": {
        "tags": [
          "Swaps"
        ],
        "summary": "Predict Transaction",
        "description": "Simulate the spot swap and changes in token\nbalances, in addition to the fee estimation.",
        "operationId": "predict_transaction_api_v1_swaps_predict_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PredictSpotSwapRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PredictedSpotSwap"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DefinedPreconditionError_PredictSwapErrorType_"
                }
              }
            }
          },
          "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": {
          "created_by": {
            "$ref": "#/components/schemas/UserRef",
            "description": "The user who created the action."
          },
          "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": [
          "created_by",
          "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."
          },
          "batch_size": {
            "type": "integer",
            "minimum": 1,
            "title": "Batch Size",
            "description": "The number of contacts in the change request."
          }
        },
        "type": "object",
        "required": [
          "is_being_edited",
          "change_request_reason",
          "batch_size"
        ],
        "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": {
        "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"
          },
          "owner": {
            "$ref": "#/components/schemas/EnrichedEvmAddress",
            "description": "The owner giving the allowance."
          },
          "spender": {
            "$ref": "#/components/schemas/EnrichedEvmAddress",
            "description": "The spender receiving the allowance."
          }
        },
        "type": "object",
        "required": [
          "priced_asset",
          "amount",
          "owner",
          "spender"
        ],
        "title": "AllowanceEffect"
      },
      "AllowanceEffectType": {
        "type": "string",
        "enum": [
          "erc20",
          "erc721",
          "erc721_for_all",
          "erc1155_for_all"
        ],
        "title": "AllowanceEffectType"
      },
      "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"
      },
      "AmlCheck": {
        "properties": {
          "results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "incoming_aml_check": {
            "description": "The AML policy match for incoming transactions. Will be present only for incoming transactions.",
            "$ref": "#/components/schemas/IncomingAmlCheck"
          }
        },
        "type": "object",
        "title": "AmlCheck"
      },
      "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>"
          }
        },
        "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"
      },
      "ApiError": {
        "properties": {
          "api_error_enum": {
            "$ref": "#/components/schemas/ApiErrorEnum",
            "description": "The API error enum."
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "The API error description."
          }
        },
        "type": "object",
        "required": [
          "api_error_enum",
          "description"
        ],
        "title": "ApiError"
      },
      "ApiErrorEnum": {
        "type": "string",
        "enum": [
          "no_route_found",
          "high_slippage",
          "rate_limit_exceeded",
          "unsupported_chain",
          "custom_error",
          "consent_not_approved"
        ],
        "title": "ApiErrorEnum"
      },
      "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_pending_code_generation",
              "onboarding_pending_activation",
              "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_pending_code_generation`: The signer has been created but still needs to generate a qr code on it and scan it using mobile device.<li>`onboarding_pending_activation`: The signer has been created 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_pending_code_generation",
              "onboarding_pending_activation",
              "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"
          },
          "allowed_ip_settings": {
            "$ref": "#/components/schemas/UserAllowedIpSettings",
            "description": "Settings that define from which IPs API calls by this user are allowed."
          },
          "last_active_at": {
            "title": "Last Active At",
            "description": "The last date and time when the user was active.",
            "type": "string",
            "format": "date-time"
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "user_type",
          "name",
          "state",
          "role",
          "allowed_ip_settings"
        ],
        "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",
          "transactions_already_approved"
        ],
        "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. If empty, the contact is associated with all chains."
          }
        },
        "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",
          "address"
        ],
        "title": "AptosBalanceChangeEffect"
      },
      "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "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",
          "interacted_vaults",
          "organization_id",
          "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."
          },
          "code": {
            "type": "string",
            "pattern": "^[a-fA-F0-9]*$",
            "title": "Code",
            "description": "The code of the script."
          }
        },
        "type": "object",
        "required": [
          "type",
          "code"
        ],
        "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "block": {
            "description": "The block of the transaction.",
            "$ref": "#/components/schemas/Block"
          },
          "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_check": {
            "description": "The AML check.",
            "$ref": "#/components/schemas/AmlCheck"
          },
          "mined_result_status": {
            "description": "The mined result status of the transaction.",
            "$ref": "#/components/schemas/MinedResultStatus"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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"
          },
          "gas_submitted": {
            "$ref": "#/components/schemas/AptosGasData",
            "description": "The gas details submitted for the transaction."
          },
          "with_external_fee_payer": {
            "type": "boolean",
            "title": "With External Fee Payer",
            "description": "If true, the transaction's Authenticator will be configured to support an external fee payer. After Fordefi signs the transaction, the client is responsible for forwarding it to the designated fee payer for final signing and broadcasting.",
            "default": false
          },
          "fee_payer": {
            "description": "The address of the fee payer vault for sponsored transactions.",
            "$ref": "#/components/schemas/EnrichedAptosAddress"
          },
          "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"
          },
          "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",
          "interacted_vaults",
          "organization_id",
          "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",
          "from",
          "to"
        ],
        "title": "AptosTransferEffect"
      },
      "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "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."
          },
          "state": {
            "$ref": "#/components/schemas/MpcVaultState",
            "description": "New state 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_groups",
          "are_all_chains_disabled",
          "derivation_path",
          "public_key_compressed",
          "derivation_info",
          "origin_type",
          "state",
          "type",
          "address"
        ],
        "title": "AptosVault",
        "description": "Represents an Aptos vault in the Fordefi platform"
      },
      "ArchAddressBookContact": {
        "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": "arch",
            "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 Arch chain.",
            "example": "4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA"
          },
          "chains": {
            "items": {
              "$ref": "#/components/schemas/EnrichedArchChain"
            },
            "type": "array",
            "title": "Chains",
            "description": "The chains the contact belongs to. If empty, the contact is associated with all chains."
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "name",
          "modified_by",
          "state",
          "groups",
          "asset_infos",
          "chain_type",
          "address",
          "chains"
        ],
        "title": "ArchAddressBookContact",
        "description": "Represents a contact in the Fordefi platform"
      },
      "ArchAddressBookContactAddressRef": {
        "properties": {
          "chain_type": {
            "type": "string",
            "const": "arch",
            "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 Arch chain.",
            "example": "4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA"
          },
          "chains": {
            "items": {
              "$ref": "#/components/schemas/ArchChain"
            },
            "type": "array",
            "title": "Chains",
            "description": "The chains the contact belongs to."
          }
        },
        "type": "object",
        "required": [
          "chain_type",
          "address",
          "chains"
        ],
        "title": "ArchAddressBookContactAddressRef"
      },
      "ArchAddressRequest": {
        "properties": {
          "chain": {
            "$ref": "#/components/schemas/ArchChainUniqueId",
            "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": "ArchAddressRequest",
        "description": "Address represents a blockchain address."
      },
      "ArchAplTokenAssetIdentifierRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "apl_token",
            "title": "Type",
            "description": "APL token asset identifier type."
          },
          "token": {
            "$ref": "#/components/schemas/ArchAddressRequest",
            "description": "The APL token details."
          }
        },
        "type": "object",
        "required": [
          "type",
          "token"
        ],
        "title": "ArchAplTokenAssetIdentifierRequest"
      },
      "ArchAssetIdentifier": {
        "properties": {
          "type": {
            "type": "string",
            "const": "arch",
            "title": "Type",
            "description": "Arch asset identifier type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ArchNativeAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/ArchAplTokenAssetIdentifierRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "apl_token": "#/components/schemas/ArchAplTokenAssetIdentifierRequest",
                "native": "#/components/schemas/ArchNativeAssetIdentifierRequest"
              }
            }
          },
          "chain": {
            "$ref": "#/components/schemas/EnrichedArchChain"
          }
        },
        "type": "object",
        "required": [
          "type",
          "details",
          "chain"
        ],
        "title": "ArchAssetIdentifier"
      },
      "ArchAssetIdentifierRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "arch",
            "title": "Type",
            "description": "Arch asset identifier type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ArchNativeAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/ArchAplTokenAssetIdentifierRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "apl_token": "#/components/schemas/ArchAplTokenAssetIdentifierRequest",
                "native": "#/components/schemas/ArchNativeAssetIdentifierRequest"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "type",
          "details"
        ],
        "title": "ArchAssetIdentifierRequest"
      },
      "ArchBalanceChangeEffect": {
        "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/EnrichedArchAddress",
            "description": "The address affected by the balance change."
          }
        },
        "type": "object",
        "required": [
          "priced_asset",
          "diff",
          "address"
        ],
        "title": "ArchBalanceChangeEffect"
      },
      "ArchChain": {
        "properties": {
          "chain_type": {
            "type": "string",
            "const": "arch",
            "title": "Chain Type",
            "description": "The type of the chain."
          },
          "unique_id": {
            "$ref": "#/components/schemas/ArchChainUniqueId",
            "description": "The type of the Arch-based chain."
          }
        },
        "type": "object",
        "required": [
          "chain_type",
          "unique_id"
        ],
        "title": "ArchChain"
      },
      "ArchChainUniqueId": {
        "type": "string",
        "enum": [
          "arch_mainnet",
          "arch_testnet"
        ],
        "title": "ArchChainUniqueId"
      },
      "ArchCompiledInstruction": {
        "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/EnrichedArchAddress",
            "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": "ArchCompiledInstruction"
      },
      "ArchEffects": {
        "properties": {
          "balance_changes": {
            "items": {
              "$ref": "#/components/schemas/ArchBalanceChangeEffect"
            },
            "type": "array",
            "title": "Balance Changes",
            "description": "The aggregated balance changes of addresses."
          },
          "transfers": {
            "items": {
              "$ref": "#/components/schemas/ArchTransferEffect"
            },
            "type": "array",
            "title": "Transfers",
            "description": "The transfer events of the transaction."
          }
        },
        "type": "object",
        "required": [
          "balance_changes",
          "transfers"
        ],
        "title": "ArchEffects"
      },
      "ArchFee": {
        "properties": {
          "base_fee": {
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "title": "Base Fee",
            "description": "The base fee of the transaction (in lamports).",
            "example": "1000000000000000000"
          },
          "total_fee": {
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "title": "Total Fee",
            "description": "The total fee of the transaction (in lamports).",
            "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": [
          "base_fee",
          "total_fee",
          "priced_asset"
        ],
        "title": "ArchFee"
      },
      "ArchNativeAssetIdentifierRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "native",
            "title": "Type",
            "description": "Arch asset identifier type."
          },
          "chain": {
            "$ref": "#/components/schemas/ArchChainUniqueId",
            "description": "The details of the chain of the native asset."
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain"
        ],
        "title": "ArchNativeAssetIdentifierRequest"
      },
      "ArchNativeTransferDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "native_transfer",
            "title": "Type",
            "description": "A transaction involving the transfer of native currency from one address to another. "
          },
          "recipient": {
            "$ref": "#/components/schemas/EnrichedArchAddress",
            "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",
          "recipient"
        ],
        "title": "ArchNativeTransferDetails"
      },
      "ArchRawTransactionDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "raw_transaction",
            "title": "Type",
            "description": "A transaction capable of any operation."
          },
          "recipients": {
            "items": {
              "$ref": "#/components/schemas/EnrichedArchAddress"
            },
            "type": "array",
            "title": "Recipients",
            "description": "The recipients of the tokens."
          }
        },
        "type": "object",
        "required": [
          "type",
          "recipients"
        ],
        "title": "ArchRawTransactionDetails"
      },
      "ArchRecipientBase58Repr": {
        "properties": {
          "type": {
            "type": "string",
            "const": "address",
            "title": "Type",
            "description": "The type of the recipient."
          },
          "address": {
            "type": "string",
            "pattern": "^[a-km-zA-HJ-NP-Z1-9]+$",
            "title": "Address",
            "description": "The address of the recipient."
          }
        },
        "type": "object",
        "required": [
          "type",
          "address"
        ],
        "title": "ArchRecipientBase58Repr"
      },
      "ArchReversion": {
        "properties": {
          "state": {
            "$ref": "#/components/schemas/ArchReversionState",
            "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": "ArchReversion"
      },
      "ArchReversionState": {
        "type": "string",
        "enum": [
          "not_reverted",
          "unknown_revert",
          "contract_asserted",
          "insufficient_funds_gas_and_value",
          "insufficient_funds_for_rent"
        ],
        "title": "ArchReversionState"
      },
      "ArchTokenTransferDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "token_transfer",
            "title": "Type",
            "description": "A transaction involving the transfer of native currency from one address to another. "
          },
          "recipient": {
            "$ref": "#/components/schemas/EnrichedArchAddress",
            "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",
          "recipient"
        ],
        "title": "ArchTokenTransferDetails"
      },
      "ArchTransaction": {
        "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "block": {
            "description": "The block of the transaction.",
            "$ref": "#/components/schemas/Block"
          },
          "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_check": {
            "description": "The AML check.",
            "$ref": "#/components/schemas/AmlCheck"
          },
          "mined_result_status": {
            "description": "The mined result status of the transaction.",
            "$ref": "#/components/schemas/MinedResultStatus"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "type": {
            "type": "string",
            "const": "arch_transaction",
            "title": "Type",
            "description": "The type of the transaction."
          },
          "arch_transaction_type_details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ArchNativeTransferDetails"
              },
              {
                "$ref": "#/components/schemas/ArchTokenTransferDetails"
              },
              {
                "$ref": "#/components/schemas/ArchRawTransactionDetails"
              }
            ],
            "description": "Details of the Arch transaction based on its type.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "native_transfer": "#/components/schemas/ArchNativeTransferDetails",
                "raw_transaction": "#/components/schemas/ArchRawTransactionDetails",
                "token_transfer": "#/components/schemas/ArchTokenTransferDetails"
              }
            }
          },
          "chain": {
            "$ref": "#/components/schemas/EnrichedArchChain",
            "description": "The details of the chain this transaction is on."
          },
          "instructions": {
            "items": {
              "$ref": "#/components/schemas/ArchCompiledInstruction"
            },
            "type": "array",
            "title": "Instructions",
            "description": "The instructions of the transaction."
          },
          "accounts": {
            "items": {
              "$ref": "#/components/schemas/ArchTransactionAccount"
            },
            "type": "array",
            "title": "Accounts",
            "description": "Accounts used in the transaction."
          },
          "sender": {
            "$ref": "#/components/schemas/EnrichedArchAddress",
            "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 hash of the transaction.",
            "type": "string"
          },
          "recent_blockhash": {
            "title": "Recent Blockhash",
            "description": "The transaction nonce (last block hash).",
            "type": "string"
          },
          "expected_result": {
            "description": "The expected result of the transaction in case it is mined.",
            "$ref": "#/components/schemas/ArchTransactionResult"
          },
          "mined_result": {
            "description": "The result of the transaction after it was mined.",
            "$ref": "#/components/schemas/ArchTransactionResult"
          },
          "explorer_url": {
            "title": "Explorer Url",
            "description": "The URL of this transaction in a blockchain explorer. For example, gomaestro",
            "example": "https://explorer.gomaestro.org/arch/testnet/tx/1234567890",
            "type": "string",
            "maxLength": 2083,
            "minLength": 1,
            "format": "uri"
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "signatures",
          "direction",
          "interacted_vaults",
          "organization_id",
          "state",
          "state_changes",
          "type",
          "arch_transaction_type_details",
          "chain",
          "instructions",
          "accounts",
          "sender"
        ],
        "title": "ArchTransaction"
      },
      "ArchTransactionAccount": {
        "properties": {
          "address": {
            "$ref": "#/components/schemas/EnrichedArchAddress",
            "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": "ArchTransactionAccount"
      },
      "ArchTransactionResult": {
        "properties": {
          "reversion": {
            "$ref": "#/components/schemas/ArchReversion",
            "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"
          },
          "fee": {
            "$ref": "#/components/schemas/ArchFee",
            "description": "The fee of the transaction."
          },
          "effects": {
            "$ref": "#/components/schemas/ArchEffects",
            "description": "The effects of the transaction."
          }
        },
        "type": "object",
        "required": [
          "reversion",
          "fee",
          "effects"
        ],
        "title": "ArchTransactionResult"
      },
      "ArchTransactionType": {
        "type": "string",
        "enum": [
          "native_transfer",
          "token_transfer",
          "raw_transaction"
        ],
        "title": "ArchTransactionType"
      },
      "ArchTransferEffect": {
        "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/EnrichedArchAddress",
            "description": "The sender of the transfer."
          },
          "to": {
            "$ref": "#/components/schemas/EnrichedArchAddress",
            "description": "The receiver of the transfer."
          }
        },
        "type": "object",
        "required": [
          "priced_asset",
          "amount",
          "from",
          "to"
        ],
        "title": "ArchTransferEffect"
      },
      "ArchVault": {
        "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "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."
          },
          "state": {
            "$ref": "#/components/schemas/MpcVaultState",
            "description": "New state of the vault."
          },
          "type": {
            "type": "string",
            "const": "arch",
            "title": "Type",
            "description": "Arch vault type."
          },
          "arch_address": {
            "type": "string",
            "maxLength": 44,
            "minLength": 32,
            "pattern": "^[a-km-zA-HJ-NP-Z1-9]+$",
            "title": "Arch Address",
            "description": "The address of the vault on Arch chain.",
            "example": "4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA"
          },
          "arch_mainnet_deposit_address": {
            "$ref": "#/components/schemas/UtxoAddressBalance",
            "description": "The Arch deposit address of the vault on Bitcoin mainnet chain."
          },
          "arch_testnet_deposit_address": {
            "$ref": "#/components/schemas/UtxoAddressBalance",
            "description": "The Arch deposit address of the vault on Bitcoin testnet chain."
          },
          "bitcoin_mainnet_address": {
            "$ref": "#/components/schemas/UtxoAddressBalance",
            "description": "The Bitcoin mainnet address of the vault on Bitcoin mainnet chain."
          },
          "bitcoin_testnet_address": {
            "$ref": "#/components/schemas/UtxoAddressBalance",
            "description": "The Bitcoin testnet address of the vault on Bitcoin testnet chain."
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "name",
          "created_by",
          "vault_groups",
          "are_all_chains_disabled",
          "derivation_path",
          "public_key_compressed",
          "derivation_info",
          "origin_type",
          "state",
          "type",
          "arch_address",
          "arch_mainnet_deposit_address",
          "arch_testnet_deposit_address",
          "bitcoin_mainnet_address",
          "bitcoin_testnet_address"
        ],
        "title": "ArchVault",
        "description": "Represents a Arch 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",
          "authentication"
        ],
        "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": {
          "total_mined": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "Total Mined",
            "description": "The value of all mined assets.",
            "example": "1000000000000000000"
          },
          "total_pending_incoming": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "Total Pending Incoming",
            "description": "The value of all pending incoming assets.",
            "example": "1000000000000000000"
          },
          "available_mined": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "Available Mined",
            "description": "The value of all available mined assets. Equals to total mined balance minus frozen mined.",
            "example": "1000000000000000000"
          },
          "available_pending_incoming": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "Available Pending Incoming",
            "description": "The value of all available pending incoming assets. Equals to total pending incoming minus frozen pending incoming.",
            "example": "1000000000000000000"
          },
          "frozen_mined": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "Frozen Mined",
            "description": "The value of all mined frozen assets.",
            "example": "1000000000000000000"
          },
          "frozen_pending_incoming": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "Frozen Pending Incoming",
            "description": "The value of all pending incoming frozen assets.",
            "example": "1000000000000000000"
          },
          "trustline_limit": {
            "title": "Trustline Limit",
            "description": "The trustline limit for Stellar assets. Nil for non-Stellar assets or assets without trustlines.",
            "type": "string",
            "pattern": "^\\d+$",
            "example": "1000000000000000000"
          }
        },
        "type": "object",
        "required": [
          "total_mined",
          "total_pending_incoming",
          "available_mined",
          "available_pending_incoming",
          "frozen_mined",
          "frozen_pending_incoming"
        ],
        "title": "Balances",
        "description": "The cryptocurrency balances of the asset."
      },
      "BannerType": {
        "type": "string",
        "enum": [
          "welcome_message",
          "new_policy_message"
        ],
        "title": "BannerType"
      },
      "BaseBridgeUnknownDestination": {
        "properties": {
          "type": {
            "type": "string",
            "const": "unknown_target_chain",
            "title": "Type"
          },
          "address_repr": {
            "type": "string",
            "title": "Address Repr",
            "description": "The destination address of the bridge transaction."
          },
          "chain_repr": {
            "type": "string",
            "title": "Chain Repr",
            "description": "The destination chain of the bridge transaction."
          }
        },
        "type": "object",
        "required": [
          "type",
          "address_repr",
          "chain_repr"
        ],
        "title": "BaseBridgeUnknownDestination"
      },
      "BaseError": {
        "properties": {
          "title": {
            "type": "string",
            "title": "Title",
            "description": "Human-readable error message."
          },
          "detail": {
            "type": "string",
            "title": "Detail",
            "description": "Detailed error message."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "request_id": {
            "title": "Request Id",
            "description": "Request ID - for debugging purposes.",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "title",
          "detail"
        ],
        "title": "BaseError"
      },
      "BaseSpotSwap": {
        "properties": {
          "provider_info": {
            "$ref": "#/components/schemas/ProviderInfo",
            "description": "The swap provider."
          },
          "provider_source": {
            "title": "Provider Source",
            "description": "The source of the swap provider.",
            "type": "string"
          },
          "slippage_bps": {
            "type": "string",
            "pattern": "^\\d+(\\.\\d+)?$",
            "title": "Slippage Bps",
            "description": "Slippage tolerance in basis points.",
            "example": "1000000000000000000"
          },
          "price_impact_pct": {
            "title": "Price Impact Pct",
            "description": "Price impact percentage.",
            "type": "string",
            "pattern": "^\\d+(\\.\\d+)?$",
            "example": "1000000000000000000"
          },
          "rate": {
            "type": "string",
            "pattern": "^\\d+(\\.\\d+)?$",
            "title": "Rate",
            "description": "The exchange rate of the swap.",
            "example": "1000000000000000000"
          },
          "input_asset": {
            "$ref": "#/components/schemas/AssetInfo",
            "description": "Information about the input asset of the swap."
          },
          "output_asset": {
            "$ref": "#/components/schemas/AssetInfo",
            "description": "Information about the output asset of the swap."
          },
          "wrapped_native_asset": {
            "description": "Information about the wrapped native asset of the swap.",
            "$ref": "#/components/schemas/AssetInfo"
          },
          "recipient": {
            "$ref": "#/components/schemas/EnrichedEvmAddress",
            "description": "The final recipient of the output asset."
          },
          "quote_created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Quote Created At",
            "description": "The timestamp when the quote was created."
          },
          "quote_expiration_time": {
            "type": "string",
            "format": "date-time",
            "title": "Quote Expiration Time",
            "description": "The timestamp when the quote will expire."
          },
          "estimated_duration_milliseconds": {
            "title": "Estimated Duration Milliseconds",
            "description": "The estimated duration of the swap in milliseconds.",
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "example": "1000000000000000000"
          },
          "provider_fee": {
            "description": "The provider fee of the swap.",
            "$ref": "#/components/schemas/ProviderFee"
          },
          "failure_reason": {
            "title": "Failure Reason",
            "description": "Reason for failure, if any, from the provider.",
            "type": "string"
          },
          "provider_explorer_url": {
            "title": "Provider Explorer Url",
            "description": "URL to the swap provider's dedicated block explorer for tracking this swap execution status.",
            "type": "string",
            "maxLength": 2083,
            "minLength": 1,
            "format": "uri"
          },
          "bridge_state": {
            "description": "The state of the bridge transaction.",
            "$ref": "#/components/schemas/BridgeState"
          },
          "bridge_effects": {
            "description": "The bridge effects of the transaction.",
            "$ref": "#/components/schemas/EvmBridgesEffect"
          }
        },
        "type": "object",
        "required": [
          "provider_info",
          "slippage_bps",
          "rate",
          "input_asset",
          "output_asset",
          "recipient",
          "quote_created_at",
          "quote_expiration_time"
        ],
        "title": "BaseSpotSwap"
      },
      "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."
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by this message."
          }
        },
        "type": "object",
        "required": [
          "batch_id",
          "index_in_batch",
          "batch_size",
          "matched_policies"
        ],
        "title": "BatchData"
      },
      "BatchDlcTransactionRequestDetails": {
        "properties": {
          "funding_transaction": {
            "$ref": "#/components/schemas/TransactionDetailsUtxoDlcRequest"
          },
          "refund_transaction": {
            "$ref": "#/components/schemas/TransactionDetailsUtxoDlcRequest"
          },
          "cet_transactions": {
            "items": {
              "$ref": "#/components/schemas/TransactionDetailsUtxoCetRequest"
            },
            "type": "array",
            "title": "Cet Transactions"
          }
        },
        "type": "object",
        "required": [
          "funding_transaction",
          "refund_transaction",
          "cet_transactions"
        ],
        "title": "BatchDlcTransactionRequestDetails"
      },
      "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 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",
            "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "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",
          "interacted_vaults",
          "organization_id",
          "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "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."
          },
          "state": {
            "$ref": "#/components/schemas/MpcVaultState",
            "description": "New state 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_groups",
          "are_all_chains_disabled",
          "derivation_path",
          "public_key_compressed",
          "derivation_info",
          "origin_type",
          "state",
          "type",
          "details"
        ],
        "title": "BlackBoxVault",
        "description": "Represents a Black Box vault in the Fordefi platform"
      },
      "Block": {
        "properties": {
          "number": {
            "type": "integer",
            "title": "Number",
            "description": "The block number."
          },
          "hash": {
            "title": "Hash",
            "description": "The block hash.",
            "type": "string"
          },
          "mined_at": {
            "type": "string",
            "format": "date-time",
            "title": "Mined At",
            "description": "The date and time when this block was mined."
          }
        },
        "type": "object",
        "required": [
          "number",
          "mined_at",
          "height",
          "slot",
          "sequence_number",
          "digest",
          "sequence"
        ],
        "title": "Block"
      },
      "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."
      },
      "BoundCount": {
        "properties": {
          "count": {
            "type": "integer",
            "minimum": 0,
            "title": "Count",
            "description": "The number of items in the bound count."
          },
          "has_more": {
            "type": "boolean",
            "title": "Has More",
            "description": "Whether there are more items in the bound count."
          }
        },
        "type": "object",
        "required": [
          "count",
          "has_more"
        ],
        "title": "BoundCount",
        "description": "BoundCount represents a bound count of items."
      },
      "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_effects": {
            "$ref": "#/components/schemas/EvmBridgesEffect",
            "description": "The bridge effects of the transaction."
          }
        },
        "type": "object",
        "required": [
          "type",
          "bridge_effect",
          "bridge_effects"
        ],
        "title": "BridgeDetails"
      },
      "BridgeState": {
        "type": "string",
        "enum": [
          "pending",
          "success",
          "failed"
        ],
        "title": "BridgeState"
      },
      "CantonAddressRequest": {
        "properties": {
          "chain": {
            "$ref": "#/components/schemas/CantonChainUniqueId",
            "description": "The chain details this address is of."
          },
          "account": {
            "type": "string",
            "maxLength": 251,
            "minLength": 70,
            "title": "Account",
            "description": "Party representation of the address in the chain.",
            "example": "45b72ac2a9742204e6e5f521781b0648::122028536bd166988ebbb422c7f483bb32d4134127e8c171c9666ce9b518e1dd27cf"
          }
        },
        "type": "object",
        "required": [
          "chain",
          "account"
        ],
        "title": "CantonAddressRequest",
        "description": "Address represents a blockchain address."
      },
      "CantonApproveTransferDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "approve_transfer",
            "title": "Type",
            "description": "A transaction that approves pending incoming transfers."
          }
        },
        "type": "object",
        "required": [
          "type"
        ],
        "title": "CantonApproveTransferDetails"
      },
      "CantonAssetIdentifier": {
        "properties": {
          "type": {
            "type": "string",
            "const": "canton",
            "title": "Type",
            "description": "Canton asset identifier type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CantonNativeAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/CantonCip56TokenAssetIdentifierRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "cip56_token": "#/components/schemas/CantonCip56TokenAssetIdentifierRequest",
                "native": "#/components/schemas/CantonNativeAssetIdentifierRequest"
              }
            }
          },
          "chain": {
            "$ref": "#/components/schemas/EnrichedCantonChain"
          }
        },
        "type": "object",
        "required": [
          "type",
          "details",
          "chain"
        ],
        "title": "CantonAssetIdentifier"
      },
      "CantonAssetIdentifierRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "canton",
            "title": "Type",
            "description": "Canton asset identifier type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CantonNativeAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/CantonCip56TokenAssetIdentifierRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "cip56_token": "#/components/schemas/CantonCip56TokenAssetIdentifierRequest",
                "native": "#/components/schemas/CantonNativeAssetIdentifierRequest"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "type",
          "details"
        ],
        "title": "CantonAssetIdentifierRequest"
      },
      "CantonBalanceChangeEffect": {
        "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/EnrichedCantonAddress",
            "description": "The address affected by the balance change."
          }
        },
        "type": "object",
        "required": [
          "priced_asset",
          "diff",
          "address"
        ],
        "title": "CantonBalanceChangeEffect"
      },
      "CantonChainStateData": {
        "properties": {
          "registration_state": {
            "$ref": "#/components/schemas/CantonRegistrationState",
            "description": "Registration state of the vault on this Canton chain."
          },
          "incoming_native_approval_state": {
            "$ref": "#/components/schemas/CantonIncomingNativeApprovalState",
            "description": "Approval state for incoming native transfers on this Canton chain."
          }
        },
        "type": "object",
        "required": [
          "registration_state",
          "incoming_native_approval_state"
        ],
        "title": "CantonChainStateData"
      },
      "CantonChainUniqueId": {
        "type": "string",
        "enum": [
          "canton_mainnet"
        ],
        "title": "CantonChainUniqueId"
      },
      "CantonCip56TokenAssetIdentifierRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "cip56_token",
            "title": "Type",
            "description": "CIP56 token asset identifier type."
          },
          "token": {
            "$ref": "#/components/schemas/CantonInstrumentIdRequest",
            "description": "The CIP56 token details."
          }
        },
        "type": "object",
        "required": [
          "type",
          "token"
        ],
        "title": "CantonCip56TokenAssetIdentifierRequest"
      },
      "CantonEffects": {
        "properties": {
          "balance_changes": {
            "items": {
              "$ref": "#/components/schemas/CantonBalanceChangeEffect"
            },
            "type": "array",
            "title": "Balance Changes"
          },
          "transfers": {
            "items": {
              "$ref": "#/components/schemas/CantonTransferEffect"
            },
            "type": "array",
            "title": "Transfers"
          }
        },
        "type": "object",
        "required": [
          "balance_changes",
          "transfers"
        ],
        "title": "CantonEffects"
      },
      "CantonIncomingNativeApprovalState": {
        "type": "string",
        "enum": [
          "not_approved",
          "approving",
          "approved"
        ],
        "title": "CantonIncomingNativeApprovalState"
      },
      "CantonInstrumentIdRequest": {
        "properties": {
          "address": {
            "$ref": "#/components/schemas/CantonAddressRequest",
            "description": "The address of the instrument provider."
          },
          "id": {
            "type": "string",
            "title": "Id",
            "description": "The instrument ID within the provider's namespace."
          }
        },
        "type": "object",
        "required": [
          "address",
          "id"
        ],
        "title": "CantonInstrumentIdRequest",
        "description": "Instrument ID represents a Canton instrument identifier (address + id)."
      },
      "CantonNativeAssetIdentifierRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "native",
            "title": "Type",
            "description": "Canton asset identifier type."
          },
          "chain": {
            "$ref": "#/components/schemas/CantonChainUniqueId",
            "description": "The details of the chain of the native asset."
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain"
        ],
        "title": "CantonNativeAssetIdentifierRequest"
      },
      "CantonNativeTransferDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "native_transfer",
            "title": "Type",
            "description": "A transaction involving the transfer of native Canton currency from one address to another."
          }
        },
        "type": "object",
        "required": [
          "type"
        ],
        "title": "CantonNativeTransferDetails"
      },
      "CantonPartyAllocationDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "party_allocation",
            "title": "Type",
            "description": "A transaction that allocates an external party on a Canton node."
          }
        },
        "type": "object",
        "required": [
          "type"
        ],
        "title": "CantonPartyAllocationDetails"
      },
      "CantonRecipientAddress": {
        "properties": {
          "type": {
            "type": "string",
            "const": "address",
            "title": "Type",
            "description": "The type of the recipient."
          },
          "address": {
            "type": "string",
            "maxLength": 251,
            "minLength": 70,
            "title": "Address",
            "description": "The address of the recipient.",
            "example": "45b72ac2a9742204e6e5f521781b0648::122028536bd166988ebbb422c7f483bb32d4134127e8c171c9666ce9b518e1dd27cf"
          }
        },
        "type": "object",
        "required": [
          "type",
          "address"
        ],
        "title": "CantonRecipientAddress"
      },
      "CantonRegistrationState": {
        "type": "string",
        "enum": [
          "not_registered",
          "in_progress",
          "registered"
        ],
        "title": "CantonRegistrationState"
      },
      "CantonReversion": {
        "properties": {
          "state": {
            "$ref": "#/components/schemas/CantonReversionState",
            "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>`insufficient_funds_gas_and_value`: The transaction was reverted due to insufficient funds.</ul>"
          },
          "reason": {
            "title": "Reason",
            "description": "The reason for the reversion (additional information).",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "state"
        ],
        "title": "CantonReversion"
      },
      "CantonReversionState": {
        "type": "string",
        "enum": [
          "not_reverted",
          "unknown_revert",
          "insufficient_funds_gas_and_value"
        ],
        "title": "CantonReversionState"
      },
      "CantonTokenTransferDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "token_transfer",
            "title": "Type",
            "description": "A transaction involving the transfer of a CIP-56 token from one address to another."
          }
        },
        "type": "object",
        "required": [
          "type"
        ],
        "title": "CantonTokenTransferDetails"
      },
      "CantonTransaction": {
        "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "block": {
            "description": "The block of the transaction.",
            "$ref": "#/components/schemas/Block"
          },
          "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_check": {
            "description": "The AML check.",
            "$ref": "#/components/schemas/AmlCheck"
          },
          "mined_result_status": {
            "description": "The mined result status of the transaction.",
            "$ref": "#/components/schemas/MinedResultStatus"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "type": {
            "type": "string",
            "const": "canton_transaction",
            "title": "Type",
            "description": "Canton transaction type."
          },
          "canton_transaction_type_details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CantonNativeTransferDetails"
              },
              {
                "$ref": "#/components/schemas/CantonTokenTransferDetails"
              },
              {
                "$ref": "#/components/schemas/CantonPartyAllocationDetails"
              },
              {
                "$ref": "#/components/schemas/CantonApproveTransferDetails"
              }
            ],
            "description": "Details of the Canton transaction based on its type.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "approve_transfer": "#/components/schemas/CantonApproveTransferDetails",
                "native_transfer": "#/components/schemas/CantonNativeTransferDetails",
                "party_allocation": "#/components/schemas/CantonPartyAllocationDetails",
                "token_transfer": "#/components/schemas/CantonTokenTransferDetails"
              }
            }
          },
          "chain": {
            "$ref": "#/components/schemas/EnrichedCantonChain",
            "description": "The details of the chain this transaction is on."
          },
          "sender": {
            "$ref": "#/components/schemas/EnrichedCantonAddress",
            "description": "The sender of the transaction."
          },
          "expected_result": {
            "description": "The expected result of the transaction in case it is mined.",
            "$ref": "#/components/schemas/CantonTransactionResult"
          },
          "mined_result": {
            "description": "The result of the transaction after it was mined.",
            "$ref": "#/components/schemas/CantonTransactionResult"
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "signatures",
          "direction",
          "interacted_vaults",
          "organization_id",
          "state",
          "state_changes",
          "type",
          "canton_transaction_type_details",
          "chain",
          "sender"
        ],
        "title": "CantonTransaction"
      },
      "CantonTransactionResult": {
        "properties": {
          "reversion": {
            "$ref": "#/components/schemas/CantonReversion",
            "description": "Details whether the transaction was reverted or not."
          },
          "effects": {
            "$ref": "#/components/schemas/CantonEffects",
            "description": "The effects of the transaction."
          }
        },
        "type": "object",
        "required": [
          "reversion",
          "effects"
        ],
        "title": "CantonTransactionResult"
      },
      "CantonTransferEffect": {
        "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/EnrichedCantonAddress",
            "description": "The sender of the transfer."
          },
          "to": {
            "$ref": "#/components/schemas/EnrichedCantonAddress",
            "description": "The receiver of the transfer."
          }
        },
        "type": "object",
        "required": [
          "priced_asset",
          "amount",
          "from",
          "to"
        ],
        "title": "CantonTransferEffect"
      },
      "CantonVault": {
        "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "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."
          },
          "state": {
            "$ref": "#/components/schemas/MpcVaultState",
            "description": "New state of the vault."
          },
          "type": {
            "type": "string",
            "const": "canton",
            "title": "Type",
            "description": "Canton vault type."
          },
          "address": {
            "type": "string",
            "maxLength": 251,
            "minLength": 70,
            "title": "Address",
            "description": "The address of the vault on Canton chain types.",
            "example": "45b72ac2a9742204e6e5f521781b0648::122028536bd166988ebbb422c7f483bb32d4134127e8c171c9666ce9b518e1dd27cf"
          },
          "chain_state_map": {
            "additionalProperties": {
              "$ref": "#/components/schemas/CantonChainStateData"
            },
            "type": "object",
            "title": "Chain State Map",
            "description": "Map of Canton chain type to state data (registration and approval states)."
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "name",
          "created_by",
          "vault_groups",
          "are_all_chains_disabled",
          "derivation_path",
          "public_key_compressed",
          "derivation_info",
          "origin_type",
          "state",
          "type",
          "address",
          "chain_state_map"
        ],
        "title": "CantonVault"
      },
      "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."
          },
          "memo": {
            "title": "Memo",
            "description": "Memo is an additional address feature used for identifying a recipient.",
            "type": "string"
          }
        },
        "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",
          "address"
        ],
        "title": "CosmosBalanceChangeEffect"
      },
      "CosmosBech32Prefix": {
        "type": "string",
        "enum": [
          "agoric",
          "akash",
          "archway",
          "axelar",
          "bbn",
          "celestia",
          "cosmos",
          "dydx",
          "dym",
          "inj",
          "neutron",
          "nillion",
          "noble",
          "osmo",
          "saga",
          "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_ssc-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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "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",
          "interacted_vaults",
          "organization_id",
          "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"
      },
      "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\n        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"
      },
      "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "block": {
            "description": "The block of the transaction.",
            "$ref": "#/components/schemas/Block"
          },
          "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_check": {
            "description": "The AML check.",
            "$ref": "#/components/schemas/AmlCheck"
          },
          "mined_result_status": {
            "description": "The mined result status of the transaction.",
            "$ref": "#/components/schemas/MinedResultStatus"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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",
          "interacted_vaults",
          "organization_id",
          "state",
          "state_changes",
          "cosmos_transaction_type_details",
          "chain",
          "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",
          "from",
          "to"
        ],
        "title": "CosmosTransferEffect"
      },
      "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "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."
          },
          "state": {
            "$ref": "#/components/schemas/MpcVaultState",
            "description": "New state 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_groups",
          "are_all_chains_disabled",
          "derivation_path",
          "public_key_compressed",
          "derivation_info",
          "origin_type",
          "state",
          "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."
          },
          "group_ids": {
            "title": "Group Ids",
            "description": "The unique identifiers of the address groups.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array"
          },
          "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/AptosChainUniqueId"
            },
            "type": "array"
          },
          "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"
        ],
        "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 information.",
            "$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 information.",
            "$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
          },
          "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"
          },
          "gas_config": {
            "description": "The gas configuration for the transaction.",
            "$ref": "#/components/schemas/AptosGasConfigRequest"
          },
          "with_external_fee_payer": {
            "type": "boolean",
            "title": "With External Fee Payer",
            "description": "If true, the transaction's Authenticator will be configured to support an external fee payer. After Fordefi signs the transaction, the client is responsible for forwarding it to the designated fee payer for final signing and broadcasting.",
            "default": false
          },
          "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="
          }
        },
        "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 information.",
            "$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 information.",
            "$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": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "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
          },
          "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"
          },
          "gas_config": {
            "description": "The gas configuration for the transaction.",
            "$ref": "#/components/schemas/AptosGasConfigRequest"
          },
          "with_external_fee_payer": {
            "type": "boolean",
            "title": "With External Fee Payer",
            "description": "If true, the transaction's Authenticator will be configured to support an external fee payer. After Fordefi signs the transaction, the client is responsible for forwarding it to the designated fee payer for final signing and broadcasting.",
            "default": false
          },
          "to": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/AptosRecipientHex"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "contact_id": "#/components/schemas/RecipientContactId",
                "hex": "#/components/schemas/AptosRecipientHex",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units of currency to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "asset_identifier": {
            "$ref": "#/components/schemas/AptosAssetIdentifierRequest",
            "description": "The Aptos asset identifier to transfer."
          }
        },
        "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"
      },
      "CreateArchContactRequest": {
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "title": "Name",
            "description": "The name of the contact."
          },
          "group_ids": {
            "title": "Group Ids",
            "description": "The unique identifiers of the address groups.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array"
          },
          "type": {
            "type": "string",
            "const": "arch",
            "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 arch chain.",
            "example": "4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA"
          },
          "chains": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/ArchChainUniqueId"
            },
            "type": "array"
          },
          "assets_identifiers": {
            "title": "Assets Identifiers",
            "description": "The assets identifiers of the contact.",
            "items": {
              "$ref": "#/components/schemas/ArchAssetIdentifierRequest"
            },
            "type": "array"
          }
        },
        "type": "object",
        "required": [
          "name",
          "type",
          "address"
        ],
        "title": "CreateArchContactRequest"
      },
      "CreateArchTransactionRequest": {
        "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 information.",
            "$ref": "#/components/schemas/DappInfo"
          },
          "type": {
            "type": "string",
            "const": "arch_transaction",
            "title": "Type",
            "description": "Arch transaction type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateArchTransferRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "arch_transfer": "#/components/schemas/CreateArchTransferRequest"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "vault_id",
          "type",
          "details"
        ],
        "title": "CreateArchTransactionRequest"
      },
      "CreateArchTransactionWithWaitRequest": {
        "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 information.",
            "$ref": "#/components/schemas/DappInfo"
          },
          "type": {
            "type": "string",
            "const": "arch_transaction",
            "title": "Type",
            "description": "Arch transaction type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateArchTransferRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "arch_transfer": "#/components/schemas/CreateArchTransferRequest"
              }
            }
          },
          "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": "CreateArchTransactionWithWaitRequest"
      },
      "CreateArchTransferRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "arch_transfer",
            "title": "Type",
            "description": "A Arch 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
          },
          "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"
          },
          "to": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ArchRecipientBase58Repr"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "description": "The recipient of the transfer. Specify either a general address (a base58 string) or the id of another vault (a UUID string).",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "address": "#/components/schemas/ArchRecipientBase58Repr",
                "contact_id": "#/components/schemas/RecipientContactId",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units of currency to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "asset_identifier": {
            "$ref": "#/components/schemas/ArchAssetIdentifierRequest",
            "description": "The Arch asset identifier to transfer."
          }
        },
        "type": "object",
        "required": [
          "type",
          "to",
          "value",
          "asset_identifier"
        ],
        "title": "CreateArchTransferRequest"
      },
      "CreateArchVaultRequest": {
        "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": "arch",
            "title": "Type",
            "description": "Arch vault type."
          }
        },
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "title": "CreateArchVaultRequest"
      },
      "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."
      },
      "CreateBatchContactsRequest": {
        "properties": {
          "contacts": {
            "items": {
              "$ref": "#/components/schemas/CreateContactRequest"
            },
            "type": "array",
            "maxItems": 1000,
            "minItems": 1,
            "title": "Contacts",
            "description": "The contacts to create."
          }
        },
        "type": "object",
        "required": [
          "contacts"
        ],
        "title": "CreateBatchContactsRequest"
      },
      "CreateBatchContactsResponse": {
        "properties": {
          "contacts": {
            "items": {
              "$ref": "#/components/schemas/AddressBookContact"
            },
            "type": "array",
            "title": "Contacts",
            "description": "The created contacts."
          }
        },
        "type": "object",
        "required": [
          "contacts"
        ],
        "title": "CreateBatchContactsResponse"
      },
      "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 information.",
            "$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"
          },
          {
            "$ref": "#/components/schemas/UtxoTransaction"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "solana_transaction": "#/components/schemas/SolanaTransaction",
            "utxo_transaction": "#/components/schemas/UtxoTransaction"
          }
        }
      },
      "CreateBatchTransactionRequest": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/CreateBatchSolanaTransactionRequest"
          },
          {
            "$ref": "#/components/schemas/CreateBatchUtxoDlcTransactionRequest"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "solana_transaction": "#/components/schemas/CreateBatchSolanaTransactionRequest",
            "utxo_dlc_transaction": "#/components/schemas/CreateBatchUtxoDlcTransactionRequest"
          }
        }
      },
      "CreateBatchTransactionRequestDetails": {
        "properties": {
          "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_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"
          },
          "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"
              }
            }
          },
          "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"
      },
      "CreateBatchUtxoDlcTransactionRequest": {
        "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 information.",
            "$ref": "#/components/schemas/DappInfo"
          },
          "type": {
            "type": "string",
            "const": "utxo_dlc_transaction",
            "title": "Type",
            "description": "The type of the transaction."
          },
          "details": {
            "$ref": "#/components/schemas/BatchDlcTransactionRequestDetails",
            "description": "The DLC transaction details."
          }
        },
        "type": "object",
        "required": [
          "vault_id",
          "type",
          "details"
        ],
        "title": "CreateBatchUtxoDlcTransactionRequest"
      },
      "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 information.",
            "$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 information.",
            "$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"
      },
      "CreateCantonApproveTransferRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "canton_approve_transfer",
            "title": "Type",
            "description": "A Canton transaction that approves pending incoming transfers for a given asset."
          },
          "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_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"
          },
          "asset_identifier": {
            "$ref": "#/components/schemas/CantonAssetIdentifierRequest",
            "description": "The Canton asset identifier to approve pending transfers for."
          }
        },
        "type": "object",
        "required": [
          "type",
          "asset_identifier"
        ],
        "title": "CreateCantonApproveTransferRequest"
      },
      "CreateCantonPartyAllocationRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "canton_party_allocation",
            "title": "Type",
            "description": "A Canton party allocation transaction for registering an external party on a node."
          },
          "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_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"
          },
          "chain": {
            "$ref": "#/components/schemas/CantonChainUniqueId",
            "description": "The Canton chain to allocate the party on."
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain"
        ],
        "title": "CreateCantonPartyAllocationRequest"
      },
      "CreateCantonTransactionRequest": {
        "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 information.",
            "$ref": "#/components/schemas/DappInfo"
          },
          "type": {
            "type": "string",
            "const": "canton_transaction",
            "title": "Type",
            "description": "Canton transaction type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateCantonTransferRequest"
              },
              {
                "$ref": "#/components/schemas/CreateCantonPartyAllocationRequest"
              },
              {
                "$ref": "#/components/schemas/CreateCantonApproveTransferRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "canton_approve_transfer": "#/components/schemas/CreateCantonApproveTransferRequest",
                "canton_party_allocation": "#/components/schemas/CreateCantonPartyAllocationRequest",
                "canton_transfer": "#/components/schemas/CreateCantonTransferRequest"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "vault_id",
          "type",
          "details"
        ],
        "title": "CreateCantonTransactionRequest"
      },
      "CreateCantonTransactionWithWaitRequest": {
        "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 information.",
            "$ref": "#/components/schemas/DappInfo"
          },
          "type": {
            "type": "string",
            "const": "canton_transaction",
            "title": "Type",
            "description": "Canton transaction type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateCantonTransferRequest"
              },
              {
                "$ref": "#/components/schemas/CreateCantonPartyAllocationRequest"
              },
              {
                "$ref": "#/components/schemas/CreateCantonApproveTransferRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "canton_approve_transfer": "#/components/schemas/CreateCantonApproveTransferRequest",
                "canton_party_allocation": "#/components/schemas/CreateCantonPartyAllocationRequest",
                "canton_transfer": "#/components/schemas/CreateCantonTransferRequest"
              }
            }
          },
          "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": "CreateCantonTransactionWithWaitRequest"
      },
      "CreateCantonTransferRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "canton_transfer",
            "title": "Type",
            "description": "A Canton 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. <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"
          },
          "to": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CantonRecipientAddress"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "description": "The recipient of the transfer. Specify either a general address, the ID of another vault, or a contact ID.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "address": "#/components/schemas/CantonRecipientAddress",
                "contact_id": "#/components/schemas/RecipientContactId",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units of currency to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "asset_identifier": {
            "$ref": "#/components/schemas/CantonAssetIdentifierRequest",
            "description": "The Canton 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": "CreateCantonTransferRequest"
      },
      "CreateCantonVaultRequest": {
        "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": "canton",
            "title": "Type",
            "description": "Canton vault type."
          }
        },
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "title": "CreateCantonVaultRequest"
      },
      "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."
          },
          "group_ids": {
            "title": "Group Ids",
            "description": "The unique identifiers of the address groups.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array"
          },
          "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 information.",
            "$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 information.",
            "$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 information.",
            "$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 information.",
            "$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."
          },
          "group_ids": {
            "title": "Group Ids",
            "description": "The unique identifiers of the address groups.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array"
          },
          "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all 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_30\"`</li><li>`\"evm_56\"`</li><li>`\"evm_100\"`</li><li>`\"evm_130\"`</li><li>`\"evm_137\"`</li><li>`\"evm_143\"`</li><li>`\"evm_146\"`</li><li>`\"evm_169\"`</li><li>`\"evm_250\"`</li><li>`\"evm_324\"`</li><li>`\"evm_999\"`</li><li>`\"evm_1030\"`</li><li>`\"evm_1100\"`</li><li>`\"evm_1101\"`</li><li>`\"evm_1329\"`</li><li>`\"evm_1672\"`</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_8819\"`</li><li>`\"evm_9745\"`</li><li>`\"evm_16661\"`</li><li>`\"evm_17000\"`</li><li>`\"evm_80001\"`</li><li>`\"evm_80094\"`</li><li>`\"evm_42161\"`</li><li>`\"evm_43114\"`</li><li>`\"evm_57073\"`</li><li>`\"evm_59144\"`</li><li>`\"evm_81457\"`</li><li>`\"evm_421614\"`</li><li>`\"evm_534352\"`</li><li>`\"evm_660279\"`</li><li>`\"evm_747474\"`</li><li>`\"evm_810180\"`</li><li>`\"evm_11155111\"`</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_rootstock_mainnet\"`</li><li>`\"evm_bsc_mainnet\"`</li><li>`\"evm_gnosis_mainnet\"`</li><li>`\"evm_unichain_mainnet\"`</li><li>`\"evm_polygon_mainnet\"`</li><li>`\"evm_monad_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_hyperevm_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_pharos_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_clink_testnet\"`</li><li>`\"evm_plasma_mainnet\"`</li><li>`\"evm_zero_gravity_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_ink_mainnet\"`</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_katana_mainnet\"`</li><li>`\"evm_zklink_nova_mainnet\"`</li><li>`\"evm_ethereum_sepolia\"`</li></ul>"
            },
            "type": "array"
          },
          "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"
        ],
        "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 information.",
            "$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 information.",
            "$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": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "type": {
            "type": "string",
            "const": "evm_raw_transaction",
            "title": "Type",
            "description": "An EVM raw transaction receives raw data and is for general transactions."
          },
          "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_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"
          },
          "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"
              }
            }
          },
          "custom_nonce": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "string",
                "pattern": "^\\d+$",
                "example": "1000000000000000000"
              }
            ],
            "title": "Custom Nonce",
            "description": "The user-specified nonce for the transaction.<br> If not provided, the transaction's nonce will be automatically determined upon signing. <br> If provided, it must equal the nonce of an existing transaction that has already been signed but not yet mined, on the same vault.<br> Alternatively, it may equal the next nonce of the vault."
          },
          "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": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "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."
          },
          "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_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"
          },
          "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"
              }
            }
          },
          "custom_nonce": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "string",
                "pattern": "^\\d+$",
                "example": "1000000000000000000"
              }
            ],
            "title": "Custom Nonce",
            "description": "The user-specified nonce for the transaction.<br> If not provided, the transaction's nonce will be automatically determined upon signing. <br> If provided, it must equal the nonce of an existing transaction that has already been signed but not yet mined, on the same vault.<br> Alternatively, it may equal the next nonce of the vault."
          },
          "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"
      },
      "CreateEvmSetCodeRequest": {
        "properties": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "type": {
            "type": "string",
            "const": "evm_set_code",
            "title": "Type",
            "description": "An EVM set code transaction is for setting the code of a specific contract."
          },
          "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_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"
          },
          "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"
              }
            }
          },
          "custom_nonce": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "string",
                "pattern": "^\\d+$",
                "example": "1000000000000000000"
              }
            ],
            "title": "Custom Nonce",
            "description": "The user-specified nonce for the transaction.<br> If not provided, the transaction's nonce will be automatically determined upon signing. <br> If provided, it must equal the nonce of an existing transaction that has already been signed but not yet mined, on the same vault.<br> Alternatively, it may equal the next nonce of the vault."
          },
          "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`)."
          },
          "enable": {
            "type": "boolean",
            "title": "Enable",
            "description": "Whether to set the code of the contract, or to clear it."
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain",
          "enable"
        ],
        "title": "CreateEvmSetCodeRequest"
      },
      "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 information.",
            "$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"
              },
              {
                "$ref": "#/components/schemas/CreateEvmSetCodeRequest"
              },
              {
                "$ref": "#/components/schemas/CreateEvmWrapNativeRequest"
              },
              {
                "$ref": "#/components/schemas/CreateEvmUnwrapNativeRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "evm_raw_transaction": "#/components/schemas/CreateEvmRawTransactionRequest",
                "evm_revoke_allowance": "#/components/schemas/CreateEvmRevokeAllowanceRequest",
                "evm_set_code": "#/components/schemas/CreateEvmSetCodeRequest",
                "evm_transfer": "#/components/schemas/CreateEvmTransferRequest",
                "evm_unwrap_native": "#/components/schemas/CreateEvmUnwrapNativeRequest",
                "evm_wrap_native": "#/components/schemas/CreateEvmWrapNativeRequest"
              }
            }
          }
        },
        "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 information.",
            "$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"
              },
              {
                "$ref": "#/components/schemas/CreateEvmSetCodeRequest"
              },
              {
                "$ref": "#/components/schemas/CreateEvmWrapNativeRequest"
              },
              {
                "$ref": "#/components/schemas/CreateEvmUnwrapNativeRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "evm_raw_transaction": "#/components/schemas/CreateEvmRawTransactionRequest",
                "evm_revoke_allowance": "#/components/schemas/CreateEvmRevokeAllowanceRequest",
                "evm_set_code": "#/components/schemas/CreateEvmSetCodeRequest",
                "evm_transfer": "#/components/schemas/CreateEvmTransferRequest",
                "evm_unwrap_native": "#/components/schemas/CreateEvmUnwrapNativeRequest",
                "evm_wrap_native": "#/components/schemas/CreateEvmWrapNativeRequest"
              }
            }
          },
          "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": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "type": {
            "type": "string",
            "const": "evm_transfer",
            "title": "Type",
            "description": "An EVM transfer transaction is for transferring native currency or ERC20/721/1155 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. <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"
          },
          "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"
              }
            }
          },
          "custom_nonce": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "string",
                "pattern": "^\\d+$",
                "example": "1000000000000000000"
              }
            ],
            "title": "Custom Nonce",
            "description": "The user-specified nonce for the transaction.<br> If not provided, the transaction's nonce will be automatically determined upon signing. <br> If provided, it must equal the nonce of an existing transaction that has already been signed but not yet mined, on the same vault.<br> Alternatively, it may equal the next nonce of the vault."
          },
          "to": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/EvmRecipientHex"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "description": "The recipient of the transfer. Specify either a general address, the ID of another vault, or a contact ID.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "contact_id": "#/components/schemas/RecipientContactId",
                "hex": "#/components/schemas/EvmRecipientHex",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "asset_identifier": {
            "$ref": "#/components/schemas/EvmAssetIdentifierRequest",
            "description": "The asset to be transferred."
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "Specify one of the following: <ul><li>`value`<li>`max`</ul>",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          }
        },
        "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"
      },
      "CreateEvmUnwrapNativeRequest": {
        "properties": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "type": {
            "type": "string",
            "const": "evm_unwrap_native",
            "title": "Type",
            "description": "An EVM unwrap native transaction is for unwrapping to the native 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
          },
          "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"
          },
          "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"
              }
            }
          },
          "custom_nonce": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "string",
                "pattern": "^\\d+$",
                "example": "1000000000000000000"
              }
            ],
            "title": "Custom Nonce",
            "description": "The user-specified nonce for the transaction.<br> If not provided, the transaction's nonce will be automatically determined upon signing. <br> If provided, it must equal the nonce of an existing transaction that has already been signed but not yet mined, on the same vault.<br> Alternatively, it may equal the next nonce of the vault."
          },
          "chain": {
            "$ref": "#/components/schemas/EvmChainRequest",
            "description": "The chain that this transaction is on."
          },
          "amount": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The amount of wrapped token to unwrap. Specify one of the following: <ul><li>`value`<li>`max`</ul>",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain",
          "amount"
        ],
        "title": "CreateEvmUnwrapNativeRequest"
      },
      "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"
      },
      "CreateEvmWrapNativeRequest": {
        "properties": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "type": {
            "type": "string",
            "const": "evm_wrap_native",
            "title": "Type",
            "description": "An EVM wrap native transaction is for wrapping the native 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
          },
          "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"
          },
          "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"
              }
            }
          },
          "custom_nonce": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "string",
                "pattern": "^\\d+$",
                "example": "1000000000000000000"
              }
            ],
            "title": "Custom Nonce",
            "description": "The user-specified nonce for the transaction.<br> If not provided, the transaction's nonce will be automatically determined upon signing. <br> If provided, it must equal the nonce of an existing transaction that has already been signed but not yet mined, on the same vault.<br> Alternatively, it may equal the next nonce of the vault."
          },
          "chain": {
            "$ref": "#/components/schemas/EvmChainRequest",
            "description": "The chain that this transaction is on."
          },
          "amount": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The amount of native token to wrap. Specify one of the following: <ul><li>`value`<li>`max`</ul>",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain",
          "amount"
        ],
        "title": "CreateEvmWrapNativeRequest"
      },
      "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"
              },
              {
                "$ref": "#/components/schemas/ExchangeTransferExternalRecipientTypeContact"
              }
            ],
            "description": "The recipient of the transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "address": "#/components/schemas/ExchangeTransferExternalRecipientTypeAddress",
                "contact": "#/components/schemas/ExchangeTransferExternalRecipientTypeContact",
                "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"
      },
      "CreateExchangeInternalTransferRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "internal_transfer",
            "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."
          },
          "to": {
            "type": "string",
            "format": "uuid",
            "title": "To",
            "description": "The ID of the recipient vault."
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateExchangeInternalTransferRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateExchangeTransferRequestMaxAmount"
              }
            ],
            "description": "The number of units of currency to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateExchangeTransferRequestMaxAmount",
                "value": "#/components/schemas/CreateExchangeInternalTransferRequestExplicitAmount"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "type",
          "asset_identifier",
          "to",
          "value"
        ],
        "title": "CreateExchangeInternalTransferRequest"
      },
      "CreateExchangeInternalTransferRequestExplicitAmount": {
        "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": "CreateExchangeInternalTransferRequestExplicitAmount"
      },
      "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 information.",
            "$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"
      },
      "CreateRequestExplicitAmount": {
        "properties": {
          "type": {
            "type": "string",
            "const": "value",
            "title": "Type"
          },
          "value": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "Value",
            "description": "The specific amount to be passed.",
            "example": "1000000000000000000"
          }
        },
        "type": "object",
        "required": [
          "type",
          "value"
        ],
        "title": "CreateRequestExplicitAmount"
      },
      "CreateRequestMaxAmount": {
        "properties": {
          "type": {
            "type": "string",
            "const": "max",
            "title": "Type"
          }
        },
        "type": "object",
        "required": [
          "type"
        ],
        "title": "CreateRequestMaxAmount"
      },
      "CreateSafeVaultRequest": {
        "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": "safe",
            "title": "Type",
            "description": "Safe vault type."
          },
          "address": {
            "type": "string",
            "pattern": "^0x[a-fA-F0-9]{40}$",
            "title": "Address",
            "description": "The address of the Safe multisig wallet to import."
          }
        },
        "type": "object",
        "required": [
          "name",
          "type",
          "address"
        ],
        "title": "CreateSafeVaultRequest",
        "description": "Request to create a Safe vault via POST /api/v1/vaults."
      },
      "CreateSessionDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "create_session_message_type",
            "title": "Type",
            "description": "The type of the Solana message."
          },
          "version": {
            "type": "string",
            "title": "Version",
            "description": "The version of the create session data."
          },
          "domain": {
            "$ref": "#/components/schemas/Dapp",
            "description": "The session domain that determines which contracts the session can access."
          },
          "session_key": {
            "type": "string",
            "title": "Session Key",
            "description": "The session public key."
          },
          "expiration": {
            "type": "string",
            "format": "date-time",
            "title": "Expiration",
            "description": "The session expiration date and time."
          },
          "allow_all_tokens": {
            "type": "boolean",
            "title": "Allow All Tokens",
            "description": "True if the session is granted access to all tokens."
          },
          "all_tokens_matched_exactly": {
            "type": "boolean",
            "title": "All Tokens Matched Exactly",
            "description": "True if every token in the message matches to exactly one asset."
          }
        },
        "type": "object",
        "required": [
          "type",
          "version",
          "domain",
          "session_key",
          "expiration",
          "allow_all_tokens",
          "all_tokens_matched_exactly"
        ],
        "title": "CreateSessionDetails"
      },
      "CreateSolanaContactRequest": {
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "title": "Name",
            "description": "The name of the contact."
          },
          "group_ids": {
            "title": "Group Ids",
            "description": "The unique identifiers of the address groups.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array"
          },
          "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/SolanaChainUniqueId"
            },
            "type": "array"
          },
          "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"
        ],
        "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 information.",
            "$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 information.",
            "$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": {
          "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_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"
          },
          "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"
              }
            }
          },
          "chain": {
            "$ref": "#/components/schemas/SolanaChainUniqueId"
          },
          "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": [
          "type",
          "chain",
          "version",
          "instructions",
          "accounts",
          "address_table_lookups"
        ],
        "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
          },
          "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"
          },
          "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.\nThe first account in the serialized transaction message must match theaddress of the vault in the request.\nIf the serialized message contains a recent block hash, the server may override it to prevent the transaction from expiring.\nAdditionally, 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.\nCan be omitted if the transaction requires no partial signatures, or if ephemeral_keys are passed instead.\nIf 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.\nCan be omitted if the transaction requires no partial signatures, or if signatures are passed instead.\nIf 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"
      },
      "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 information.",
            "$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 information.",
            "$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_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "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
          },
          "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"
          },
          "to": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/SolanaRecipientBase58"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "description": "The recipient of the transfer. Specify either a general address, the ID of another vault, or a contact ID object.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "address": "#/components/schemas/SolanaRecipientBase58",
                "contact_id": "#/components/schemas/RecipientContactId",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units of currency to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "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"
      },
      "CreateSpotSwapRequest": {
        "properties": {
          "quote_id": {
            "type": "string",
            "format": "uuid",
            "title": "Quote Id",
            "description": "The ID of the quote."
          },
          "vault_id": {
            "type": "string",
            "format": "uuid",
            "title": "Vault Id",
            "description": "The unique identifier of the vault."
          },
          "input_asset_identifier": {
            "$ref": "#/components/schemas/AssetIdentifierRequest",
            "description": "The input asset identifier."
          },
          "output_asset_identifier": {
            "$ref": "#/components/schemas/AssetIdentifierRequest",
            "description": "The output asset identifier."
          },
          "amount": {
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "title": "Amount",
            "description": "The amount to swap.",
            "example": "1000000000000000000"
          },
          "slippage_bps": {
            "title": "Slippage Bps",
            "description": "The slippage tolerance in basis points.",
            "type": "string",
            "pattern": "^\\d+(\\.\\d+)?$",
            "example": "1000000000000000000"
          },
          "fee": {
            "description": "The fee configuration for the transaction.",
            "$ref": "#/components/schemas/SpotSwapFeeRequest"
          },
          "signer_type": {
            "$ref": "#/components/schemas/SignerType",
            "description": "The signer of the swap request. Can be: <ul><li>`initiator`: The creator of the swap request (default).<li>`api_signer`: A service that you run on your own network or cloud environment. </ul>",
            "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
          },
          "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
          },
          "dapp_info": {
            "description": "The DApp information.",
            "$ref": "#/components/schemas/DappInfo"
          }
        },
        "type": "object",
        "required": [
          "quote_id",
          "vault_id",
          "input_asset_identifier",
          "output_asset_identifier",
          "amount"
        ],
        "title": "CreateSpotSwapRequest"
      },
      "CreateStacksContactRequest": {
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "title": "Name",
            "description": "The name of the contact."
          },
          "group_ids": {
            "title": "Group Ids",
            "description": "The unique identifiers of the address groups.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array"
          },
          "type": {
            "type": "string",
            "const": "stacks",
            "title": "Type",
            "description": "The type of the chain."
          },
          "address": {
            "type": "string",
            "maxLength": 171,
            "pattern": "^S[0-9A-Za-z._-]+$",
            "title": "Address",
            "description": "The address on the Stacks chain.",
            "example": "SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9"
          },
          "chains": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/StacksChainUniqueId"
            },
            "type": "array"
          },
          "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"
        ],
        "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 information.",
            "$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. <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"
          },
          "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 information.",
            "$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. <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"
          },
          "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"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "contact_id": "#/components/schemas/RecipientContactId",
                "hex": "#/components/schemas/StacksRecipientHex",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units of currency to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "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."
          },
          "group_ids": {
            "title": "Group Ids",
            "description": "The unique identifiers of the address groups.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array"
          },
          "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/StarknetChainUniqueId"
            },
            "type": "array"
          },
          "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"
        ],
        "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. <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"
          },
          "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 information.",
            "$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 information.",
            "$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. <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"
          },
          "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 information.",
            "$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 information.",
            "$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. <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"
          },
          "to": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/StarknetRecipientHex"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "contact_id": "#/components/schemas/RecipientContactId",
                "hex": "#/components/schemas/StarknetRecipientHex",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units of currency to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "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"
      },
      "CreateStellarChangeTrustRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "stellar_change_trust",
            "title": "Type",
            "description": "A Stellar ChangeTrust operation to create a trustline for a classic asset with maximum limit."
          },
          "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_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"
          },
          "asset_identifier": {
            "$ref": "#/components/schemas/StellarAssetIdentifierRequest",
            "description": "The Stellar classic asset identifier to create a trustline for."
          }
        },
        "type": "object",
        "required": [
          "type",
          "asset_identifier"
        ],
        "title": "CreateStellarChangeTrustRequest"
      },
      "CreateStellarTransactionRequest": {
        "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 information.",
            "$ref": "#/components/schemas/DappInfo"
          },
          "type": {
            "type": "string",
            "const": "stellar_transaction",
            "title": "Type",
            "description": "Stellar transaction type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateStellarTransferRequest"
              },
              {
                "$ref": "#/components/schemas/CreateStellarChangeTrustRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "stellar_change_trust": "#/components/schemas/CreateStellarChangeTrustRequest",
                "stellar_transfer": "#/components/schemas/CreateStellarTransferRequest"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "vault_id",
          "type",
          "details"
        ],
        "title": "CreateStellarTransactionRequest"
      },
      "CreateStellarTransactionWithWaitRequest": {
        "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 information.",
            "$ref": "#/components/schemas/DappInfo"
          },
          "type": {
            "type": "string",
            "const": "stellar_transaction",
            "title": "Type",
            "description": "Stellar transaction type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateStellarTransferRequest"
              },
              {
                "$ref": "#/components/schemas/CreateStellarChangeTrustRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "stellar_change_trust": "#/components/schemas/CreateStellarChangeTrustRequest",
                "stellar_transfer": "#/components/schemas/CreateStellarTransferRequest"
              }
            }
          },
          "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": "CreateStellarTransactionWithWaitRequest"
      },
      "CreateStellarTransferRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "stellar_transfer",
            "title": "Type",
            "description": "A Stellar transfer transaction for transferring native XLM, classic assets, or Soroban 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. <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"
          },
          "to": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/StellarRecipientAddress"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              }
            ],
            "description": "The recipient of the transfer: either an address or a vault ID.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "address": "#/components/schemas/StellarRecipientAddress",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "asset_identifier": {
            "$ref": "#/components/schemas/StellarAssetIdentifierRequest",
            "description": "The Stellar 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": "CreateStellarTransferRequest"
      },
      "CreateStellarVaultRequest": {
        "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": "stellar",
            "title": "Type",
            "description": "Stellar vault type."
          }
        },
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "title": "CreateStellarVaultRequest"
      },
      "CreateSuiContactRequest": {
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "title": "Name",
            "description": "The name of the contact."
          },
          "group_ids": {
            "title": "Group Ids",
            "description": "The unique identifiers of the address groups.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array"
          },
          "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/SuiChainUniqueId"
            },
            "type": "array"
          },
          "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"
        ],
        "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 information.",
            "$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 information.",
            "$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
          },
          "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"
          },
          "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
          },
          "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"
          },
          "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 information.",
            "$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 information.",
            "$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": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "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
          },
          "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"
          },
          "to": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/SuiRecipientHex"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "contact_id": "#/components/schemas/RecipientContactId",
                "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/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units of currency to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "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"
      },
      "CreateSwapErrorType": {
        "type": "string",
        "enum": [
          "revoke_allowance_first",
          "quote_not_found",
          "blocked_by_policy",
          "transaction_uses_secure_node"
        ],
        "title": "CreateSwapErrorType"
      },
      "CreateTonContactRequest": {
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "title": "Name",
            "description": "The name of the contact."
          },
          "group_ids": {
            "title": "Group Ids",
            "description": "The unique identifiers of the address groups.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array"
          },
          "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/TonChainUniqueId"
            },
            "type": "array"
          },
          "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"
        ],
        "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 information.",
            "$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 information.",
            "$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. <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"
          },
          "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"
          }
        },
        "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 information.",
            "$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 information.",
            "$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. <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"
          },
          "to": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/TonRecipientHex"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "contact_id": "#/components/schemas/RecipientContactId",
                "hex": "#/components/schemas/TonRecipientHex",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units of currency to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "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"
          }
        },
        "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",
          "chain_is_not_supported",
          "gas_sponsor_not_enabled_for_organization",
          "chain_does_not_support_7702",
          "creating_user_operation_message_is_blocked",
          "transaction_fee_exceeds_limit",
          "transaction_not_pushable",
          "aml_not_configured",
          "transaction_not_frozen",
          "send_7702_transaction_to_self",
          "vault_is_not_smart_account",
          "invalid_canton_vault_registration_state",
          "failed_finding_wrapped_native_token"
        ],
        "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/CreateTronMessageRequest"
          },
          {
            "$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_message": "#/components/schemas/CreateTronMessageRequest",
            "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/TronMessage"
          },
          {
            "$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_message": "#/components/schemas/TronMessage",
            "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/CreateTronMessageWithWaitRequest"
          },
          {
            "$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_message": "#/components/schemas/CreateTronMessageWithWaitRequest",
            "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"
      },
      "CreateTransferRequest": {
        "$ref": "#/components/schemas/GenericCreateTransferRequest",
        "title": "CreateTransferRequest"
      },
      "CreateTronContactRequest": {
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "title": "Name",
            "description": "The name of the contact."
          },
          "group_ids": {
            "title": "Group Ids",
            "description": "The unique identifiers of the address groups.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array"
          },
          "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/TronChainUniqueId"
            },
            "type": "array"
          },
          "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"
        ],
        "title": "CreateTronContactRequest"
      },
      "CreateTronMessageRequest": {
        "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 information.",
            "$ref": "#/components/schemas/DappInfo"
          },
          "type": {
            "type": "string",
            "const": "tron_message",
            "title": "Type",
            "description": "TRON message type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/TronTypedMessageV1Request"
              },
              {
                "$ref": "#/components/schemas/TronTypedMessageV2Request"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "typed_message_type_v1": "#/components/schemas/TronTypedMessageV1Request",
                "typed_message_type_v2": "#/components/schemas/TronTypedMessageV2Request"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "vault_id",
          "type",
          "details"
        ],
        "title": "CreateTronMessageRequest"
      },
      "CreateTronMessageWithWaitRequest": {
        "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 information.",
            "$ref": "#/components/schemas/DappInfo"
          },
          "type": {
            "type": "string",
            "const": "tron_message",
            "title": "Type",
            "description": "TRON message type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/TronTypedMessageV1Request"
              },
              {
                "$ref": "#/components/schemas/TronTypedMessageV2Request"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "typed_message_type_v1": "#/components/schemas/TronTypedMessageV1Request",
                "typed_message_type_v2": "#/components/schemas/TronTypedMessageV2Request"
              }
            }
          },
          "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": "CreateTronMessageWithWaitRequest"
      },
      "CreateTronSerializedRawTransactionRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "tron_serialized_raw_transaction",
            "title": "Type",
            "description": "A TRON serialized 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_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"
          },
          "chain": {
            "$ref": "#/components/schemas/TronChainUniqueId",
            "description": "The TRON chain identifier."
          },
          "data": {
            "type": "string",
            "title": "Data",
            "description": "The hex encoded transaction data. This should be the complete raw transaction protobuf message encoded as hex.\nThe transaction must be properly structured with all required fields including reference block information (ref_block_bytes, ref_block_hash) and expiration time.\nIf the serialized transaction contains an expiration time that is too close to the current time, the server may override it to prevent the transaction from expiring.\nThe transaction should include all contract calls, transfers, or staking operations but should NOT be signed - signing will be handled by Fordefi."
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain",
          "data"
        ],
        "title": "CreateTronSerializedRawTransactionRequest"
      },
      "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 information.",
            "$ref": "#/components/schemas/DappInfo"
          },
          "type": {
            "type": "string",
            "const": "tron_transaction",
            "title": "Type",
            "description": "TRON transaction type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateTronTransferRequest"
              },
              {
                "$ref": "#/components/schemas/CreateTronSerializedRawTransactionRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "tron_serialized_raw_transaction": "#/components/schemas/CreateTronSerializedRawTransactionRequest",
                "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 information.",
            "$ref": "#/components/schemas/DappInfo"
          },
          "type": {
            "type": "string",
            "const": "tron_transaction",
            "title": "Type",
            "description": "TRON transaction type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateTronTransferRequest"
              },
              {
                "$ref": "#/components/schemas/CreateTronSerializedRawTransactionRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "tron_serialized_raw_transaction": "#/components/schemas/CreateTronSerializedRawTransactionRequest",
                "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. <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"
          },
          "to": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/TronRecipientHex"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "contact_id": "#/components/schemas/RecipientContactId",
                "hex": "#/components/schemas/TronRecipientHex",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "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"
          },
          "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": "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."
          },
          "group_ids": {
            "title": "Group Ids",
            "description": "The unique identifiers of the address groups.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array"
          },
          "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 information.",
            "$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 information.",
            "$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 information.",
            "$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 information.",
            "$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",
          "vault_creation_lock_failed"
        ],
        "title": "CreateVaultErrorType"
      },
      "CreateVaultRequest": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/CreateAptosVaultRequest"
          },
          {
            "$ref": "#/components/schemas/CreateBlackBoxVaultRequest"
          },
          {
            "$ref": "#/components/schemas/CreateCosmosVaultRequest"
          },
          {
            "$ref": "#/components/schemas/CreateEvmVaultRequest"
          },
          {
            "$ref": "#/components/schemas/CreateSafeVaultRequest"
          },
          {
            "$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",
            "safe": "#/components/schemas/CreateSafeVaultRequest",
            "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"
          },
          {
            "$ref": "#/components/schemas/SafeVault"
          }
        ],
        "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",
            "safe": "#/components/schemas/SafeVault",
            "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."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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_CreateSwapErrorType_": {
        "properties": {
          "title": {
            "type": "string",
            "title": "Title",
            "description": "Human-readable error message."
          },
          "detail": {
            "type": "string",
            "title": "Detail",
            "description": "Detailed error message."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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/CreateSwapErrorType"
          }
        },
        "type": "object",
        "required": [
          "title",
          "detail"
        ],
        "title": "DefinedPreconditionError[CreateSwapErrorType]"
      },
      "DefinedPreconditionError_CreateTransactionErrorType_": {
        "properties": {
          "title": {
            "type": "string",
            "title": "Title",
            "description": "Human-readable error message."
          },
          "detail": {
            "type": "string",
            "title": "Detail",
            "description": "Detailed error message."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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_PredictSwapErrorType_": {
        "properties": {
          "title": {
            "type": "string",
            "title": "Title",
            "description": "Human-readable error message."
          },
          "detail": {
            "type": "string",
            "title": "Detail",
            "description": "Detailed error message."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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/PredictSwapErrorType"
          }
        },
        "type": "object",
        "required": [
          "title",
          "detail"
        ],
        "title": "DefinedPreconditionError[PredictSwapErrorType]"
      },
      "DefinedPreconditionError_PredictTransactionErrorType_": {
        "properties": {
          "title": {
            "type": "string",
            "title": "Title",
            "description": "Human-readable error message."
          },
          "detail": {
            "type": "string",
            "title": "Detail",
            "description": "Detailed error message."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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"
      },
      "DlcDataResponse": {
        "properties": {
          "dlc_transaction_type": {
            "$ref": "#/components/schemas/UtxoDlcTransactionType"
          },
          "funding_transaction_id": {
            "type": "string",
            "format": "uuid",
            "title": "Funding Transaction Id"
          },
          "refund_transaction_id": {
            "type": "string",
            "format": "uuid",
            "title": "Refund Transaction Id"
          },
          "cet_transaction_ids": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Cet Transaction Ids"
          },
          "adaptor_point": {
            "title": "Adaptor Point",
            "type": "string",
            "pattern": "^0[xX][a-fA-F0-9]+$"
          }
        },
        "type": "object",
        "required": [
          "dlc_transaction_type",
          "funding_transaction_id",
          "refund_transaction_id",
          "cet_transaction_ids"
        ],
        "title": "DlcDataResponse"
      },
      "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. If empty, the contact is associated with all chains."
          }
        },
        "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/AptosChainUniqueId"
            },
            "type": "array"
          },
          "assets_identifiers": {
            "title": "Assets Identifiers",
            "description": "The assets identifiers of the contact.",
            "items": {
              "$ref": "#/components/schemas/AptosAssetIdentifierRequest"
            },
            "type": "array"
          }
        },
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "title": "EditAptosContactRequest"
      },
      "EditArchContactRequest": {
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "title": "Name",
            "description": "The name of the contact."
          },
          "type": {
            "type": "string",
            "const": "arch",
            "title": "Type",
            "description": "The type of the chain."
          },
          "chains": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/ArchChainUniqueId"
            },
            "type": "array"
          },
          "assets_identifiers": {
            "title": "Assets Identifiers",
            "description": "The assets identifiers of the contact.",
            "items": {
              "$ref": "#/components/schemas/ArchAssetIdentifierRequest"
            },
            "type": "array"
          }
        },
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "title": "EditArchContactRequest"
      },
      "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all 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_30\"`</li><li>`\"evm_56\"`</li><li>`\"evm_100\"`</li><li>`\"evm_130\"`</li><li>`\"evm_137\"`</li><li>`\"evm_143\"`</li><li>`\"evm_146\"`</li><li>`\"evm_169\"`</li><li>`\"evm_250\"`</li><li>`\"evm_324\"`</li><li>`\"evm_999\"`</li><li>`\"evm_1030\"`</li><li>`\"evm_1100\"`</li><li>`\"evm_1101\"`</li><li>`\"evm_1329\"`</li><li>`\"evm_1672\"`</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_8819\"`</li><li>`\"evm_9745\"`</li><li>`\"evm_16661\"`</li><li>`\"evm_17000\"`</li><li>`\"evm_80001\"`</li><li>`\"evm_80094\"`</li><li>`\"evm_42161\"`</li><li>`\"evm_43114\"`</li><li>`\"evm_57073\"`</li><li>`\"evm_59144\"`</li><li>`\"evm_81457\"`</li><li>`\"evm_421614\"`</li><li>`\"evm_534352\"`</li><li>`\"evm_660279\"`</li><li>`\"evm_747474\"`</li><li>`\"evm_810180\"`</li><li>`\"evm_11155111\"`</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_rootstock_mainnet\"`</li><li>`\"evm_bsc_mainnet\"`</li><li>`\"evm_gnosis_mainnet\"`</li><li>`\"evm_unichain_mainnet\"`</li><li>`\"evm_polygon_mainnet\"`</li><li>`\"evm_monad_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_hyperevm_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_pharos_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_clink_testnet\"`</li><li>`\"evm_plasma_mainnet\"`</li><li>`\"evm_zero_gravity_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_ink_mainnet\"`</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_katana_mainnet\"`</li><li>`\"evm_zklink_nova_mainnet\"`</li><li>`\"evm_ethereum_sepolia\"`</li></ul>"
            },
            "type": "array"
          },
          "assets_identifiers": {
            "title": "Assets Identifiers",
            "description": "The assets identifiers of the contact.",
            "items": {
              "$ref": "#/components/schemas/EvmAssetIdentifierRequest"
            },
            "type": "array"
          }
        },
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/SolanaChainUniqueId"
            },
            "type": "array"
          },
          "assets_identifiers": {
            "title": "Assets Identifiers",
            "description": "The assets identifiers of the contact.",
            "items": {
              "$ref": "#/components/schemas/SolanaAssetIdentifierRequest"
            },
            "type": "array"
          }
        },
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/StacksChainUniqueId"
            },
            "type": "array"
          },
          "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"
        ],
        "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/StarknetChainUniqueId"
            },
            "type": "array"
          },
          "assets_identifiers": {
            "title": "Assets Identifiers",
            "description": "The assets identifiers of the contact.",
            "items": {
              "$ref": "#/components/schemas/StarknetAssetIdentifierRequest"
            },
            "type": "array"
          }
        },
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/SuiChainUniqueId"
            },
            "type": "array"
          },
          "assets_identifiers": {
            "title": "Assets Identifiers",
            "description": "The assets identifiers of the contact.",
            "items": {
              "$ref": "#/components/schemas/SuiAssetIdentifierRequest"
            },
            "type": "array"
          }
        },
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/TonChainUniqueId"
            },
            "type": "array"
          },
          "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"
        ],
        "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": {
            "title": "Chains",
            "description": "The chains the contact belongs to. If not provided, the contact will be associated with all chains.",
            "items": {
              "$ref": "#/components/schemas/TronChainUniqueId"
            },
            "type": "array"
          },
          "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"
        ],
        "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"
      },
      "EnrichedArchAddress": {
        "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": "arch",
            "title": "Type"
          },
          "address": {
            "type": "string",
            "maxLength": 44,
            "minLength": 32,
            "pattern": "^[a-km-zA-HJ-NP-Z1-9]+$",
            "title": "Address",
            "description": "The Arch address represented in Base58 format.",
            "example": "4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA"
          }
        },
        "type": "object",
        "required": [
          "type",
          "address"
        ],
        "title": "EnrichedArchAddress"
      },
      "EnrichedArchChain": {
        "properties": {
          "chain_type": {
            "type": "string",
            "const": "arch",
            "title": "Chain Type",
            "description": "The type of the chain."
          },
          "unique_id": {
            "$ref": "#/components/schemas/ArchChainUniqueId",
            "description": "The type of the Arch-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": "EnrichedArchChain"
      },
      "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"
          }
        }
      },
      "EnrichedCantonAddress": {
        "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": "canton",
            "title": "Type"
          },
          "address": {
            "type": "string",
            "maxLength": 251,
            "minLength": 70,
            "title": "Address",
            "description": "The Canton address.",
            "example": "45b72ac2a9742204e6e5f521781b0648::122028536bd166988ebbb422c7f483bb32d4134127e8c171c9666ce9b518e1dd27cf"
          }
        },
        "type": "object",
        "required": [
          "type",
          "address"
        ],
        "title": "EnrichedCantonAddress"
      },
      "EnrichedCantonChain": {
        "properties": {
          "chain_type": {
            "type": "string",
            "const": "canton",
            "title": "Chain Type",
            "description": "The type of the chain."
          },
          "unique_id": {
            "$ref": "#/components/schemas/CantonChainUniqueId",
            "description": "The type of the Canton 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": "EnrichedCantonChain"
      },
      "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>`hyperevm_mainnet`</li><li>`ink_mainnet`</li><li>`kava_mainnet`</li><li>`katana_mainnet`</li><li>`linea_mainnet`</li><li>`optimism_mainnet`</li><li>`pharos_mainnet`</li><li>`plasma_mainnet`</li><li>`manta_pacific_mainnet`</li><li>`mantle_mainnet`</li><li>`merlin_mainnet`</li><li>`monad_mainnet`</li><li>`polygon_mainnet`</li><li>`polygon_mumbai`</li><li>`polygon_zkevm_mainnet`</li><li>`reya_mainnet`</li><li>`rootstock_mainnet`</li><li>`scroll_mainnet`</li><li>`sei_mainnet`</li><li>`sonic_mainnet`</li><li>`unichain_mainnet`</li><li>`xai_mainnet`</li><li>`zero_gravity_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>30=`rootstock_mainnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>130=`unichain_mainnet`</li><li>137=`polygon_mainnet`</li><li>143=`monad_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>999=`hyperevm_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1672=`pharos_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>8819=`clink_testnet`</li><li>9745=`plasma_mainnet`</li><li>16661=`zero_gravity_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>57073=`ink_mainnet`</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>747474=`katana_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</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_30\"`</li><li>`\"evm_56\"`</li><li>`\"evm_100\"`</li><li>`\"evm_130\"`</li><li>`\"evm_137\"`</li><li>`\"evm_143\"`</li><li>`\"evm_146\"`</li><li>`\"evm_169\"`</li><li>`\"evm_250\"`</li><li>`\"evm_324\"`</li><li>`\"evm_999\"`</li><li>`\"evm_1030\"`</li><li>`\"evm_1100\"`</li><li>`\"evm_1101\"`</li><li>`\"evm_1329\"`</li><li>`\"evm_1672\"`</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_8819\"`</li><li>`\"evm_9745\"`</li><li>`\"evm_16661\"`</li><li>`\"evm_17000\"`</li><li>`\"evm_80001\"`</li><li>`\"evm_80094\"`</li><li>`\"evm_42161\"`</li><li>`\"evm_43114\"`</li><li>`\"evm_57073\"`</li><li>`\"evm_59144\"`</li><li>`\"evm_81457\"`</li><li>`\"evm_421614\"`</li><li>`\"evm_534352\"`</li><li>`\"evm_660279\"`</li><li>`\"evm_747474\"`</li><li>`\"evm_810180\"`</li><li>`\"evm_11155111\"`</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_rootstock_mainnet\"`</li><li>`\"evm_bsc_mainnet\"`</li><li>`\"evm_gnosis_mainnet\"`</li><li>`\"evm_unichain_mainnet\"`</li><li>`\"evm_polygon_mainnet\"`</li><li>`\"evm_monad_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_hyperevm_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_pharos_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_clink_testnet\"`</li><li>`\"evm_plasma_mainnet\"`</li><li>`\"evm_zero_gravity_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_ink_mainnet\"`</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_katana_mainnet\"`</li><li>`\"evm_zklink_nova_mainnet\"`</li><li>`\"evm_ethereum_sepolia\"`</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>"
          },
          "supports_7702": {
            "type": "boolean",
            "title": "Supports 7702",
            "description": "`True` if the chain supports 7702, `False` otherwise.",
            "default": false
          }
        },
        "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,
            "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"
      },
      "EnrichedStellarAddress": {
        "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": "stellar",
            "title": "Type"
          },
          "address": {
            "type": "string",
            "maxLength": 56,
            "minLength": 56,
            "pattern": "^[GC][A-Z2-7]{55}$",
            "title": "Address",
            "description": "The Stellar address represented in base32 format.",
            "example": "GBRPYHIL2CI3FNQ4BXLFMNDLFJHO7W3B6FSHLTAVM2A4P45SHO4ZB7I2"
          }
        },
        "type": "object",
        "required": [
          "type",
          "address"
        ],
        "title": "EnrichedStellarAddress"
      },
      "EnrichedStellarChain": {
        "properties": {
          "chain_type": {
            "type": "string",
            "const": "stellar",
            "title": "Chain Type",
            "description": "The type of the chain."
          },
          "unique_id": {
            "$ref": "#/components/schemas/StellarChainUniqueId",
            "description": "The type of the Stellar 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": "EnrichedStellarChain"
      },
      "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"
      },
      "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."
      },
      "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"
      },
      "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."
      },
      "EvmAllowanceEffect": {
        "properties": {
          "priced_asset": {
            "$ref": "#/components/schemas/PricedAsset",
            "description": "The asset information."
          },
          "owner": {
            "$ref": "#/components/schemas/EnrichedEvmAddress",
            "description": "The owner of the tokens"
          },
          "spender": {
            "$ref": "#/components/schemas/EnrichedEvmAddress",
            "description": "The address allowed to spend"
          },
          "amount": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "Amount",
            "description": "The allowance amount",
            "example": "1000000000000000000"
          },
          "expiration": {
            "title": "Expiration",
            "description": "The expiration timestamp of the allowance",
            "type": "string",
            "format": "date-time"
          },
          "nonce": {
            "title": "Nonce",
            "description": "The nonce associated with the allowance",
            "type": "string",
            "pattern": "^\\d+$",
            "example": "1000000000000000000"
          }
        },
        "type": "object",
        "required": [
          "priced_asset",
          "owner",
          "spender",
          "amount"
        ],
        "title": "EvmAllowanceEffect"
      },
      "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"
          },
          "address": {
            "$ref": "#/components/schemas/EnrichedEvmAddress",
            "description": "The address affected by the balance change."
          }
        },
        "type": "object",
        "required": [
          "priced_asset",
          "diff",
          "address"
        ],
        "title": "EvmBalanceChangeEffect"
      },
      "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 destination 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"
        ],
        "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"
      },
      "EvmBridgeKnownDestination": {
        "properties": {
          "type": {
            "type": "string",
            "const": "known_target_chain",
            "title": "Type"
          },
          "chain": {
            "$ref": "#/components/schemas/EnrichedEvmChain",
            "description": "The chain of the destination."
          },
          "address": {
            "$ref": "#/components/schemas/EnrichedEvmAddress",
            "description": "The address of the destination."
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain",
          "address"
        ],
        "title": "EvmBridgeKnownDestination"
      },
      "EvmBridgesEffect": {
        "properties": {
          "priced_asset": {
            "$ref": "#/components/schemas/PricedAsset",
            "description": "The asset information."
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "The name of the bridge."
          },
          "amount": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "Amount",
            "description": "The amount of the bridge.",
            "example": "1000000000000000000"
          },
          "source": {
            "$ref": "#/components/schemas/EnrichedEvmAddress",
            "description": "The source of the bridge."
          },
          "destination": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/EvmBridgeKnownDestination"
              },
              {
                "$ref": "#/components/schemas/BaseBridgeUnknownDestination"
              }
            ],
            "description": "The destination of the bridge.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "known_target_chain": "#/components/schemas/EvmBridgeKnownDestination",
                "unknown_target_chain": "#/components/schemas/BaseBridgeUnknownDestination"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "priced_asset",
          "name",
          "amount",
          "source",
          "destination"
        ],
        "title": "EvmBridgesEffect"
      },
      "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>`hyperevm_mainnet`</li><li>`ink_mainnet`</li><li>`kava_mainnet`</li><li>`katana_mainnet`</li><li>`linea_mainnet`</li><li>`optimism_mainnet`</li><li>`pharos_mainnet`</li><li>`plasma_mainnet`</li><li>`manta_pacific_mainnet`</li><li>`mantle_mainnet`</li><li>`merlin_mainnet`</li><li>`monad_mainnet`</li><li>`polygon_mainnet`</li><li>`polygon_mumbai`</li><li>`polygon_zkevm_mainnet`</li><li>`reya_mainnet`</li><li>`rootstock_mainnet`</li><li>`scroll_mainnet`</li><li>`sei_mainnet`</li><li>`sonic_mainnet`</li><li>`unichain_mainnet`</li><li>`xai_mainnet`</li><li>`zero_gravity_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>30=`rootstock_mainnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>130=`unichain_mainnet`</li><li>137=`polygon_mainnet`</li><li>143=`monad_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>999=`hyperevm_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1672=`pharos_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>8819=`clink_testnet`</li><li>9745=`plasma_mainnet`</li><li>16661=`zero_gravity_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>57073=`ink_mainnet`</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>747474=`katana_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</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_30\"`</li><li>`\"evm_56\"`</li><li>`\"evm_100\"`</li><li>`\"evm_130\"`</li><li>`\"evm_137\"`</li><li>`\"evm_143\"`</li><li>`\"evm_146\"`</li><li>`\"evm_169\"`</li><li>`\"evm_250\"`</li><li>`\"evm_324\"`</li><li>`\"evm_999\"`</li><li>`\"evm_1030\"`</li><li>`\"evm_1100\"`</li><li>`\"evm_1101\"`</li><li>`\"evm_1329\"`</li><li>`\"evm_1672\"`</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_8819\"`</li><li>`\"evm_9745\"`</li><li>`\"evm_16661\"`</li><li>`\"evm_17000\"`</li><li>`\"evm_80001\"`</li><li>`\"evm_80094\"`</li><li>`\"evm_42161\"`</li><li>`\"evm_43114\"`</li><li>`\"evm_57073\"`</li><li>`\"evm_59144\"`</li><li>`\"evm_81457\"`</li><li>`\"evm_421614\"`</li><li>`\"evm_534352\"`</li><li>`\"evm_660279\"`</li><li>`\"evm_747474\"`</li><li>`\"evm_810180\"`</li><li>`\"evm_11155111\"`</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_rootstock_mainnet\"`</li><li>`\"evm_bsc_mainnet\"`</li><li>`\"evm_gnosis_mainnet\"`</li><li>`\"evm_unichain_mainnet\"`</li><li>`\"evm_polygon_mainnet\"`</li><li>`\"evm_monad_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_hyperevm_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_pharos_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_clink_testnet\"`</li><li>`\"evm_plasma_mainnet\"`</li><li>`\"evm_zero_gravity_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_ink_mainnet\"`</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_katana_mainnet\"`</li><li>`\"evm_zklink_nova_mainnet\"`</li><li>`\"evm_ethereum_sepolia\"`</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",
          "hyperevm_mainnet",
          "ink_mainnet",
          "kava_mainnet",
          "katana_mainnet",
          "linea_mainnet",
          "optimism_mainnet",
          "pharos_mainnet",
          "plasma_mainnet",
          "manta_pacific_mainnet",
          "mantle_mainnet",
          "merlin_mainnet",
          "monad_mainnet",
          "polygon_mainnet",
          "polygon_mumbai",
          "polygon_zkevm_mainnet",
          "reya_mainnet",
          "rootstock_mainnet",
          "scroll_mainnet",
          "sei_mainnet",
          "sonic_mainnet",
          "unichain_mainnet",
          "xai_mainnet",
          "zero_gravity_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>30=`rootstock_mainnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>130=`unichain_mainnet`</li><li>137=`polygon_mainnet`</li><li>143=`monad_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>999=`hyperevm_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1672=`pharos_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>8819=`clink_testnet`</li><li>9745=`plasma_mainnet`</li><li>16661=`zero_gravity_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>57073=`ink_mainnet`</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>747474=`katana_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</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_30\"`</li><li>`\"evm_56\"`</li><li>`\"evm_100\"`</li><li>`\"evm_130\"`</li><li>`\"evm_137\"`</li><li>`\"evm_143\"`</li><li>`\"evm_146\"`</li><li>`\"evm_169\"`</li><li>`\"evm_250\"`</li><li>`\"evm_324\"`</li><li>`\"evm_999\"`</li><li>`\"evm_1030\"`</li><li>`\"evm_1100\"`</li><li>`\"evm_1101\"`</li><li>`\"evm_1329\"`</li><li>`\"evm_1672\"`</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_8819\"`</li><li>`\"evm_9745\"`</li><li>`\"evm_16661\"`</li><li>`\"evm_17000\"`</li><li>`\"evm_80001\"`</li><li>`\"evm_80094\"`</li><li>`\"evm_42161\"`</li><li>`\"evm_43114\"`</li><li>`\"evm_57073\"`</li><li>`\"evm_59144\"`</li><li>`\"evm_81457\"`</li><li>`\"evm_421614\"`</li><li>`\"evm_534352\"`</li><li>`\"evm_660279\"`</li><li>`\"evm_747474\"`</li><li>`\"evm_810180\"`</li><li>`\"evm_11155111\"`</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_rootstock_mainnet\"`</li><li>`\"evm_bsc_mainnet\"`</li><li>`\"evm_gnosis_mainnet\"`</li><li>`\"evm_unichain_mainnet\"`</li><li>`\"evm_polygon_mainnet\"`</li><li>`\"evm_monad_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_hyperevm_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_pharos_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_clink_testnet\"`</li><li>`\"evm_plasma_mainnet\"`</li><li>`\"evm_zero_gravity_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_ink_mainnet\"`</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_katana_mainnet\"`</li><li>`\"evm_zklink_nova_mainnet\"`</li><li>`\"evm_ethereum_sepolia\"`</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."
          },
          "bridges": {
            "items": {
              "$ref": "#/components/schemas/EvmBridgesEffect"
            },
            "type": "array",
            "title": "Bridges",
            "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."
          },
          "set_code_authorizations": {
            "items": {
              "$ref": "#/components/schemas/SetCodeAuthorizationEffect"
            },
            "type": "array",
            "title": "Set Code Authorizations",
            "description": "The set code authorization effects of the transaction."
          }
        },
        "type": "object",
        "required": [
          "balance_changes",
          "transfers",
          "allowances",
          "bridge",
          "bridges",
          "contract_deployments",
          "set_code_authorizations"
        ],
        "title": "EvmEffects"
      },
      "EvmEffectsBase": {
        "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"
          },
          "transfers": {
            "items": {
              "$ref": "#/components/schemas/EvmTransferEffect"
            },
            "type": "array",
            "title": "Transfers",
            "description": "The transfer events of the transaction."
          },
          "allowances": {
            "items": {
              "$ref": "#/components/schemas/EvmAllowanceEffect"
            },
            "type": "array",
            "title": "Allowances",
            "description": "Allowances set or modified as a result of the transaction"
          },
          "bridges": {
            "items": {
              "$ref": "#/components/schemas/EvmBridgesEffect"
            },
            "type": "array",
            "title": "Bridges",
            "description": "The bridge effects of the transaction."
          }
        },
        "type": "object",
        "required": [
          "balance_changes",
          "transfers"
        ],
        "title": "EvmEffectsBase"
      },
      "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "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"
              },
              {
                "$ref": "#/components/schemas/SpotSwapTypedMessageEvmMessage"
              },
              {
                "$ref": "#/components/schemas/SafeTxTypedMessageEvmMessage"
              },
              {
                "$ref": "#/components/schemas/HyperliquidTypedMessageEvmMessage"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "hyperliquid": "#/components/schemas/HyperliquidTypedMessageEvmMessage",
                "permit": "#/components/schemas/PermitTypedMessageEvmMessage",
                "permit2": "#/components/schemas/Permit2TypedMessageEvmMessage",
                "safe_tx": "#/components/schemas/SafeTxTypedMessageEvmMessage",
                "spot_swap": "#/components/schemas/SpotSwapTypedMessageEvmMessage",
                "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."
          },
          "expected_result": {
            "description": "Predicted result of the message execution. Only available for intents that Fordefi knows how to simulate, like ERC20 allowances and swaps created in the Fordefi app.",
            "$ref": "#/components/schemas/EvmMessageResult"
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "signatures",
          "direction",
          "interacted_vaults",
          "organization_id",
          "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>30=`rootstock_mainnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>130=`unichain_mainnet`</li><li>137=`polygon_mainnet`</li><li>143=`monad_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>999=`hyperevm_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1672=`pharos_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>8819=`clink_testnet`</li><li>9745=`plasma_mainnet`</li><li>16661=`zero_gravity_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>57073=`ink_mainnet`</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>747474=`katana_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</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"
      },
      "EvmMessageResult": {
        "properties": {
          "effects": {
            "$ref": "#/components/schemas/EvmEffectsBase",
            "description": "Array of predicted transaction effects from simulation, including token balance changes and token allowances."
          }
        },
        "type": "object",
        "required": [
          "effects"
        ],
        "title": "EvmMessageResult"
      },
      "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"
      },
      "EvmRecipientHex": {
        "properties": {
          "type": {
            "type": "string",
            "const": "hex",
            "title": "Type",
            "description": "The type of the recipient."
          },
          "address": {
            "type": "string",
            "maxLength": 42,
            "minLength": 42,
            "pattern": "^0[xX][a-fA-F0-9]+$",
            "title": "Address",
            "description": "The address of the recipient.",
            "example": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          }
        },
        "type": "object",
        "required": [
          "type",
          "address"
        ],
        "title": "EvmRecipientHex"
      },
      "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"
      },
      "EvmSpotSwapDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "spot_swap",
            "title": "Type",
            "description": "A transaction involving the transfer of funds from one blockchain to another."
          },
          "spot_swap": {
            "$ref": "#/components/schemas/BaseSpotSwap",
            "description": "The spot swap details."
          }
        },
        "type": "object",
        "required": [
          "type",
          "spot_swap"
        ],
        "title": "EvmSpotSwapDetails"
      },
      "EvmSpotSwapFeeRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "evm",
            "title": "Type",
            "description": "EVM fee type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/GasPriorityRequest"
              }
            ],
            "description": "The gas details of the transaction.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "priority": "#/components/schemas/GasPriorityRequest"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "type",
          "details"
        ],
        "title": "EvmSpotSwapFeeRequest"
      },
      "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "block": {
            "description": "The block of the transaction.",
            "$ref": "#/components/schemas/Block"
          },
          "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_check": {
            "description": "The AML check.",
            "$ref": "#/components/schemas/AmlCheck"
          },
          "mined_result_status": {
            "description": "The mined result status of the transaction.",
            "$ref": "#/components/schemas/MinedResultStatus"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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"
          },
          "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."
          },
          "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"
              },
              {
                "$ref": "#/components/schemas/SetCodeDetails"
              }
            ],
            "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",
                "set_code": "#/components/schemas/SetCodeDetails",
                "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"
          },
          "expected_result": {
            "description": "The expected (simulated) result of the transaction.",
            "$ref": "#/components/schemas/EvmTransactionResult"
          },
          "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"
              }
            }
          },
          "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"
          },
          "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"
          },
          "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]+$"
          },
          "fee_payer": {
            "description": "The address that pays the fee for this transaction (from address).",
            "$ref": "#/components/schemas/EnrichedEvmAddress"
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "signatures",
          "direction",
          "interacted_vaults",
          "organization_id",
          "state",
          "state_changes",
          "is_cancelation",
          "is_acceleration",
          "type",
          "evm_transaction_type_details",
          "chain",
          "from",
          "to",
          "value",
          "data",
          "parsed_data",
          "gas_submitted",
          "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",
          "spot_swap",
          "set_code"
        ],
        "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",
          "from",
          "to"
        ],
        "title": "EvmTransferEffect"
      },
      "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "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."
          },
          "state": {
            "$ref": "#/components/schemas/MpcVaultState",
            "description": "New state 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"
          },
          "smart_contract_states": {
            "additionalProperties": {
              "$ref": "#/components/schemas/SmartContractState"
            },
            "type": "object",
            "title": "Smart Contract States",
            "description": "A dictionary of chain IDs to smart contract states."
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "name",
          "created_by",
          "vault_groups",
          "are_all_chains_disabled",
          "derivation_path",
          "public_key_compressed",
          "derivation_info",
          "origin_type",
          "state",
          "type",
          "address"
        ],
        "title": "EvmVault",
        "description": "Represents an EVM vault in the Fordefi platform"
      },
      "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",
          "exchange_kraken"
        ],
        "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"
      },
      "ExchangePortfolio": {
        "properties": {
          "portfolio_id": {
            "type": "string",
            "title": "Portfolio Id",
            "description": "The ID of the exchange portfolio."
          },
          "portfolio_name": {
            "type": "string",
            "title": "Portfolio Name",
            "description": "The name of the exchange portfolio."
          }
        },
        "type": "object",
        "required": [
          "portfolio_id",
          "portfolio_name"
        ],
        "title": "ExchangePortfolio"
      },
      "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_withdraw_funds`: Insufficient funds in exchange vault for withdraw or<li>`insufficient_exchange_deposit_minimum_amount`: Insufficient minimum amount for depositinsufficient withdraw amount to cover fee.</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_withdraw_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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "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."
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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"
          },
          "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",
          "interacted_vaults",
          "organization_id",
          "state",
          "state_changes",
          "type",
          "exchange_transaction_type_details"
        ],
        "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"
      },
      "ExchangeTransferExternalRecipientTypeContact": {
        "properties": {
          "type": {
            "type": "string",
            "const": "contact",
            "title": "Type",
            "description": "Transfer to an address book contact."
          },
          "contact_id": {
            "type": "string",
            "format": "uuid",
            "title": "Contact Id",
            "description": "The ID of the address book contact."
          }
        },
        "type": "object",
        "required": [
          "type",
          "contact_id"
        ],
        "title": "ExchangeTransferExternalRecipientTypeContact"
      },
      "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",
          "kraken"
        ],
        "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "type": {
            "type": "string",
            "const": "exchange",
            "title": "Type",
            "description": "EXCHANGE vault type."
          },
          "exchange_type": {
            "$ref": "#/components/schemas/ExchangeType",
            "description": "The exchange which holds this account."
          },
          "portfolio": {
            "description": "The portfolio of the exchange.",
            "$ref": "#/components/schemas/ExchangePortfolio"
          },
          "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."
          },
          "account": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/MasterAccount"
              },
              {
                "$ref": "#/components/schemas/SubAccount"
              }
            ],
            "description": "The account details.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "master": "#/components/schemas/MasterAccount",
                "sub": "#/components/schemas/SubAccount"
              }
            }
          },
          "state": {
            "$ref": "#/components/schemas/ExchangeVaultState",
            "description": "State of the vault."
          },
          "change_request_id": {
            "type": "string",
            "format": "uuid",
            "title": "Change Request Id",
            "description": "The ID of the change request."
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "name",
          "created_by",
          "vault_groups",
          "are_all_chains_disabled",
          "type",
          "exchange_type",
          "logo_url",
          "is_balance_data_outdated",
          "account",
          "state",
          "change_request_id"
        ],
        "title": "ExchangeVault",
        "description": "Represents an exchange account vault in the Fordefi platform"
      },
      "ExchangeVaultState": {
        "type": "string",
        "enum": [
          "active",
          "pending"
        ],
        "title": "ExchangeVaultState"
      },
      "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/ExportedResource",
            "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",
          "zip"
        ],
        "title": "ExportType"
      },
      "ExportedResource": {
        "type": "string",
        "enum": [
          "transaction",
          "backup_snapshot",
          "vault"
        ],
        "title": "ExportedResource"
      },
      "ExposureType": {
        "type": "string",
        "enum": [
          "direct",
          "indirect"
        ],
        "title": "ExposureType"
      },
      "FeePaidByVault": {
        "properties": {
          "type": {
            "type": "string",
            "const": "vault",
            "title": "Type",
            "description": "The type of fee payer."
          },
          "vault": {
            "$ref": "#/components/schemas/VaultRef",
            "description": "The vault that paid the fee for this transaction."
          }
        },
        "type": "object",
        "required": [
          "type",
          "vault"
        ],
        "title": "FeePaidByVault"
      },
      "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": {
          "total": {
            "type": "integer",
            "title": "Total"
          },
          "page": {
            "type": "integer",
            "title": "Page"
          },
          "size": {
            "type": "integer",
            "title": "Size"
          },
          "priced_assets": {
            "items": {
              "$ref": "#/components/schemas/PricedAssetResponse"
            },
            "type": "array",
            "title": "Priced Assets",
            "description": "The priced assets."
          }
        },
        "type": "object",
        "required": [
          "total",
          "page",
          "size",
          "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="
          },
          "encrypted_rsa_pem": {
            "title": "Encrypted Rsa Pem",
            "description": "Encrypted RSA private key used to encrypt the cosigner shares in PEM format.The encryption is done using `openssl cms -encrypt` command using the enclave's public certificate.If not provided, the default RSA key will be used.For more information, see https://docs.fordefi.com/user-guide/import-keys-fireblocks",
            "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"
      },
      "GenericCreateTransferRequest": {
        "properties": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "vault_id": {
            "type": "string",
            "format": "uuid",
            "title": "Vault Id",
            "description": "The ID of the vault to transfer from."
          },
          "to": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/TransferRecipientAddress"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "description": "The recipient of the transfer: an address, vault ID, or contact ID.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "address": "#/components/schemas/TransferRecipientAddress",
                "contact_id": "#/components/schemas/RecipientContactId",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "amount": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units of currency to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "asset_identifier": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/AptosAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/ArchAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/CantonAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/CosmosAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/EvmAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/ExchangeAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/SolanaAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/StacksAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/StellarAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/StarknetAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/SuiAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/TonAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/TronAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/UtxoAssetIdentifierRequest"
              }
            ],
            "description": "The asset to be transferred.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "aptos": "#/components/schemas/AptosAssetIdentifierRequest",
                "arch": "#/components/schemas/ArchAssetIdentifierRequest",
                "canton": "#/components/schemas/CantonAssetIdentifierRequest",
                "cosmos": "#/components/schemas/CosmosAssetIdentifierRequest",
                "evm": "#/components/schemas/EvmAssetIdentifierRequest",
                "exchange": "#/components/schemas/ExchangeAssetIdentifierRequest",
                "solana": "#/components/schemas/SolanaAssetIdentifierRequest",
                "stacks": "#/components/schemas/StacksAssetIdentifierRequest",
                "starknet": "#/components/schemas/StarknetAssetIdentifierRequest",
                "stellar": "#/components/schemas/StellarAssetIdentifierRequest",
                "sui": "#/components/schemas/SuiAssetIdentifierRequest",
                "ton": "#/components/schemas/TonAssetIdentifierRequest",
                "tron": "#/components/schemas/TronAssetIdentifierRequest",
                "utxo": "#/components/schemas/UtxoAssetIdentifierRequest"
              }
            }
          },
          "memo": {
            "title": "Memo",
            "description": "The memo of the transaction. Supported on chains: Canton, Cosmos, Stacks, Utxo, Tron, Ton",
            "type": "string"
          },
          "fee_priority": {
            "$ref": "#/components/schemas/FeePriorityLevelRequest",
            "description": "The fee priority of the transaction.",
            "default": "medium"
          },
          "note": {
            "title": "Note",
            "description": "An optional transaction note.",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "vault_id",
          "to",
          "amount",
          "asset_identifier"
        ],
        "title": "GenericCreateTransferRequest"
      },
      "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"
      },
      "GetProvidersResponse": {
        "properties": {
          "providers": {
            "items": {
              "$ref": "#/components/schemas/ProviderInfo"
            },
            "type": "array",
            "title": "Providers",
            "description": "The providers."
          }
        },
        "type": "object",
        "required": [
          "providers"
        ],
        "title": "GetProvidersResponse"
      },
      "GetQuotesRequest": {
        "properties": {
          "vault_id": {
            "type": "string",
            "format": "uuid",
            "title": "Vault Id",
            "description": "The unique identifier of the vault."
          },
          "input_asset_identifier": {
            "$ref": "#/components/schemas/AssetIdentifierRequest",
            "description": "The input asset identifier."
          },
          "output_asset_identifier": {
            "$ref": "#/components/schemas/AssetIdentifierRequest",
            "description": "The output asset identifier."
          },
          "amount": {
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "title": "Amount",
            "description": "The amount to swap.",
            "example": "1000000000000000000"
          },
          "slippage_bps": {
            "title": "Slippage Bps",
            "description": "The slippage tolerance in basis points.",
            "type": "string",
            "pattern": "^\\d+(\\.\\d+)?$",
            "example": "1000000000000000000"
          },
          "signer_type": {
            "$ref": "#/components/schemas/SignerType",
            "description": "The signer of the quote request. Can be: <ul><li>`initiator`: The creator of the quote request (default).<li>`api_signer`: A service that you run on your own network or cloud environment. </ul>",
            "default": "initiator"
          },
          "requested_provider_ids": {
            "items": {
              "$ref": "#/components/schemas/ProviderId"
            },
            "type": "array",
            "title": "Requested Provider Ids",
            "description": "The provider ids to use for the quote. If empty, all providers will be used."
          }
        },
        "type": "object",
        "required": [
          "vault_id",
          "input_asset_identifier",
          "output_asset_identifier",
          "amount"
        ],
        "title": "GetQuotesRequest"
      },
      "GetQuotesResponse": {
        "properties": {
          "providers_with_quote": {
            "items": {
              "$ref": "#/components/schemas/ProviderWithQuote"
            },
            "type": "array",
            "title": "Providers With Quote",
            "description": "The providers with quote."
          }
        },
        "type": "object",
        "required": [
          "providers_with_quote"
        ],
        "title": "GetQuotesResponse"
      },
      "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": "^\\d+(\\.\\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/TronMessage"
          },
          {
            "$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_message": "#/components/schemas/TronMessage",
            "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"
          },
          {
            "$ref": "#/components/schemas/SafeVault"
          }
        ],
        "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",
            "safe": "#/components/schemas/SafeVault",
            "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"
          }
        }
      },
      "HyperliquidActionType": {
        "type": "string",
        "enum": [
          "unknown_action",
          "withdraw",
          "usd_send",
          "spot_send",
          "vault_transfer",
          "send_asset"
        ],
        "title": "HyperliquidActionType"
      },
      "HyperliquidTypedMessageEvmMessage": {
        "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."
          },
          "enriched_addresses": {
            "additionalProperties": {
              "$ref": "#/components/schemas/EnrichedEvmAddress"
            },
            "type": "object",
            "title": "Enriched Addresses",
            "description": "Addresses that are related to this message, enriched with metadata.Please NOTE: the dictionary keys are EIP-55 checksummed addresses",
            "default": {}
          },
          "type": {
            "type": "string",
            "const": "hyperliquid",
            "title": "Type",
            "description": "The typed message type."
          },
          "action_type": {
            "$ref": "#/components/schemas/HyperliquidActionType",
            "description": "The Hyperliquid action type."
          },
          "hyperliquid_chain": {
            "type": "string",
            "title": "Hyperliquid Chain",
            "description": "Hyperliquid chain (Mainnet or Testnet).",
            "default": ""
          },
          "destination": {
            "title": "Destination",
            "description": "Destination address for transfers.",
            "type": "string"
          },
          "amount": {
            "title": "Amount",
            "description": "Amount value.",
            "type": "string"
          },
          "time": {
            "title": "Time",
            "description": "Timestamp (withdraw, usdSend, spotSend).",
            "type": "integer"
          },
          "nonce": {
            "title": "Nonce",
            "description": "Nonce (sendAsset, vaultTransfer).",
            "type": "integer"
          },
          "token": {
            "title": "Token",
            "description": "Token identifier (NAME:0xhexid format for spot tokens).",
            "type": "string"
          },
          "vault_address": {
            "title": "Vault Address",
            "description": "Vault address for vaultTransfer.",
            "type": "string"
          },
          "is_deposit": {
            "title": "Is Deposit",
            "description": "Whether vaultTransfer is a deposit.",
            "type": "boolean"
          },
          "signature_chain_id": {
            "title": "Signature Chain Id",
            "description": "Signature chain ID metadata.",
            "type": "string"
          },
          "source_dex": {
            "title": "Source Dex",
            "description": "Source dex for sendAsset (e.g. 'spot').",
            "type": "string"
          },
          "destination_dex": {
            "title": "Destination Dex",
            "description": "Destination dex for sendAsset.",
            "type": "string"
          },
          "from_sub_account": {
            "title": "From Sub Account",
            "description": "Sub-account origin for sendAsset.",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "domain",
          "primary_type",
          "type",
          "action_type"
        ],
        "title": "HyperliquidTypedMessageEvmMessage"
      },
      "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": {
            "title": "Default Address Derivation Path",
            "description": "The BIP-32 derivation path of the default address.",
            "example": "m/44/60/0/0/0",
            "type": "string",
            "pattern": "^(m/44/[0-9]+/[0-9]+/[0-9]+/[0-9]+|m)$"
          },
          "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_name",
          "key_id"
        ],
        "title": "ImportVaultUtxoOptions"
      },
      "IncomingAmlCheck": {
        "properties": {
          "policy_match": {
            "$ref": "#/components/schemas/AmlPolicyMatchIncoming",
            "description": "The AML policy match for incoming transactions."
          },
          "users_eligible_to_unfreeze": {
            "title": "Users Eligible To Unfreeze",
            "description": "list of possible approvers",
            "items": {
              "$ref": "#/components/schemas/RequestApprover"
            },
            "type": "array"
          },
          "frozen": {
            "title": "Frozen",
            "description": "Whether the transaction is frozen.",
            "type": "boolean"
          }
        },
        "type": "object",
        "required": [
          "policy_match"
        ],
        "title": "IncomingAmlCheck"
      },
      "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"
      },
      "JitoSolanaSuggestedFees": {
        "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"
          },
          "fee_type": {
            "type": "string",
            "const": "jito",
            "title": "Fee Type",
            "description": "The type of the fee."
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain_unique_id",
          "base_fee",
          "low",
          "medium",
          "high",
          "fee_type"
        ],
        "title": "JitoSolanaSuggestedFees"
      },
      "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"
      },
      "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"
      },
      "ListVaultsSortableFields": {
        "type": "string",
        "enum": [
          "created_at_asc",
          "created_at_desc",
          "name_asc",
          "name_desc",
          "vault_type_asc",
          "vault_type_desc",
          "is_favorite_asc",
          "is_favorite_desc"
        ],
        "title": "ListVaultsSortableFields"
      },
      "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"
          },
          "fee_paid_by": {
            "description": "Details of the vault that paid the fee for this transaction.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/FeePaidByVault"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "vault": "#/components/schemas/FeePaidByVault"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "created_by",
          "signer_type",
          "risks",
          "vault",
          "has_current_user_vault_permissions"
        ],
        "title": "ManagedTransactionData"
      },
      "MasterAccount": {
        "properties": {
          "type": {
            "type": "string",
            "const": "master",
            "title": "Type",
            "description": "Exchange vault for a master account."
          },
          "api_key": {
            "type": "string",
            "title": "Api Key",
            "description": "The API-key of this exchange account."
          }
        },
        "type": "object",
        "required": [
          "type",
          "api_key"
        ],
        "title": "MasterAccount"
      },
      "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"
      },
      "MinedResultStatus": {
        "type": "string",
        "enum": [
          "success",
          "missing",
          "potentially_partial"
        ],
        "title": "MinedResultStatus"
      },
      "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"
      },
      "MpcVaultState": {
        "type": "string",
        "enum": [
          "active",
          "archived"
        ],
        "title": "MpcVaultState"
      },
      "NonPushableTransactionState": {
        "type": "string",
        "enum": [
          "waiting_for_approval",
          "waiting_for_signing_trigger",
          "approved",
          "signed",
          "sent_to_provider",
          "completed",
          "error_signing",
          "aborted",
          "error_submitting_to_provider",
          "dropped"
        ],
        "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.\nFAIL_ON_ERROR: The response will fail if there are any errors.\nINCLUDE_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"
      },
      "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."
          },
          "enriched_addresses": {
            "additionalProperties": {
              "$ref": "#/components/schemas/EnrichedEvmAddress"
            },
            "type": "object",
            "title": "Enriched Addresses",
            "description": "Addresses that are related to this message, enriched with metadata.Please NOTE: the dictionary keys are EIP-55 checksummed addresses",
            "default": {}
          },
          "type": {
            "type": "string",
            "const": "permit2",
            "title": "Type",
            "description": "The typed message type."
          },
          "deadline": {
            "type": "string",
            "format": "date-time",
            "title": "Deadline",
            "description": "Signature deadline."
          }
        },
        "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."
          },
          "enriched_addresses": {
            "additionalProperties": {
              "$ref": "#/components/schemas/EnrichedEvmAddress"
            },
            "type": "object",
            "title": "Enriched Addresses",
            "description": "Addresses that are related to this message, enriched with metadata.Please NOTE: the dictionary keys are EIP-55 checksummed addresses",
            "default": {}
          },
          "type": {
            "type": "string",
            "const": "permit",
            "title": "Type",
            "description": "The typed message type."
          },
          "deadline": {
            "type": "string",
            "format": "date-time",
            "title": "Deadline",
            "description": "The deadline."
          },
          "nonce": {
            "type": "integer",
            "title": "Nonce",
            "description": "The nonce."
          }
        },
        "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_pending_code_generation`: The user has been approved but still needs to generate a code for the user.<li>`onboarding_pending_activation`: The user has been generated a code but still needs to activate the account with it.<li>`pending_approval`: The user has been invited but not yet approved.<li>`deleted`: The user has been deleted.</ul>"
          },
          "acknowledged_banners": {
            "items": {
              "$ref": "#/components/schemas/BannerType"
            },
            "type": "array",
            "title": "Acknowledged Banners",
            "description": "The banners that the user has acknowledged."
          },
          "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"
          },
          "invited_by": {
            "description": "The user that invited the person.",
            "$ref": "#/components/schemas/UserRef"
          },
          "device_reset_by": {
            "description": "If the user's device is currently being reset, this field will contain the user that initiated the operation.",
            "$ref": "#/components/schemas/UserRef"
          },
          "approval_request": {
            "description": "The approval request.",
            "$ref": "#/components/schemas/ApprovalRequest"
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "user_type",
          "email",
          "state",
          "acknowledged_banners",
          "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"
      },
      "PersonalMessageDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "personal_message_type",
            "title": "Type",
            "description": "The type of the Solana message."
          }
        },
        "type": "object",
        "required": [
          "type"
        ],
        "title": "PersonalMessageDetails"
      },
      "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."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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
          },
          "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
          },
          "gas_config": {
            "description": "The gas configuration for the transaction.",
            "$ref": "#/components/schemas/AptosGasConfigRequest"
          },
          "with_external_fee_payer": {
            "type": "boolean",
            "title": "With External Fee Payer",
            "description": "If true, the transaction's Authenticator will be configured to support an external fee payer. After Fordefi signs the transaction, the client is responsible for forwarding it to the designated fee payer for final signing and broadcasting.",
            "default": false
          },
          "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="
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain",
          "serialized_transaction_payload"
        ],
        "title": "PredictAptosSerializedRawTransactionRequest"
      },
      "PredictAptosTransferRequest": {
        "properties": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "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
          },
          "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
          },
          "gas_config": {
            "description": "The gas configuration for the transaction.",
            "$ref": "#/components/schemas/AptosGasConfigRequest"
          },
          "with_external_fee_payer": {
            "type": "boolean",
            "title": "With External Fee Payer",
            "description": "If true, the transaction's Authenticator will be configured to support an external fee payer. After Fordefi signs the transaction, the client is responsible for forwarding it to the designated fee payer for final signing and broadcasting.",
            "default": false
          },
          "to": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/AptosRecipientHex"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "contact_id": "#/components/schemas/RecipientContactId",
                "hex": "#/components/schemas/AptosRecipientHex",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units of currency to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "asset_identifier": {
            "$ref": "#/components/schemas/AptosAssetIdentifierRequest",
            "description": "The Aptos asset identifier to transfer."
          }
        },
        "type": "object",
        "required": [
          "type",
          "to",
          "value",
          "asset_identifier"
        ],
        "title": "PredictAptosTransferRequest"
      },
      "PredictBatchSolanaTransactionRequest": {
        "properties": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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"
          },
          {
            "$ref": "#/components/schemas/PredictBatchUtxoDlcTransactionRequest"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "solana_transaction": "#/components/schemas/PredictBatchSolanaTransactionRequest",
            "utxo_dlc_transaction": "#/components/schemas/PredictBatchUtxoDlcTransactionRequest"
          }
        }
      },
      "PredictBatchTransactionResponse": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/PredictedBatchSolanaTransaction"
          },
          {
            "$ref": "#/components/schemas/PredictedUtxoDlcTransaction"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "solana_transaction": "#/components/schemas/PredictedBatchSolanaTransaction",
            "utxo_dlc_transaction": "#/components/schemas/PredictedUtxoDlcTransaction"
          }
        }
      },
      "PredictBatchUtxoDlcTransactionRequest": {
        "properties": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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_dlc_transaction",
            "title": "Type",
            "description": "The type of the transaction."
          },
          "details": {
            "$ref": "#/components/schemas/BatchDlcTransactionRequestDetails",
            "description": "The DLC transaction details."
          }
        },
        "type": "object",
        "required": [
          "vault_id",
          "type",
          "details"
        ],
        "title": "PredictBatchUtxoDlcTransactionRequest"
      },
      "PredictSpotSwapRequest": {
        "properties": {
          "quote_id": {
            "type": "string",
            "format": "uuid",
            "title": "Quote Id",
            "description": "The ID of the quote."
          },
          "vault_id": {
            "type": "string",
            "format": "uuid",
            "title": "Vault Id",
            "description": "The unique identifier of the vault."
          },
          "input_asset_identifier": {
            "$ref": "#/components/schemas/AssetIdentifierRequest",
            "description": "The input asset identifier."
          },
          "output_asset_identifier": {
            "$ref": "#/components/schemas/AssetIdentifierRequest",
            "description": "The output asset identifier."
          },
          "amount": {
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "title": "Amount",
            "description": "The amount to swap.",
            "example": "1000000000000000000"
          },
          "slippage_bps": {
            "title": "Slippage Bps",
            "description": "The slippage tolerance in basis points.",
            "type": "string",
            "pattern": "^\\d+(\\.\\d+)?$",
            "example": "1000000000000000000"
          },
          "fee": {
            "description": "The fee configuration for the transaction.",
            "$ref": "#/components/schemas/SpotSwapFeeRequest"
          },
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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
          }
        },
        "type": "object",
        "required": [
          "quote_id",
          "vault_id",
          "input_asset_identifier",
          "output_asset_identifier",
          "amount"
        ],
        "title": "PredictSpotSwapRequest"
      },
      "PredictStacksTransactionRequest": {
        "properties": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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"
      },
      "PredictSwapErrorType": {
        "type": "string",
        "enum": [
          "revoke_allowance_first",
          "quote_not_found",
          "transaction_uses_secure_node"
        ],
        "title": "PredictSwapErrorType"
      },
      "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. <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 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/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"
          }
        },
        "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. <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 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/TonRecipientHex"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "contact_id": "#/components/schemas/RecipientContactId",
                "hex": "#/components/schemas/TonRecipientHex",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units of currency to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "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"
          }
        },
        "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/PredictTronMessageRequest"
          },
          {
            "$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_message": "#/components/schemas/PredictTronMessageRequest",
            "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/PredictedTronMessage"
          },
          {
            "$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_message": "#/components/schemas/PredictedTronMessage",
            "tron_transaction": "#/components/schemas/PredictedTronTransaction",
            "utxo_message": "#/components/schemas/PredictedUtxoMessage",
            "utxo_transaction": "#/components/schemas/PredictedUtxoTransaction"
          }
        }
      },
      "PredictTronMessageRequest": {
        "properties": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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_message",
            "title": "Type",
            "description": "TRON message type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/TronTypedMessageV1Request"
              },
              {
                "$ref": "#/components/schemas/TronTypedMessageV2Request"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "typed_message_type_v1": "#/components/schemas/TronTypedMessageV1Request",
                "typed_message_type_v2": "#/components/schemas/TronTypedMessageV2Request"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "vault_id",
          "type",
          "details"
        ],
        "title": "PredictTronMessageRequest"
      },
      "PredictedAptosMessage": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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": [
          "matched_policies",
          "risks",
          "type",
          "chain",
          "sender",
          "aptos_message_type",
          "message_to_display"
        ],
        "title": "PredictedAptosMessage"
      },
      "PredictedAptosTransaction": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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_policy_match": {
            "description": "The AML policy match.",
            "$ref": "#/components/schemas/AmlPolicyMatchOutgoing"
          },
          "aml_results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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."
          },
          "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."
          },
          "with_external_fee_payer": {
            "type": "boolean",
            "title": "With External Fee Payer",
            "description": "If true, the transaction's Authenticator will be configured to support an external fee payer. After Fordefi signs the transaction, the client is responsible for forwarding it to the designated fee payer for final signing and broadcasting.",
            "default": false
          },
          "fee_payer": {
            "description": "The address of the fee payer vault for sponsored transactions.",
            "$ref": "#/components/schemas/EnrichedAptosAddress"
          },
          "sender": {
            "$ref": "#/components/schemas/EnrichedAptosAddress",
            "description": "The sender of the transaction."
          }
        },
        "type": "object",
        "required": [
          "matched_policies",
          "risks",
          "type",
          "expected_result",
          "chain",
          "payload",
          "aptos_transaction_type_details",
          "suggested_fees",
          "gas_submitted",
          "sender"
        ],
        "title": "PredictedAptosTransaction"
      },
      "PredictedArchTransaction": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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_policy_match": {
            "description": "The AML policy match.",
            "$ref": "#/components/schemas/AmlPolicyMatchOutgoing"
          },
          "aml_results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "type": {
            "type": "string",
            "const": "arch_transaction",
            "title": "Type",
            "description": "ARCH transaction type."
          },
          "expected_result": {
            "$ref": "#/components/schemas/ArchTransactionResult",
            "description": "The expected result of the transaction in case it is mined."
          },
          "chain": {
            "$ref": "#/components/schemas/EnrichedArchChain",
            "description": "The details of the chain that this message is on."
          },
          "arch_transaction_type_details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ArchNativeTransferDetails"
              },
              {
                "$ref": "#/components/schemas/ArchTokenTransferDetails"
              },
              {
                "$ref": "#/components/schemas/ArchRawTransactionDetails"
              }
            ],
            "description": "Details of the Arch transaction based on its type.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "native_transfer": "#/components/schemas/ArchNativeTransferDetails",
                "raw_transaction": "#/components/schemas/ArchRawTransactionDetails",
                "token_transfer": "#/components/schemas/ArchTokenTransferDetails"
              }
            }
          },
          "sender": {
            "$ref": "#/components/schemas/EnrichedArchAddress",
            "description": "The sender of the transaction."
          },
          "instructions": {
            "items": {
              "$ref": "#/components/schemas/ArchCompiledInstruction"
            },
            "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="
          }
        },
        "type": "object",
        "required": [
          "matched_policies",
          "risks",
          "type",
          "expected_result",
          "chain",
          "arch_transaction_type_details",
          "sender",
          "instructions"
        ],
        "title": "PredictedArchTransaction"
      },
      "PredictedBatchSolanaTransaction": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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_policy_match": {
            "description": "The AML policy match.",
            "$ref": "#/components/schemas/AmlPolicyMatchOutgoing"
          },
          "aml_results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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."
          },
          "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/PrioritySolanaSuggestedFees",
            "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."
          },
          "fee_payer": {
            "description": "The address that pays the fee for this transaction (first account in the transaction).",
            "$ref": "#/components/schemas/EnrichedSolanaAddress"
          },
          "type": {
            "type": "string",
            "const": "solana_transaction",
            "title": "Type",
            "description": "The type of the transaction."
          }
        },
        "type": "object",
        "required": [
          "matched_policies",
          "risks",
          "expected_result",
          "chain",
          "solana_transaction_type_details",
          "sender",
          "suggested_fees",
          "instructions",
          "was_fee_set_in_request",
          "type"
        ],
        "title": "PredictedBatchSolanaTransaction"
      },
      "PredictedCosmosMessage": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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": [
          "matched_policies",
          "risks",
          "type",
          "chain",
          "sender",
          "cosmos_message_type",
          "message_to_display"
        ],
        "title": "PredictedCosmosMessage"
      },
      "PredictedCosmosTransaction": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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_policy_match": {
            "description": "The AML policy match.",
            "$ref": "#/components/schemas/AmlPolicyMatchOutgoing"
          },
          "aml_results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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": [
          "matched_policies",
          "risks",
          "type",
          "expected_result",
          "chain",
          "cosmos_transaction_type_details",
          "sender",
          "suggested_fees"
        ],
        "title": "PredictedCosmosTransaction"
      },
      "PredictedEvmMessage": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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"
              },
              {
                "$ref": "#/components/schemas/SpotSwapTypedMessageEvmMessage"
              },
              {
                "$ref": "#/components/schemas/SafeTxTypedMessageEvmMessage"
              },
              {
                "$ref": "#/components/schemas/HyperliquidTypedMessageEvmMessage"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "hyperliquid": "#/components/schemas/HyperliquidTypedMessageEvmMessage",
                "permit": "#/components/schemas/PermitTypedMessageEvmMessage",
                "permit2": "#/components/schemas/Permit2TypedMessageEvmMessage",
                "safe_tx": "#/components/schemas/SafeTxTypedMessageEvmMessage",
                "spot_swap": "#/components/schemas/SpotSwapTypedMessageEvmMessage",
                "unknown": "#/components/schemas/UnknownTypedMessageEvmMessage"
              }
            }
          },
          "message_to_display": {
            "type": "string",
            "title": "Message To Display",
            "description": "User-friendly formatting of the message to be signed."
          },
          "expected_result": {
            "$ref": "#/components/schemas/EvmMessageResult",
            "description": "Predicted outcome of message execution when simulation is available. Simulation is supported for specific intent types including ERC20 Permit messages and swaps created via the Fordefi web console. Is empty when simulation is not available for the intent type."
          }
        },
        "type": "object",
        "required": [
          "matched_policies",
          "risks",
          "type",
          "chain",
          "sender",
          "evm_message_type",
          "message_to_display",
          "expected_result",
          "suggested_fees"
        ],
        "title": "PredictedEvmMessage"
      },
      "PredictedEvmTransaction": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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_policy_match": {
            "description": "The AML policy match.",
            "$ref": "#/components/schemas/AmlPolicyMatchOutgoing"
          },
          "aml_results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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."
          },
          "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"
              },
              {
                "$ref": "#/components/schemas/SetCodeDetails"
              }
            ],
            "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",
                "set_code": "#/components/schemas/SetCodeDetails",
                "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"
              }
            }
          },
          "fee_payer": {
            "description": "The address that pays the fee for this transaction (from address).",
            "$ref": "#/components/schemas/EnrichedEvmAddress"
          }
        },
        "type": "object",
        "required": [
          "matched_policies",
          "risks",
          "type",
          "expected_result",
          "chain",
          "evm_transaction_type_details",
          "parsed_data",
          "suggested_fees",
          "sender",
          "to",
          "gas_submitted"
        ],
        "title": "PredictedEvmTransaction"
      },
      "PredictedExchangeTransaction": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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_policy_match": {
            "description": "The AML policy match.",
            "$ref": "#/components/schemas/AmlPolicyMatchOutgoing"
          },
          "aml_results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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."
          },
          "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": [
          "matched_policies",
          "risks",
          "type",
          "expected_result",
          "exchange_transaction_type_details"
        ],
        "title": "PredictedExchangeTransaction"
      },
      "PredictedSolanaMessage": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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."
          },
          "solana_message_type_details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/PersonalMessageDetails"
              },
              {
                "$ref": "#/components/schemas/CreateSessionDetails"
              }
            ],
            "description": "The details of the Solana message.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "create_session_message_type": "#/components/schemas/CreateSessionDetails",
                "personal_message_type": "#/components/schemas/PersonalMessageDetails"
              }
            }
          },
          "expected_result": {
            "$ref": "#/components/schemas/SolanaMessageResult",
            "description": "Simulation is supported only for Fogo session intent messages. Is empty when simulation is not available for the intent type."
          },
          "message_to_display": {
            "type": "string",
            "title": "Message To Display",
            "description": "User-friendly formatting of the message to be signed."
          }
        },
        "type": "object",
        "required": [
          "matched_policies",
          "risks",
          "type",
          "chain",
          "sender",
          "solana_message_type",
          "solana_message_type_details",
          "expected_result",
          "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": "^\\d+(\\.\\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/JitoSolanaSuggestedFees",
            "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": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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_policy_match": {
            "description": "The AML policy match.",
            "$ref": "#/components/schemas/AmlPolicyMatchOutgoing"
          },
          "aml_results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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."
          },
          "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/PrioritySolanaSuggestedFees",
            "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."
          },
          "fee_payer": {
            "description": "The address that pays the fee for this transaction (first account in the transaction).",
            "$ref": "#/components/schemas/EnrichedSolanaAddress"
          },
          "type": {
            "type": "string",
            "const": "solana_transaction",
            "title": "Type",
            "description": "The type of the transaction."
          }
        },
        "type": "object",
        "required": [
          "matched_policies",
          "risks",
          "expected_result",
          "chain",
          "solana_transaction_type_details",
          "sender",
          "suggested_fees",
          "instructions",
          "was_fee_set_in_request",
          "type"
        ],
        "title": "PredictedSolanaTransaction"
      },
      "PredictedSpotSwap": {
        "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/PredictedTronMessage"
          },
          {
            "$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_message": "#/components/schemas/PredictedTronMessage",
            "tron_transaction": "#/components/schemas/PredictedTronTransaction",
            "utxo_message": "#/components/schemas/PredictedUtxoMessage",
            "utxo_transaction": "#/components/schemas/PredictedUtxoTransaction"
          }
        }
      },
      "PredictedStacksTransaction": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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_policy_match": {
            "description": "The AML policy match.",
            "$ref": "#/components/schemas/AmlPolicyMatchOutgoing"
          },
          "aml_results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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."
          },
          "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": [
          "matched_policies",
          "risks",
          "type",
          "post_conditions",
          "expected_result",
          "chain",
          "stacks_transaction_type_details",
          "serialized_payload",
          "suggested_fees",
          "sender"
        ],
        "title": "PredictedStacksTransaction"
      },
      "PredictedStarknetMessage": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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": [
          "matched_policies",
          "risks",
          "type",
          "chain",
          "sender",
          "starknet_message_type",
          "message_to_display"
        ],
        "title": "PredictedStarknetMessage"
      },
      "PredictedStarknetTransaction": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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_policy_match": {
            "description": "The AML policy match.",
            "$ref": "#/components/schemas/AmlPolicyMatchOutgoing"
          },
          "aml_results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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."
          },
          "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": [
          "matched_policies",
          "risks",
          "type",
          "expected_result",
          "chain",
          "starknet_transaction_type_details",
          "suggested_fees",
          "sender",
          "call_data"
        ],
        "title": "PredictedStarknetTransaction"
      },
      "PredictedSuiMessage": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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": [
          "matched_policies",
          "risks",
          "type",
          "chain",
          "sender",
          "sui_message_type",
          "message_to_display"
        ],
        "title": "PredictedSuiMessage"
      },
      "PredictedSuiTransaction": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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_policy_match": {
            "description": "The AML policy match.",
            "$ref": "#/components/schemas/AmlPolicyMatchOutgoing"
          },
          "aml_results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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."
          },
          "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."
          },
          "fee_payer": {
            "description": "The address that pays the fee for this transaction (gas owner).",
            "$ref": "#/components/schemas/EnrichedSuiAddress"
          }
        },
        "type": "object",
        "required": [
          "matched_policies",
          "risks",
          "type",
          "expected_result",
          "chain",
          "sui_transaction_type_details",
          "gas_submitted",
          "sender",
          "suggested_fees"
        ],
        "title": "PredictedSuiTransaction"
      },
      "PredictedTonMessage": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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": [
          "matched_policies",
          "risks",
          "type",
          "chain",
          "sender",
          "ton_message_type",
          "message_to_display"
        ],
        "title": "PredictedTonMessage"
      },
      "PredictedTonTransaction": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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_policy_match": {
            "description": "The AML policy match.",
            "$ref": "#/components/schemas/AmlPolicyMatchOutgoing"
          },
          "aml_results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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."
          },
          "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": [
          "matched_policies",
          "risks",
          "type",
          "expected_result",
          "chain",
          "payload",
          "ton_transaction_type_details",
          "suggested_fees",
          "sender"
        ],
        "title": "PredictedTonTransaction"
      },
      "PredictedTronMessage": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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": "tron_message",
            "title": "Type",
            "description": "TRON message type."
          },
          "tron_message_type": {
            "$ref": "#/components/schemas/TronMessageType",
            "description": "The type of the Tron message."
          },
          "chain": {
            "$ref": "#/components/schemas/EnrichedTronChain",
            "description": "The details of the chain that this message is on."
          },
          "sender": {
            "$ref": "#/components/schemas/EnrichedTronAddress",
            "description": "The sender of the message."
          },
          "message_to_display": {
            "type": "string",
            "title": "Message To Display",
            "description": "User-friendly formatting of the message to be signed."
          }
        },
        "type": "object",
        "required": [
          "matched_policies",
          "risks",
          "type",
          "tron_message_type",
          "chain",
          "sender",
          "message_to_display"
        ],
        "title": "PredictedTronMessage"
      },
      "PredictedTronTransaction": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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_policy_match": {
            "description": "The AML policy match.",
            "$ref": "#/components/schemas/AmlPolicyMatchOutgoing"
          },
          "aml_results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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."
          },
          "tron_transaction_type_details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/TronNativeTransferDetails"
              },
              {
                "$ref": "#/components/schemas/TronTokenTransferDetails"
              },
              {
                "$ref": "#/components/schemas/TronStakeDetails"
              },
              {
                "$ref": "#/components/schemas/TronUnstakeDetails"
              },
              {
                "$ref": "#/components/schemas/TronDelegateDetails"
              },
              {
                "$ref": "#/components/schemas/TronUndelegateDetails"
              },
              {
                "$ref": "#/components/schemas/TronContractCallDetails"
              }
            ],
            "description": "Details of the tron transaction based on its type.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "contract_call": "#/components/schemas/TronContractCallDetails",
                "delegate": "#/components/schemas/TronDelegateDetails",
                "native_transfer": "#/components/schemas/TronNativeTransferDetails",
                "stake": "#/components/schemas/TronStakeDetails",
                "token_transfer": "#/components/schemas/TronTokenTransferDetails",
                "undelegate": "#/components/schemas/TronUndelegateDetails",
                "unstake": "#/components/schemas/TronUnstakeDetails"
              }
            }
          },
          "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": [
          "matched_policies",
          "risks",
          "type",
          "expected_result",
          "chain",
          "tron_transaction_type_details",
          "sender"
        ],
        "title": "PredictedTronTransaction"
      },
      "PredictedUtxoDlcTransaction": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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_policy_match": {
            "description": "The AML policy match.",
            "$ref": "#/components/schemas/AmlPolicyMatchOutgoing"
          },
          "aml_results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "type": {
            "type": "string",
            "const": "utxo_dlc_transaction",
            "title": "Type",
            "description": "The type of the batch."
          },
          "funding_transaction": {
            "$ref": "#/components/schemas/PredictedUtxoTransaction",
            "description": "The funding transaction."
          },
          "refund_transaction": {
            "$ref": "#/components/schemas/PredictedUtxoTransaction",
            "description": "The refund transaction."
          },
          "cet_transactions": {
            "items": {
              "$ref": "#/components/schemas/PredictedUtxoTransaction"
            },
            "type": "array",
            "title": "Cet Transactions",
            "description": "The Contract Execution Transactions."
          }
        },
        "type": "object",
        "required": [
          "matched_policies",
          "risks",
          "type",
          "funding_transaction",
          "refund_transaction",
          "cet_transactions"
        ],
        "title": "PredictedUtxoDlcTransaction"
      },
      "PredictedUtxoMessage": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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": [
          "matched_policies",
          "risks",
          "type",
          "chain",
          "sender",
          "utxo_message_type",
          "message_to_display"
        ],
        "title": "PredictedUtxoMessage"
      },
      "PredictedUtxoTransaction": {
        "properties": {
          "policy_match": {
            "description": "The policy match.",
            "$ref": "#/components/schemas/PolicyMatch"
          },
          "matched_policies": {
            "items": {
              "$ref": "#/components/schemas/PolicyMatch"
            },
            "type": "array",
            "title": "Matched Policies",
            "description": "List of policies matched by the transactions in the batch."
          },
          "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_policy_match": {
            "description": "The AML policy match.",
            "$ref": "#/components/schemas/AmlPolicyMatchOutgoing"
          },
          "aml_results": {
            "description": "The AML results.",
            "$ref": "#/components/schemas/AmlResults"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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": [
          "matched_policies",
          "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"
          }
        }
      },
      "PrioritySolanaSuggestedFees": {
        "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"
          },
          "fee_type": {
            "type": "string",
            "const": "priority_fee",
            "title": "Fee Type",
            "description": "The type of the fee."
          },
          "unit_prices": {
            "$ref": "#/components/schemas/SolanaUnitPrices",
            "description": "The unit prices for the suggested fees."
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain_unique_id",
          "base_fee",
          "low",
          "medium",
          "high",
          "fee_type",
          "unit_prices"
        ],
        "title": "PrioritySolanaSuggestedFees"
      },
      "ProviderFee": {
        "properties": {
          "priced_asset": {
            "$ref": "#/components/schemas/PricedAsset",
            "description": "The information of the asset used to pay the provider fee."
          },
          "amount": {
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "title": "Amount",
            "description": "The amount of the provider fee.",
            "example": "1000000000000000000"
          }
        },
        "type": "object",
        "required": [
          "priced_asset",
          "amount"
        ],
        "title": "ProviderFee"
      },
      "ProviderId": {
        "type": "string",
        "enum": [
          "oneinch",
          "cowswap",
          "uniswap",
          "jupiter",
          "kyberswap",
          "layerzero",
          "paraswap"
        ],
        "title": "ProviderId"
      },
      "ProviderInfo": {
        "properties": {
          "provider_id": {
            "$ref": "#/components/schemas/ProviderId",
            "description": "The provider ID."
          },
          "provider_name": {
            "type": "string",
            "title": "Provider Name",
            "description": "The provider name."
          }
        },
        "type": "object",
        "required": [
          "provider_id",
          "provider_name"
        ],
        "title": "ProviderInfo"
      },
      "ProviderWithQuote": {
        "properties": {
          "provider_info": {
            "$ref": "#/components/schemas/ProviderInfo",
            "description": "The provider info."
          },
          "quote": {
            "description": "The quote.",
            "$ref": "#/components/schemas/Quote"
          },
          "api_error": {
            "description": "The API error.",
            "$ref": "#/components/schemas/ApiError"
          }
        },
        "type": "object",
        "required": [
          "provider_info"
        ],
        "title": "ProviderWithQuote"
      },
      "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\n        chain. Currently only needs to be specified for Cosmos transactions\n        that have been created in Amino format. For all other\n        transaction types, this field must be omitted, and the request must have\n        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/TronMessage"
          },
          {
            "$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_message": "#/components/schemas/TronMessage",
            "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",
          "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"
      },
      "Quote": {
        "properties": {
          "quote_id": {
            "type": "string",
            "format": "uuid",
            "title": "Quote Id",
            "description": "The ID of the quote."
          },
          "provider_info": {
            "$ref": "#/components/schemas/ProviderInfo",
            "description": "The provider info."
          },
          "provider_source": {
            "title": "Provider Source",
            "description": "The source of the swap provider.",
            "type": "string"
          },
          "input_asset_identifier": {
            "$ref": "#/components/schemas/AssetIdentifier",
            "description": "The input asset identifier."
          },
          "input_amount": {
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "title": "Input Amount",
            "description": "The input amount.",
            "example": "1000000000000000000"
          },
          "output_asset_identifier": {
            "$ref": "#/components/schemas/AssetIdentifier",
            "description": "The output asset identifier."
          },
          "output_amount": {
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "title": "Output Amount",
            "description": "The output amount.",
            "example": "1000000000000000000"
          },
          "slippage_bps": {
            "type": "string",
            "pattern": "^\\d+(\\.\\d+)?$",
            "title": "Slippage Bps",
            "description": "The slippage tolerance in basis points.",
            "example": "1000000000000000000"
          },
          "price_impact_pct": {
            "title": "Price Impact Pct",
            "description": "The price impact as a percentage.",
            "type": "string",
            "pattern": "^\\d+(\\.\\d+)?$",
            "example": "1000000000000000000"
          },
          "price": {
            "title": "Price",
            "description": "The USD value of the swap.",
            "type": "string",
            "pattern": "^\\d+(\\.\\d+)?$",
            "example": "1000000000000000000"
          },
          "expiration_time": {
            "type": "string",
            "format": "date-time",
            "title": "Expiration Time",
            "description": "The time when the quote expires."
          },
          "estimated_duration_milliseconds": {
            "title": "Estimated Duration Milliseconds",
            "description": "The estimated duration of the swap in milliseconds.",
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "example": "1000000000000000000"
          },
          "provider_fee": {
            "description": "The provider fee of the swap.",
            "$ref": "#/components/schemas/ProviderFee"
          }
        },
        "type": "object",
        "required": [
          "quote_id",
          "provider_info",
          "input_asset_identifier",
          "input_amount",
          "output_asset_identifier",
          "output_amount",
          "slippage_bps",
          "expiration_time"
        ],
        "title": "Quote"
      },
      "RateLimitError": {
        "properties": {},
        "type": "object",
        "title": "RateLimitError"
      },
      "RecipientContactId": {
        "properties": {
          "type": {
            "type": "string",
            "const": "contact_id",
            "title": "Type",
            "description": "The type of the recipient."
          },
          "contact_id": {
            "type": "string",
            "format": "uuid",
            "title": "Contact Id",
            "description": "The id of the address book contact."
          }
        },
        "type": "object",
        "required": [
          "type",
          "contact_id"
        ],
        "title": "RecipientContactId"
      },
      "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"
      },
      "RejectedTransactionSummary": {
        "properties": {
          "safe_tx_hash": {
            "type": "string",
            "title": "Safe Tx Hash",
            "description": "The Safe transaction hash being rejected."
          },
          "to": {
            "$ref": "#/components/schemas/EnrichedEvmAddress",
            "description": "The target address of the rejected transaction."
          },
          "value": {
            "type": "string",
            "pattern": "^-?\\d+$",
            "title": "Value",
            "description": "The value of the rejected transaction.",
            "example": "1000000000000000000"
          },
          "method": {
            "title": "Method",
            "description": "The method of the rejected transaction.",
            "type": "string"
          },
          "confirmations": {
            "type": "integer",
            "title": "Confirmations",
            "description": "Current number of confirmations."
          },
          "confirmations_required": {
            "type": "integer",
            "title": "Confirmations Required",
            "description": "Required number of confirmations."
          }
        },
        "type": "object",
        "required": [
          "safe_tx_hash",
          "to",
          "value",
          "confirmations",
          "confirmations_required"
        ],
        "title": "RejectedTransactionSummary"
      },
      "RelatedTransaction": {
        "properties": {
          "type": {
            "$ref": "#/components/schemas/RelatedTransactionType",
            "description": "The type of the related transaction."
          },
          "hash": {
            "title": "Hash",
            "description": "The hash of the related transaction.",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "description": "The id of the related transaction.",
            "type": "string",
            "format": "uuid"
          },
          "chain": {
            "$ref": "#/components/schemas/EnrichedChain",
            "description": "The chain identifier of the related transaction."
          },
          "explorer_url": {
            "title": "Explorer Url",
            "description": "The URL of the related transaction in a blockchain explorer.",
            "type": "string",
            "maxLength": 2083,
            "minLength": 1,
            "format": "uri"
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain"
        ],
        "title": "RelatedTransaction"
      },
      "RelatedTransactionType": {
        "type": "string",
        "enum": [
          "swap_fulfilled_by",
          "swap_fulfilling",
          "bridge_intent",
          "bridge_source",
          "bridge_destination"
        ],
        "title": "RelatedTransactionType"
      },
      "ReleaseEvmTransactionRequest": {
        "properties": {
          "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"
          },
          "note": {
            "title": "Note",
            "description": "An optional transaction note.",
            "type": "string"
          },
          "type": {
            "type": "string",
            "const": "evm_transaction",
            "title": "Type",
            "description": "The type of the transaction."
          },
          "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
          },
          "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": [
          "release_type",
          "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",
          "cannot_release_psbt_transaction"
        ],
        "title": "ReleaseTransactionErrorType"
      },
      "ReleaseTransactionRequest": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/ReleaseEvmTransactionRequest"
          },
          {
            "$ref": "#/components/schemas/ReleaseUtxoTransactionRequest"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "evm_transaction": "#/components/schemas/ReleaseEvmTransactionRequest",
            "utxo_transaction": "#/components/schemas/ReleaseUtxoTransactionRequest"
          }
        }
      },
      "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/TronMessage"
          },
          {
            "$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_message": "#/components/schemas/TronMessage",
            "tron_transaction": "#/components/schemas/TronTransaction",
            "utxo_message": "#/components/schemas/UtxoMessage",
            "utxo_transaction": "#/components/schemas/UtxoTransaction"
          }
        }
      },
      "ReleaseType": {
        "type": "string",
        "enum": [
          "cancel",
          "accelerate"
        ],
        "title": "ReleaseType"
      },
      "ReleaseUtxoTransactionRequest": {
        "properties": {
          "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"
          },
          "note": {
            "title": "Note",
            "description": "An optional transaction note.",
            "type": "string"
          },
          "type": {
            "type": "string",
            "const": "utxo_transaction",
            "title": "Type",
            "description": "The type of the transaction."
          },
          "fee_per_byte": {
            "title": "Fee Per Byte",
            "description": "An optional fee per byte.",
            "type": "string",
            "pattern": "^\\d+$",
            "example": "1000000000000000000"
          }
        },
        "type": "object",
        "required": [
          "release_type",
          "type"
        ],
        "title": "ReleaseUtxoTransactionRequest"
      },
      "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."
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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"
      },
      "SafeTxOperation": {
        "type": "string",
        "enum": [
          "call",
          "delegate_call"
        ],
        "title": "SafeTxOperation"
      },
      "SafeTxTypedMessageEvmMessage": {
        "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."
          },
          "enriched_addresses": {
            "additionalProperties": {
              "$ref": "#/components/schemas/EnrichedEvmAddress"
            },
            "type": "object",
            "title": "Enriched Addresses",
            "description": "Addresses that are related to this message, enriched with metadata.Please NOTE: the dictionary keys are EIP-55 checksummed addresses",
            "default": {}
          },
          "type": {
            "type": "string",
            "const": "safe_tx",
            "title": "Type",
            "description": "The typed message type."
          },
          "to": {
            "$ref": "#/components/schemas/EnrichedEvmAddress",
            "description": "The target address."
          },
          "value": {
            "type": "string",
            "pattern": "^-?\\d+$",
            "title": "Value",
            "description": "The value in wei.",
            "example": "1000000000000000000"
          },
          "data": {
            "type": "string",
            "title": "Data",
            "description": "The transaction data."
          },
          "operation": {
            "$ref": "#/components/schemas/SafeTxOperation",
            "description": "Operation type: 0 = Call, 1 = DelegateCall."
          },
          "safe_tx_gas": {
            "type": "string",
            "pattern": "^-?\\d+$",
            "title": "Safe Tx Gas",
            "description": "Gas for the Safe transaction.",
            "example": "1000000000000000000"
          },
          "base_gas": {
            "type": "string",
            "pattern": "^-?\\d+$",
            "title": "Base Gas",
            "description": "Base gas.",
            "example": "1000000000000000000"
          },
          "gas_price": {
            "type": "string",
            "pattern": "^-?\\d+$",
            "title": "Gas Price",
            "description": "Gas price.",
            "example": "1000000000000000000"
          },
          "gas_token": {
            "description": "Token address for gas payment (0x0 for ETH).",
            "$ref": "#/components/schemas/EnrichedEvmAddress"
          },
          "refund_receiver": {
            "description": "Address to receive gas refund.",
            "$ref": "#/components/schemas/EnrichedEvmAddress"
          },
          "nonce": {
            "type": "string",
            "pattern": "^-?\\d+$",
            "title": "Nonce",
            "description": "Safe transaction nonce.",
            "example": "1000000000000000000"
          },
          "decoded_method": {
            "title": "Decoded Method",
            "description": "The decoded method name.",
            "type": "string"
          },
          "decoded_parameters_json": {
            "title": "Decoded Parameters Json",
            "description": "The decoded parameters as JSON string.",
            "type": "string"
          },
          "decoding_error": {
            "title": "Decoding Error",
            "description": "Error message if decoding failed.",
            "type": "string"
          },
          "is_multi_send": {
            "type": "boolean",
            "title": "Is Multi Send",
            "description": "Whether this is a multi-send batched transaction."
          },
          "is_sensitive_operation": {
            "type": "boolean",
            "title": "Is Sensitive Operation",
            "description": "Whether this operation modifies Safe ownership, modules, or guards."
          },
          "is_rejection": {
            "type": "boolean",
            "title": "Is Rejection",
            "description": "Whether this is a rejection transaction."
          },
          "rejected_transaction": {
            "description": "Details of the transaction being rejected.",
            "$ref": "#/components/schemas/RejectedTransactionSummary"
          }
        },
        "type": "object",
        "required": [
          "domain",
          "primary_type",
          "type",
          "to",
          "value",
          "data",
          "operation",
          "safe_tx_gas",
          "base_gas",
          "gas_price",
          "nonce",
          "is_multi_send",
          "is_sensitive_operation",
          "is_rejection"
        ],
        "title": "SafeTxTypedMessageEvmMessage"
      },
      "SafeVault": {
        "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "type": {
            "type": "string",
            "const": "safe",
            "title": "Type",
            "description": "Safe vault type."
          },
          "address": {
            "type": "string",
            "maxLength": 42,
            "minLength": 42,
            "pattern": "^0[xX][a-fA-F0-9]+$",
            "title": "Address",
            "description": "The address of the Safe multisig wallet.",
            "example": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "logo_url": {
            "type": "string",
            "maxLength": 2083,
            "minLength": 1,
            "format": "uri",
            "title": "Logo Url",
            "description": "The logo of the Safe vault."
          },
          "state": {
            "$ref": "#/components/schemas/SafeVaultState",
            "description": "State of the vault."
          },
          "change_request_id": {
            "type": "string",
            "format": "uuid",
            "title": "Change Request Id",
            "description": "The ID of the change request."
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "name",
          "created_by",
          "vault_groups",
          "are_all_chains_disabled",
          "type",
          "address",
          "logo_url",
          "state",
          "change_request_id"
        ],
        "title": "SafeVault",
        "description": "Represents a Safe (Gnosis Safe) vault in the Fordefi platform.\n\nSafe vaults are read-only vaults that import existing Safe multisig wallets.\nThey do not have MPC keys and cannot execute transactions."
      },
      "SafeVaultState": {
        "type": "string",
        "enum": [
          "active",
          "pending",
          "aborted"
        ],
        "title": "SafeVaultState"
      },
      "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.",
            "example": "SGVsbG8="
          }
        },
        "type": "object",
        "required": [
          "typed_arguments",
          "arguments",
          "type",
          "code"
        ],
        "title": "ScriptPayload"
      },
      "SetCodeAuthorizationEffect": {
        "properties": {
          "eoa": {
            "$ref": "#/components/schemas/EnrichedEvmAddress",
            "description": "The address of the EOA that authorized the contract to be set."
          },
          "contract": {
            "$ref": "#/components/schemas/EnrichedEvmAddress",
            "description": "The address of the contract that was set for the EOA."
          }
        },
        "type": "object",
        "required": [
          "eoa",
          "contract"
        ],
        "title": "SetCodeAuthorizationEffect"
      },
      "SetCodeDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "set_code",
            "title": "Type",
            "description": "A transaction that makes an EOA smart contract or disables it."
          }
        },
        "type": "object",
        "required": [
          "type"
        ],
        "title": "SetCodeDetails"
      },
      "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"
      },
      "SkipIndexingReason": {
        "type": "string",
        "enum": [
          "spam"
        ],
        "title": "SkipIndexingReason"
      },
      "SmartContractState": {
        "type": "string",
        "enum": [
          "enabled",
          "enabling",
          "disabling"
        ],
        "title": "SmartContractState"
      },
      "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. If empty, the contact is associated with all chains."
          }
        },
        "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."
      },
      "SolanaAllowanceEffect": {
        "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"
          },
          "owner": {
            "$ref": "#/components/schemas/EnrichedSolanaAddress",
            "description": "The owner of the tokens"
          },
          "spender": {
            "$ref": "#/components/schemas/EnrichedSolanaAddress",
            "description": "The address allowed to spend"
          }
        },
        "type": "object",
        "required": [
          "priced_asset",
          "amount",
          "owner",
          "spender"
        ],
        "title": "SolanaAllowanceEffect"
      },
      "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",
          "address"
        ],
        "title": "SolanaBalanceChangeEffect"
      },
      "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",
          "solana_fogo_mainnet",
          "solana_fogo_testnet"
        ],
        "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": {
            "title": "Priority Fee",
            "description": "The priority fee to use in the transaction (In lamports).",
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "example": "1000000000000000000"
          },
          "unit_price": {
            "title": "Unit Price",
            "description": "The unit price to use in the transaction (In microlamports).",
            "type": "string",
            "pattern": "^\\d+$",
            "example": "1000000000000000000"
          }
        },
        "type": "object",
        "required": [
          "type"
        ],
        "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."
          },
          "allowances": {
            "items": {
              "$ref": "#/components/schemas/SolanaAllowanceEffect"
            },
            "type": "array",
            "title": "Allowances",
            "description": "Allowances set or modified as a result of the transaction"
          }
        },
        "type": "object",
        "required": [
          "balance_changes",
          "transfers",
          "allowances"
        ],
        "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"
          },
          "unit_price": {
            "title": "Unit Price",
            "description": "The unit price of the transaction (in microlamports).",
            "type": "string",
            "pattern": "^\\d+$",
            "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "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."
          },
          "solana_message_type_details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/PersonalMessageDetails"
              },
              {
                "$ref": "#/components/schemas/CreateSessionDetails"
              }
            ],
            "description": "The details of the Solana message.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "create_session_message_type": "#/components/schemas/CreateSessionDetails",
                "personal_message_type": "#/components/schemas/PersonalMessageDetails"
              }
            }
          },
          "expected_result": {
            "description": "Predicted result of the message execution. Only available for intents that Fordefi knows how to simulate, like ERC20 allowances and swaps created in the Fordefi app.",
            "$ref": "#/components/schemas/SolanaMessageResult"
          },
          "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",
          "interacted_vaults",
          "organization_id",
          "state",
          "state_changes",
          "type",
          "solana_message_type",
          "solana_message_type_details",
          "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"
      },
      "SolanaMessageResult": {
        "properties": {
          "effects": {
            "$ref": "#/components/schemas/SolanaEffects",
            "description": "The effects of the transaction."
          }
        },
        "type": "object",
        "required": [
          "effects"
        ],
        "title": "SolanaMessageResult"
      },
      "SolanaMessageType": {
        "type": "string",
        "enum": [
          "personal_message_type",
          "create_session_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"
      },
      "SolanaRecipientBase58": {
        "properties": {
          "type": {
            "type": "string",
            "const": "address",
            "title": "Type",
            "description": "The type of the recipient."
          },
          "address": {
            "type": "string",
            "maxLength": 44,
            "minLength": 32,
            "pattern": "^[a-km-zA-HJ-NP-Z1-9]+$",
            "title": "Address",
            "description": "The address of the recipient.",
            "example": "4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA"
          }
        },
        "type": "object",
        "required": [
          "type",
          "address"
        ],
        "title": "SolanaRecipientBase58"
      },
      "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"
      },
      "SolanaSpotSwapFeeRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "solana",
            "title": "Type",
            "description": "Solana fee type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/SolanaPriorityFeeTypeRequest"
              },
              {
                "$ref": "#/components/schemas/SolanaJitoFeeTypeRequest"
              }
            ],
            "description": "The fee configuration for the transaction, including broadcast mode selection.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "jito": "#/components/schemas/SolanaJitoFeeTypeRequest",
                "priority_fee": "#/components/schemas/SolanaPriorityFeeTypeRequest"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "type",
          "details"
        ],
        "title": "SolanaSpotSwapFeeRequest"
      },
      "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "block": {
            "description": "The block of the transaction.",
            "$ref": "#/components/schemas/Block"
          },
          "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_check": {
            "description": "The AML check.",
            "$ref": "#/components/schemas/AmlCheck"
          },
          "mined_result_status": {
            "description": "The mined result status of the transaction.",
            "$ref": "#/components/schemas/MinedResultStatus"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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"
          },
          "expected_result": {
            "description": "The expected result of the transaction in case it is mined.",
            "$ref": "#/components/schemas/SolanaTransactionResult"
          },
          "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."
          },
          "fee_payer": {
            "description": "The address that pays the fee for this transaction (first account in the transaction).",
            "$ref": "#/components/schemas/EnrichedSolanaAddress"
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "signatures",
          "direction",
          "interacted_vaults",
          "organization_id",
          "state",
          "state_changes",
          "type",
          "solana_transaction_type_details",
          "chain",
          "version",
          "instructions",
          "accounts",
          "address_table_lookups",
          "sender",
          "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",
          "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",
          "from",
          "to"
        ],
        "title": "SolanaTransferEffect"
      },
      "SolanaUnitPrices": {
        "properties": {
          "limit": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "Limit",
            "description": "The compute unit limit.",
            "example": "1000000000000000000"
          },
          "low": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "Low",
            "description": "The low suggested fee per byte, denominated in microlamports.",
            "example": "1000000000000000000"
          },
          "medium": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "Medium",
            "description": "The medium suggested fee per byte, denominated in microlamports.",
            "example": "1000000000000000000"
          },
          "high": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "High",
            "description": "The high suggested fee per byte, denominated in microlamports.",
            "example": "1000000000000000000"
          }
        },
        "type": "object",
        "required": [
          "limit",
          "low",
          "medium",
          "high"
        ],
        "title": "SolanaUnitPrices"
      },
      "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "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."
          },
          "state": {
            "$ref": "#/components/schemas/MpcVaultState",
            "description": "New state 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_groups",
          "are_all_chains_disabled",
          "derivation_path",
          "public_key_compressed",
          "derivation_info",
          "origin_type",
          "state",
          "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"
      },
      "SpotSwap": {
        "properties": {
          "transactions": {
            "items": {
              "$ref": "#/components/schemas/CreateTransactionResponse"
            },
            "type": "array",
            "title": "Transactions",
            "description": "The created transactions."
          }
        },
        "type": "object",
        "required": [
          "transactions"
        ],
        "title": "SpotSwap"
      },
      "SpotSwapFeeRequest": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/EvmSpotSwapFeeRequest"
          },
          {
            "$ref": "#/components/schemas/SolanaSpotSwapFeeRequest"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "evm": "#/components/schemas/EvmSpotSwapFeeRequest",
            "solana": "#/components/schemas/SolanaSpotSwapFeeRequest"
          }
        }
      },
      "SpotSwapTypedMessageEvmMessage": {
        "properties": {
          "provider_info": {
            "$ref": "#/components/schemas/ProviderInfo",
            "description": "The swap provider."
          },
          "provider_source": {
            "title": "Provider Source",
            "description": "The source of the swap provider.",
            "type": "string"
          },
          "slippage_bps": {
            "type": "string",
            "pattern": "^\\d+(\\.\\d+)?$",
            "title": "Slippage Bps",
            "description": "Slippage tolerance in basis points.",
            "example": "1000000000000000000"
          },
          "price_impact_pct": {
            "title": "Price Impact Pct",
            "description": "Price impact percentage.",
            "type": "string",
            "pattern": "^\\d+(\\.\\d+)?$",
            "example": "1000000000000000000"
          },
          "rate": {
            "type": "string",
            "pattern": "^\\d+(\\.\\d+)?$",
            "title": "Rate",
            "description": "The exchange rate of the swap.",
            "example": "1000000000000000000"
          },
          "input_asset": {
            "$ref": "#/components/schemas/AssetInfo",
            "description": "Information about the input asset of the swap."
          },
          "output_asset": {
            "$ref": "#/components/schemas/AssetInfo",
            "description": "Information about the output asset of the swap."
          },
          "wrapped_native_asset": {
            "description": "Information about the wrapped native asset of the swap.",
            "$ref": "#/components/schemas/AssetInfo"
          },
          "recipient": {
            "$ref": "#/components/schemas/EnrichedEvmAddress",
            "description": "The final recipient of the output asset."
          },
          "quote_created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Quote Created At",
            "description": "The timestamp when the quote was created."
          },
          "quote_expiration_time": {
            "type": "string",
            "format": "date-time",
            "title": "Quote Expiration Time",
            "description": "The timestamp when the quote will expire."
          },
          "estimated_duration_milliseconds": {
            "title": "Estimated Duration Milliseconds",
            "description": "The estimated duration of the swap in milliseconds.",
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "example": "1000000000000000000"
          },
          "provider_fee": {
            "description": "The provider fee of the swap.",
            "$ref": "#/components/schemas/ProviderFee"
          },
          "failure_reason": {
            "title": "Failure Reason",
            "description": "Reason for failure, if any, from the provider.",
            "type": "string"
          },
          "provider_explorer_url": {
            "title": "Provider Explorer Url",
            "description": "URL to the swap provider's dedicated block explorer for tracking this swap execution status.",
            "type": "string",
            "maxLength": 2083,
            "minLength": 1,
            "format": "uri"
          },
          "bridge_state": {
            "description": "The state of the bridge transaction.",
            "$ref": "#/components/schemas/BridgeState"
          },
          "bridge_effects": {
            "description": "The bridge effects of the transaction.",
            "$ref": "#/components/schemas/EvmBridgesEffect"
          },
          "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."
          },
          "enriched_addresses": {
            "additionalProperties": {
              "$ref": "#/components/schemas/EnrichedEvmAddress"
            },
            "type": "object",
            "title": "Enriched Addresses",
            "description": "Addresses that are related to this message, enriched with metadata.Please NOTE: the dictionary keys are EIP-55 checksummed addresses",
            "default": {}
          },
          "type": {
            "type": "string",
            "const": "spot_swap",
            "title": "Type",
            "description": "The typed message type."
          },
          "permit2_details": {
            "description": "Permit2 details, if applicable (e.g., for UniswapX flows needing a permit).",
            "$ref": "#/components/schemas/Permit2TypedMessageEvmMessage"
          },
          "is_gasless": {
            "type": "boolean",
            "title": "Is Gasless",
            "description": "Whether the swap is gasless."
          }
        },
        "type": "object",
        "required": [
          "provider_info",
          "slippage_bps",
          "rate",
          "input_asset",
          "output_asset",
          "recipient",
          "quote_created_at",
          "quote_expiration_time",
          "domain",
          "primary_type",
          "type",
          "is_gasless"
        ],
        "title": "SpotSwapTypedMessageEvmMessage"
      },
      "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,
            "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. If empty, the contact is associated with all chains."
          },
          "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,
            "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."
          },
          "memo": {
            "title": "Memo",
            "description": "Memo is an additional address feature used for identifying a recipient.",
            "type": "string"
          }
        },
        "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,
            "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"
      },
      "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,
            "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "block": {
            "description": "The block of the transaction.",
            "$ref": "#/components/schemas/Block"
          },
          "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_check": {
            "description": "The AML check.",
            "$ref": "#/components/schemas/AmlCheck"
          },
          "mined_result_status": {
            "description": "The mined result status of the transaction.",
            "$ref": "#/components/schemas/MinedResultStatus"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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"
          },
          "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"
          },
          "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",
          "interacted_vaults",
          "organization_id",
          "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "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."
          },
          "state": {
            "$ref": "#/components/schemas/MpcVaultState",
            "description": "New state of the vault."
          },
          "type": {
            "type": "string",
            "const": "stacks",
            "title": "Type",
            "description": "Stacks vault type."
          },
          "address": {
            "type": "string",
            "maxLength": 171,
            "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_groups",
          "are_all_chains_disabled",
          "derivation_path",
          "public_key_compressed",
          "derivation_info",
          "origin_type",
          "state",
          "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. If empty, the contact is associated with all chains."
          }
        },
        "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"
      },
      "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"
      },
      "StarknetFeeDetails": {
        "properties": {
          "l1_gas_consumed": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "L1 Gas Consumed",
            "description": "L1 gas consumed by the transaction.",
            "example": "1000000000000000000"
          },
          "l1_gas_price": {
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "title": "L1 Gas Price",
            "description": "L1 gas unit price.",
            "example": "1000000000000000000"
          },
          "l2_gas_consumed": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "L2 Gas Consumed",
            "description": "L2 gas consumed by the transaction.",
            "example": "1000000000000000000"
          },
          "l2_gas_price": {
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "title": "L2 Gas Price",
            "description": "L2 gas unit price.",
            "example": "1000000000000000000"
          },
          "l1_data_gas_consumed": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "L1 Data Gas Consumed",
            "description": "L1 data gas consumed by the transaction.",
            "example": "1000000000000000000"
          },
          "l1_data_gas_price": {
            "type": "string",
            "pattern": "^0*[1-9]\\d*$",
            "title": "L1 Data Gas Price",
            "description": "L1 data gas unit price.",
            "example": "1000000000000000000"
          }
        },
        "type": "object",
        "required": [
          "l1_gas_consumed",
          "l1_gas_price",
          "l2_gas_consumed",
          "l2_gas_price",
          "l1_data_gas_consumed",
          "l1_data_gas_price"
        ],
        "title": "StarknetFeeDetails"
      },
      "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "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",
          "interacted_vaults",
          "organization_id",
          "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "block": {
            "description": "The block of the transaction.",
            "$ref": "#/components/schemas/Block"
          },
          "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_check": {
            "description": "The AML check.",
            "$ref": "#/components/schemas/AmlCheck"
          },
          "mined_result_status": {
            "description": "The mined result status of the transaction.",
            "$ref": "#/components/schemas/MinedResultStatus"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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"
          },
          "expected_result": {
            "description": "The expected result of the transaction in case it is mined.",
            "$ref": "#/components/schemas/StarknetTransactionResult"
          },
          "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://voyager.online/tx/0x0684532b069fb0ce7e22041538a1c5e4850aafae042c772393cd7d795b767c74",
            "type": "string",
            "maxLength": 2083,
            "minLength": 1,
            "format": "uri"
          },
          "fee_details": {
            "description": "The details of the fee of the transaction.",
            "$ref": "#/components/schemas/StarknetFeeDetails"
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "signatures",
          "direction",
          "interacted_vaults",
          "organization_id",
          "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "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."
          },
          "state": {
            "$ref": "#/components/schemas/MpcVaultState",
            "description": "New state 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_groups",
          "are_all_chains_disabled",
          "derivation_path",
          "public_key_compressed",
          "derivation_info",
          "origin_type",
          "state",
          "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",
          "stale_nonce",
          "quote_expired",
          "another_dlc_transaction_was_completed",
          "fee_limit_exceeded"
        ],
        "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"
      },
      "StellarAddressRequest": {
        "properties": {
          "chain": {
            "$ref": "#/components/schemas/StellarChainUniqueId",
            "description": "The chain details this address is of."
          },
          "base32_repr": {
            "type": "string",
            "maxLength": 56,
            "minLength": 56,
            "pattern": "^[GC][A-Z2-7]{55}$",
            "title": "Base32 Repr",
            "description": "Hexadecimal representation of the address in the chain.",
            "example": "GBRPYHIL2CI3FNQ4BXLFMNDLFJHO7W3B6FSHLTAVM2A4P45SHO4ZB7I2"
          }
        },
        "type": "object",
        "required": [
          "chain",
          "base32_repr"
        ],
        "title": "StellarAddressRequest",
        "description": "Address represents a blockchain address."
      },
      "StellarAssetIdentifier": {
        "properties": {
          "type": {
            "type": "string",
            "const": "stellar",
            "title": "Type",
            "description": "Stellar asset identifier type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/StellarNativeAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/StellarClassicAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/StellarSorobanAssetIdentifierRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "classic_asset": "#/components/schemas/StellarClassicAssetIdentifierRequest",
                "native": "#/components/schemas/StellarNativeAssetIdentifierRequest",
                "soroban_asset": "#/components/schemas/StellarSorobanAssetIdentifierRequest"
              }
            }
          },
          "chain": {
            "$ref": "#/components/schemas/EnrichedStellarChain"
          }
        },
        "type": "object",
        "required": [
          "type",
          "details",
          "chain"
        ],
        "title": "StellarAssetIdentifier"
      },
      "StellarAssetIdentifierRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "stellar",
            "title": "Type",
            "description": "Stellar asset identifier type."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/StellarNativeAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/StellarClassicAssetIdentifierRequest"
              },
              {
                "$ref": "#/components/schemas/StellarSorobanAssetIdentifierRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "classic_asset": "#/components/schemas/StellarClassicAssetIdentifierRequest",
                "native": "#/components/schemas/StellarNativeAssetIdentifierRequest",
                "soroban_asset": "#/components/schemas/StellarSorobanAssetIdentifierRequest"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "type",
          "details"
        ],
        "title": "StellarAssetIdentifierRequest"
      },
      "StellarBalanceChangeEffect": {
        "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/EnrichedStellarAddress",
            "description": "The address affected by the balance change."
          }
        },
        "type": "object",
        "required": [
          "priced_asset",
          "diff",
          "address"
        ],
        "title": "StellarBalanceChangeEffect"
      },
      "StellarChainUniqueId": {
        "type": "string",
        "enum": [
          "stellar_mainnet"
        ],
        "title": "StellarChainUniqueId"
      },
      "StellarChangeTrustDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "change_trust",
            "title": "Type",
            "description": "A ChangeTrust operation to establish or update a trustline for Stellar classic asset."
          }
        },
        "type": "object",
        "required": [
          "type"
        ],
        "title": "StellarChangeTrustDetails"
      },
      "StellarClassicAssetIdentifierRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "classic_asset",
            "title": "Type",
            "description": "Stellar asset identifier type."
          },
          "code": {
            "type": "string",
            "maxLength": 12,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9]{1,12}$",
            "title": "Code",
            "description": "The 1-4 character asset code."
          },
          "issuer": {
            "$ref": "#/components/schemas/StellarAddressRequest",
            "description": "The issuer address."
          },
          "chain": {
            "$ref": "#/components/schemas/StellarChainUniqueId",
            "description": "The chain of the Classic Asset."
          }
        },
        "type": "object",
        "required": [
          "type",
          "code",
          "issuer",
          "chain"
        ],
        "title": "StellarClassicAssetIdentifierRequest"
      },
      "StellarClassicAssetTransferDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "classic_asset_transfer",
            "title": "Type",
            "description": "A transaction involving the transfer of a Stellar classic asset (credit) from one address to another."
          }
        },
        "type": "object",
        "required": [
          "type"
        ],
        "title": "StellarClassicAssetTransferDetails"
      },
      "StellarEffects": {
        "properties": {
          "balance_changes": {
            "items": {
              "$ref": "#/components/schemas/StellarBalanceChangeEffect"
            },
            "type": "array",
            "title": "Balance Changes"
          },
          "transfers": {
            "items": {
              "$ref": "#/components/schemas/StellarTransferEffect"
            },
            "type": "array",
            "title": "Transfers"
          },
          "trustline_changes": {
            "items": {
              "$ref": "#/components/schemas/StellarTrustlineChangeEffect"
            },
            "type": "array",
            "title": "Trustline Changes"
          }
        },
        "type": "object",
        "required": [
          "balance_changes",
          "transfers"
        ],
        "title": "StellarEffects"
      },
      "StellarFee": {
        "properties": {
          "fee_charged": {
            "type": "string",
            "pattern": "^\\d+$",
            "title": "Fee Charged",
            "description": "The fee charged for the transaction (in stroops).",
            "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_charged",
          "priced_asset"
        ],
        "title": "StellarFee"
      },
      "StellarNativeAssetIdentifierRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "native",
            "title": "Type",
            "description": "Stellar asset identifier type."
          },
          "chain": {
            "$ref": "#/components/schemas/StellarChainUniqueId",
            "description": "The chain of the native asset."
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain"
        ],
        "title": "StellarNativeAssetIdentifierRequest"
      },
      "StellarNativeTransferDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "native_transfer",
            "title": "Type",
            "description": "A transaction involving the transfer of native XLM (lumens) from one address to another."
          }
        },
        "type": "object",
        "required": [
          "type"
        ],
        "title": "StellarNativeTransferDetails"
      },
      "StellarRecipientAddress": {
        "properties": {
          "type": {
            "type": "string",
            "const": "address",
            "title": "Type",
            "description": "The type of the recipient."
          },
          "address": {
            "type": "string",
            "maxLength": 56,
            "minLength": 56,
            "pattern": "^G[A-Z2-7]{55}$",
            "title": "Address",
            "description": "The Stellar account address of the recipient.",
            "example": "GBRPYHIL2CI3FNQ4BXLFMNDLFJHO7W3B6FSHLTAVM2A4P45SHO4ZB7I2"
          }
        },
        "type": "object",
        "required": [
          "type",
          "address"
        ],
        "title": "StellarRecipientAddress"
      },
      "StellarReversion": {
        "properties": {
          "state": {
            "$ref": "#/components/schemas/StellarReversionState",
            "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>`insufficient_funds_gas_and_value`: The transaction was reverted due to insufficient funds.</ul>"
          },
          "reason": {
            "title": "Reason",
            "description": "The reason for the reversion (additional information).",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "state"
        ],
        "title": "StellarReversion"
      },
      "StellarReversionState": {
        "type": "string",
        "enum": [
          "not_reverted",
          "unknown_revert",
          "insufficient_funds_gas_and_value"
        ],
        "title": "StellarReversionState"
      },
      "StellarSorobanAssetIdentifierRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "soroban_asset",
            "title": "Type",
            "description": "Stellar asset identifier type."
          },
          "address": {
            "type": "string",
            "maxLength": 56,
            "minLength": 56,
            "pattern": "^[GC][A-Z2-7]{55}$",
            "title": "Address",
            "description": "The Soroban asset address.",
            "example": "GBRPYHIL2CI3FNQ4BXLFMNDLFJHO7W3B6FSHLTAVM2A4P45SHO4ZB7I2"
          },
          "chain": {
            "$ref": "#/components/schemas/StellarChainUniqueId",
            "description": "The chain of the Soroban asset."
          }
        },
        "type": "object",
        "required": [
          "type",
          "address",
          "chain"
        ],
        "title": "StellarSorobanAssetIdentifierRequest"
      },
      "StellarSorobanTokenTransferDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "soroban_token_transfer",
            "title": "Type",
            "description": "A transaction involving the transfer of a Soroban token (SEP-41 compatible) from one address to another."
          }
        },
        "type": "object",
        "required": [
          "type"
        ],
        "title": "StellarSorobanTokenTransferDetails"
      },
      "StellarTransaction": {
        "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "block": {
            "description": "The block of the transaction.",
            "$ref": "#/components/schemas/Block"
          },
          "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_check": {
            "description": "The AML check.",
            "$ref": "#/components/schemas/AmlCheck"
          },
          "mined_result_status": {
            "description": "The mined result status of the transaction.",
            "$ref": "#/components/schemas/MinedResultStatus"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "type": {
            "type": "string",
            "const": "stellar_transaction",
            "title": "Type",
            "description": "Stellar transaction type."
          },
          "stellar_transaction_type_details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/StellarNativeTransferDetails"
              },
              {
                "$ref": "#/components/schemas/StellarClassicAssetTransferDetails"
              },
              {
                "$ref": "#/components/schemas/StellarSorobanTokenTransferDetails"
              },
              {
                "$ref": "#/components/schemas/StellarChangeTrustDetails"
              }
            ],
            "description": "Details of the Stellar transaction based on its type.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "change_trust": "#/components/schemas/StellarChangeTrustDetails",
                "classic_asset_transfer": "#/components/schemas/StellarClassicAssetTransferDetails",
                "native_transfer": "#/components/schemas/StellarNativeTransferDetails",
                "soroban_token_transfer": "#/components/schemas/StellarSorobanTokenTransferDetails"
              }
            }
          },
          "chain": {
            "$ref": "#/components/schemas/EnrichedStellarChain",
            "description": "The details of the chain this transaction is on."
          },
          "sender": {
            "$ref": "#/components/schemas/EnrichedStellarAddress",
            "description": "The sender of the transaction."
          },
          "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, https://stellar.expert/",
            "example": "https://stellar.expert/explorer/public/tx/abc123def456...",
            "type": "string",
            "maxLength": 2083,
            "minLength": 1,
            "format": "uri"
          },
          "expected_result": {
            "description": "The expected result of the transaction in case it is mined.",
            "$ref": "#/components/schemas/StellarTransactionResult"
          },
          "mined_result": {
            "description": "The result of the transaction after it was mined.",
            "$ref": "#/components/schemas/StellarTransactionResult"
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "signatures",
          "direction",
          "interacted_vaults",
          "organization_id",
          "state",
          "state_changes",
          "type",
          "stellar_transaction_type_details",
          "chain",
          "sender"
        ],
        "title": "StellarTransaction"
      },
      "StellarTransactionResult": {
        "properties": {
          "reversion": {
            "$ref": "#/components/schemas/StellarReversion",
            "description": "Details whether the transaction was reverted or not."
          },
          "fee": {
            "$ref": "#/components/schemas/StellarFee",
            "description": "The fee of the transaction."
          },
          "effects": {
            "$ref": "#/components/schemas/StellarEffects",
            "description": "The effects of the transaction."
          }
        },
        "type": "object",
        "required": [
          "reversion",
          "fee",
          "effects"
        ],
        "title": "StellarTransactionResult"
      },
      "StellarTransferEffect": {
        "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/EnrichedStellarAddress",
            "description": "The sender of the transfer."
          },
          "to": {
            "$ref": "#/components/schemas/EnrichedStellarAddress",
            "description": "The receiver of the transfer."
          }
        },
        "type": "object",
        "required": [
          "priced_asset",
          "amount",
          "from",
          "to"
        ],
        "title": "StellarTransferEffect"
      },
      "StellarTrustlineChangeEffect": {
        "properties": {
          "priced_asset": {
            "$ref": "#/components/schemas/PricedAsset",
            "description": "The asset information."
          },
          "address": {
            "$ref": "#/components/schemas/EnrichedStellarAddress",
            "description": "The address that established or updated the trustline."
          },
          "limit": {
            "type": "string",
            "pattern": "^-?\\d+$",
            "title": "Limit",
            "description": "The trustline limit.",
            "example": "1000000000000000000"
          }
        },
        "type": "object",
        "required": [
          "priced_asset",
          "address",
          "limit"
        ],
        "title": "StellarTrustlineChangeEffect"
      },
      "StellarVault": {
        "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "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."
          },
          "state": {
            "$ref": "#/components/schemas/MpcVaultState",
            "description": "New state of the vault."
          },
          "type": {
            "type": "string",
            "const": "stellar",
            "title": "Type",
            "description": "Stellar vault type."
          },
          "address": {
            "type": "string",
            "maxLength": 56,
            "minLength": 56,
            "pattern": "^[GC][A-Z2-7]{55}$",
            "title": "Address",
            "description": "The address of the vault on Stellar chain types.",
            "example": "GBRPYHIL2CI3FNQ4BXLFMNDLFJHO7W3B6FSHLTAVM2A4P45SHO4ZB7I2"
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "name",
          "created_by",
          "vault_groups",
          "are_all_chains_disabled",
          "derivation_path",
          "public_key_compressed",
          "derivation_info",
          "origin_type",
          "state",
          "type",
          "address"
        ],
        "title": "StellarVault"
      },
      "SubAccount": {
        "properties": {
          "type": {
            "type": "string",
            "const": "sub",
            "title": "Type",
            "description": "Exchange vault for a sub account."
          },
          "master_vault": {
            "$ref": "#/components/schemas/VaultRef",
            "description": "Reference to the master vault."
          },
          "sub_account_id": {
            "type": "string",
            "title": "Sub Account Id",
            "description": "The ID of the sub account."
          }
        },
        "type": "object",
        "required": [
          "type",
          "master_vault",
          "sub_account_id"
        ],
        "title": "SubAccount"
      },
      "SubmitUpdateVaultChangeProposalRequest": {
        "properties": {
          "diff": {
            "$ref": "#/components/schemas/UpdateVaultChangeRequestDiff",
            "description": "The diff of the update vault change request."
          }
        },
        "type": "object",
        "required": [
          "diff"
        ],
        "title": "SubmitUpdateVaultChangeProposalRequest"
      },
      "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. If empty, the contact is associated with all chains."
          }
        },
        "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",
          "address"
        ],
        "title": "SuiBalanceChangeEffect"
      },
      "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"
      },
      "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"
          },
          {
            "$ref": "#/components/schemas/SuiPublishCommand"
          },
          {
            "$ref": "#/components/schemas/SuiUpgradeCommand"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "make_move_vec": "#/components/schemas/SuiMakeMoveVecCommand",
            "merge_coins": "#/components/schemas/SuiMergeCoinsCommand",
            "move_call": "#/components/schemas/SuiMoveCallCommand",
            "publish": "#/components/schemas/SuiPublishCommand",
            "split_coins": "#/components/schemas/SuiSplitCoinsCommand",
            "transfer_objects": "#/components/schemas/SuiTransferObjectsCommand",
            "upgrade": "#/components/schemas/SuiUpgradeCommand"
          }
        }
      },
      "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": {
          "owner": {
            "title": "Owner",
            "description": "The owner of the gas config. Used for sponsored transactions.",
            "type": "string",
            "maxLength": 66,
            "minLength": 66,
            "pattern": "^0[xX][a-fA-F0-9]+$",
            "example": "0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a"
          },
          "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "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",
          "interacted_vaults",
          "organization_id",
          "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"
      },
      "SuiPublishCommand": {
        "properties": {
          "type": {
            "type": "string",
            "const": "publish",
            "title": "Type",
            "description": "The type of the command."
          },
          "modules": {
            "items": {
              "type": "string",
              "example": "SGVsbG8="
            },
            "type": "array",
            "title": "Modules",
            "description": "The modules to publish."
          },
          "dependencies": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Dependencies",
            "description": "The dependencies of the modules."
          }
        },
        "type": "object",
        "required": [
          "type",
          "modules",
          "dependencies"
        ],
        "title": "SuiPublishCommand",
        "description": "Publish a Move module."
      },
      "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "block": {
            "description": "The block of the transaction.",
            "$ref": "#/components/schemas/Block"
          },
          "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_check": {
            "description": "The AML check.",
            "$ref": "#/components/schemas/AmlCheck"
          },
          "mined_result_status": {
            "description": "The mined result status of the transaction.",
            "$ref": "#/components/schemas/MinedResultStatus"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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"
          },
          "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"
          },
          "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"
          },
          "fee_payer": {
            "description": "The address that pays the fee for this transaction (gas owner).",
            "$ref": "#/components/schemas/EnrichedSuiAddress"
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "signatures",
          "direction",
          "interacted_vaults",
          "organization_id",
          "state",
          "state_changes",
          "type",
          "sui_transaction_type_details",
          "chain",
          "version",
          "inputs",
          "commands",
          "sender",
          "gas_submitted"
        ],
        "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",
          "from",
          "to"
        ],
        "title": "SuiTransferEffect"
      },
      "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."
      },
      "SuiUpgradeCommand": {
        "properties": {
          "type": {
            "type": "string",
            "const": "upgrade",
            "title": "Type",
            "description": "The type of the command."
          },
          "modules": {
            "items": {
              "type": "string",
              "example": "SGVsbG8="
            },
            "type": "array",
            "title": "Modules",
            "description": "The modules to publish."
          },
          "dependencies": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Dependencies",
            "description": "The dependencies of the modules."
          },
          "package_id": {
            "type": "string",
            "title": "Package Id",
            "description": "The package id of the module to upgrade."
          },
          "ticket": {
            "$ref": "#/components/schemas/SuiCommandArgument",
            "description": "The ticket with capability."
          }
        },
        "type": "object",
        "required": [
          "type",
          "modules",
          "dependencies",
          "package_id",
          "ticket"
        ],
        "title": "SuiUpgradeCommand",
        "description": "Upgrade a Move module."
      },
      "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "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."
          },
          "state": {
            "$ref": "#/components/schemas/MpcVaultState",
            "description": "New state 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_groups",
          "are_all_chains_disabled",
          "derivation_path",
          "public_key_compressed",
          "derivation_info",
          "origin_type",
          "state",
          "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."
          },
          "events": {
            "items": {
              "$ref": "#/components/schemas/WebhookResourceType"
            },
            "type": "array",
            "title": "Events",
            "description": "The event types that will trigger the webhook. If none is provided, the webhook will be tested for transaction webhook v1 events.",
            "default": [
              "transactions"
            ]
          }
        },
        "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. If empty, the contact is associated with all chains."
          },
          "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."
          },
          "comment": {
            "title": "Comment",
            "description": "Comment is an additional address feature used for identifying a recipient.",
            "type": "string"
          }
        },
        "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",
            "maxLength": 67,
            "pattern": "^[-0-9]+:[A-Fa-f0-9]{64}$",
            "title": "Address",
            "description": "Contract address in a raw 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"
      },
      "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "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",
          "interacted_vaults",
          "organization_id",
          "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "block": {
            "description": "The block of the transaction.",
            "$ref": "#/components/schemas/Block"
          },
          "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_check": {
            "description": "The AML check.",
            "$ref": "#/components/schemas/AmlCheck"
          },
          "mined_result_status": {
            "description": "The mined result status of the transaction.",
            "$ref": "#/components/schemas/MinedResultStatus"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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"
          },
          "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"
          },
          "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",
          "interacted_vaults",
          "organization_id",
          "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "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."
          },
          "state": {
            "$ref": "#/components/schemas/MpcVaultState",
            "description": "New state 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_groups",
          "are_all_chains_disabled",
          "derivation_path",
          "public_key_compressed",
          "derivation_info",
          "origin_type",
          "state",
          "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/TronMessage"
          },
          {
            "$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_message": "#/components/schemas/TronMessage",
            "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 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",
            "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"
      },
      "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 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"
          },
          "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"
      },
      "TransactionDetailsUtxoCetRequest": {
        "properties": {
          "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."
          },
          "signer": {
            "title": "Signer",
            "description": "The signer on the inputs.",
            "type": "string",
            "maxLength": 74,
            "minLength": 14,
            "example": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq"
          },
          "adaptor_point": {
            "type": "string",
            "pattern": "^0[xX][a-fA-F0-9]+$",
            "title": "Adaptor Point",
            "description": "The adaptor point for the DLC CET transaction."
          }
        },
        "type": "object",
        "required": [
          "psbt_raw_data",
          "adaptor_point"
        ],
        "title": "TransactionDetailsUtxoCetRequest"
      },
      "TransactionDetailsUtxoDlcRequest": {
        "properties": {
          "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."
          },
          "signer": {
            "title": "Signer",
            "description": "The signer on the inputs.",
            "type": "string",
            "maxLength": 74,
            "minLength": 14,
            "example": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq"
          },
          "inputs": {
            "title": "Inputs",
            "description": "Describes how to sign each input.",
            "items": {
              "$ref": "#/components/schemas/PsbtInput"
            },
            "type": "array"
          }
        },
        "type": "object",
        "required": [
          "psbt_raw_data"
        ],
        "title": "TransactionDetailsUtxoDlcRequest"
      },
      "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
          },
          "signer": {
            "title": "Signer",
            "description": "The signer on the inputs.",
            "type": "string",
            "maxLength": 74,
            "minLength": 14,
            "example": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq"
          },
          "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"
        ],
        "title": "TransactionDetailsUtxoPsbtRequest"
      },
      "TransactionDetailsUtxoTransferRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "utxo_transfer",
            "title": "Type",
            "description": "A UTXO transfer transaction."
          },
          "outputs": {
            "title": "Outputs",
            "description": "The outputs of the transaction.<br>Must be provided and hold at least one output in case 'send_max_to' is not provided.",
            "items": {
              "$ref": "#/components/schemas/UtxoOutputRequest"
            },
            "type": "array"
          },
          "send_max_to": {
            "description": "The recipient to which to send the maximum amount of funds available, once other outputs are handled.<br>If no other outputs are provided, this recipient will receive the entire balance of the vault.<br>Either this field or a non-empty outputs field must be provided.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/UtxoOutputToAddressRequest"
              },
              {
                "$ref": "#/components/schemas/UtxoOutputToVaultAddressIdRequest"
              },
              {
                "$ref": "#/components/schemas/UtxoOutputToVaultIdRequest"
              },
              {
                "$ref": "#/components/schemas/UtxoOutputToContactIdRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "address": "#/components/schemas/UtxoOutputToAddressRequest",
                "contact_id": "#/components/schemas/UtxoOutputToContactIdRequest",
                "vault_address_id": "#/components/schemas/UtxoOutputToVaultAddressIdRequest",
                "vault_id": "#/components/schemas/UtxoOutputToVaultIdRequest"
              }
            }
          },
          "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"
        ],
        "title": "TransactionDetailsUtxoTransferRequest"
      },
      "TransactionDirection": {
        "type": "string",
        "enum": [
          "outgoing",
          "incoming"
        ],
        "title": "TransactionDirection"
      },
      "TransactionFeePayerVault": {
        "properties": {
          "type": {
            "type": "string",
            "const": "vault",
            "title": "Type"
          },
          "vault_id": {
            "type": "string",
            "format": "uuid",
            "title": "Vault Id",
            "description": "The unique identifier of the vault that pays the fee."
          }
        },
        "type": "object",
        "required": [
          "type",
          "vault_id"
        ],
        "title": "TransactionFeePayerVault"
      },
      "TransactionPolicyMatchActionType": {
        "type": "string",
        "enum": [
          "allow",
          "block",
          "require_approval"
        ],
        "title": "TransactionPolicyMatchActionType"
      },
      "TransactionPredictAptosMessageRequest": {
        "properties": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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"
      },
      "TransactionPredictArchTransactionRequest": {
        "properties": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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": "arch_transaction",
            "title": "Type",
            "description": "The type of the transaction."
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateArchTransferRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "arch_transfer": "#/components/schemas/CreateArchTransferRequest"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "vault_id",
          "type",
          "details"
        ],
        "title": "TransactionPredictArchTransactionRequest"
      },
      "TransactionPredictCosmosMessageRequest": {
        "properties": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "type": {
            "type": "string",
            "const": "evm_raw_transaction",
            "title": "Type",
            "description": "An EVM raw transaction receives raw data and is for general transactions."
          },
          "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 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
          },
          "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"
              }
            }
          },
          "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": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "type": {
            "type": "string",
            "const": "evm_revoke_allowance",
            "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 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
          },
          "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"
              }
            }
          },
          "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"
      },
      "TransactionPredictEvmSetCodeRequest": {
        "properties": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "type": {
            "type": "string",
            "const": "evm_set_code",
            "title": "Type",
            "description": "An EVM set code transaction is for setting the code of a specific contract."
          },
          "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 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
          },
          "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"
              }
            }
          },
          "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`)."
          },
          "enable": {
            "type": "boolean",
            "title": "Enable",
            "description": "Whether to set the code of the contract, or to clear it."
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain",
          "enable"
        ],
        "title": "TransactionPredictEvmSetCodeRequest"
      },
      "TransactionPredictEvmTransactionRequest": {
        "properties": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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"
              },
              {
                "$ref": "#/components/schemas/TransactionPredictEvmSetCodeRequest"
              },
              {
                "$ref": "#/components/schemas/TransactionPredictEvmWrapNativeRequest"
              },
              {
                "$ref": "#/components/schemas/TransactionPredictEvmUnwrapNativeRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "evm_raw_transaction": "#/components/schemas/TransactionPredictEvmRawTransactionRequest",
                "evm_revoke_allowance": "#/components/schemas/TransactionPredictEvmRevokeAllowanceRequest",
                "evm_set_code": "#/components/schemas/TransactionPredictEvmSetCodeRequest",
                "evm_transfer": "#/components/schemas/TransactionPredictEvmTransferRequest",
                "evm_unwrap_native": "#/components/schemas/TransactionPredictEvmUnwrapNativeRequest",
                "evm_wrap_native": "#/components/schemas/TransactionPredictEvmWrapNativeRequest"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "vault_id",
          "type",
          "details"
        ],
        "title": "TransactionPredictEvmTransactionRequest"
      },
      "TransactionPredictEvmTransferRequest": {
        "properties": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "type": {
            "type": "string",
            "const": "evm_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 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
          },
          "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"
              }
            }
          },
          "to": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/EvmRecipientHex"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "description": "The recipient of the transfer: either an address, a vault ID, or a contact ID.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "contact_id": "#/components/schemas/RecipientContactId",
                "hex": "#/components/schemas/EvmRecipientHex",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "asset_identifier": {
            "$ref": "#/components/schemas/EvmAssetIdentifierRequest",
            "description": "The asset to be transferred."
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "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/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "type",
          "to",
          "asset_identifier",
          "value"
        ],
        "title": "TransactionPredictEvmTransferRequest"
      },
      "TransactionPredictEvmUnwrapNativeRequest": {
        "properties": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "type": {
            "type": "string",
            "const": "evm_unwrap_native",
            "title": "Type",
            "description": "An EVM unwrap native transaction is for unwrapping to the native 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
          },
          "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
          },
          "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"
              }
            }
          },
          "chain": {
            "$ref": "#/components/schemas/EvmChainRequest",
            "description": "The chain that this transaction is on."
          },
          "amount": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The amount of wrapped token to unwrap. Specify one of the following: <ul><li>`value`<li>`max`</ul>",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain",
          "amount"
        ],
        "title": "TransactionPredictEvmUnwrapNativeRequest"
      },
      "TransactionPredictEvmWrapNativeRequest": {
        "properties": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "type": {
            "type": "string",
            "const": "evm_wrap_native",
            "title": "Type",
            "description": "An EVM wrap native transaction is for wrapping the native 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
          },
          "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
          },
          "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"
              }
            }
          },
          "chain": {
            "$ref": "#/components/schemas/EvmChainRequest",
            "description": "The chain that this transaction is on."
          },
          "amount": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The amount of native token to wrap. Specify one of the following: <ul><li>`value`<li>`max`</ul>",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain",
          "amount"
        ],
        "title": "TransactionPredictEvmWrapNativeRequest"
      },
      "TransactionPredictExchangeTransactionRequest": {
        "properties": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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"
              },
              {
                "$ref": "#/components/schemas/CreateExchangeInternalTransferRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "external_withdraw": "#/components/schemas/CreateExchangeExternalWithdrawRequest",
                "internal_transfer": "#/components/schemas/CreateExchangeInternalTransferRequest"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "vault_id",
          "type",
          "details"
        ],
        "title": "TransactionPredictExchangeTransactionRequest"
      },
      "TransactionPredictSolanaMessageRequest": {
        "properties": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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 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",
            "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.\nThe first account in the serialized transaction message must match theaddress of the vault in the request.\nIf the serialized message contains a recent block hash, the server may override it to prevent the transaction from expiring.\nAdditionally, 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.\nCan be omitted if the transaction requires no partial signatures, or if ephemeral_keys are passed instead.\nIf 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.\nCan be omitted if the transaction requires no partial signatures, or if signatures are passed instead.\nIf 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": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "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 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/SolanaRecipientBase58"
              },
              {
                "$ref": "#/components/schemas/RecipientVaultId"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "description": "The recipient of the transfer: either an address, a vault ID, or a contact ID.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "address": "#/components/schemas/SolanaRecipientBase58",
                "contact_id": "#/components/schemas/RecipientContactId",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units of currency to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "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": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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": {
          "fee_payer": {
            "description": "The vault that pays the fee for this transaction.",
            "$ref": "#/components/schemas/TransactionFeePayerVault"
          },
          "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 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"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "contact_id": "#/components/schemas/RecipientContactId",
                "hex": "#/components/schemas/SuiRecipientHex",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "The number of units of currency to transfer.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "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": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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"
              },
              {
                "$ref": "#/components/schemas/CreateTronSerializedRawTransactionRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "tron_serialized_raw_transaction": "#/components/schemas/CreateTronSerializedRawTransactionRequest",
                "tron_transfer": "#/components/schemas/CreateTronTransferRequest"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "vault_id",
          "type",
          "details"
        ],
        "title": "TransactionPredictTronTransactionRequest"
      },
      "TransactionPredictUtxoMessageRequest": {
        "properties": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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": {
          "should_run_policy_check": {
            "type": "boolean",
            "title": "Should Run Policy Check",
            "description": "Should run a policy check",
            "default": true
          },
          "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": "\nFordefi 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"
        ],
        "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_message",
          "tron_transaction",
          "utxo_message",
          "utxo_transaction"
        ],
        "title": "TransactionType"
      },
      "TransferDirection": {
        "type": "string",
        "enum": [
          "outgoing",
          "incoming",
          "internal"
        ],
        "title": "TransferDirection"
      },
      "TransferRecipientAddress": {
        "properties": {
          "type": {
            "type": "string",
            "const": "address",
            "title": "Type",
            "description": "The type of the recipient."
          },
          "address": {
            "type": "string",
            "title": "Address",
            "description": "The address of the recipient."
          }
        },
        "type": "object",
        "required": [
          "type",
          "address"
        ],
        "title": "TransferRecipientAddress"
      },
      "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. If empty, the contact is associated with all chains."
          },
          "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."
          },
          "memo": {
            "title": "Memo",
            "description": "Memo is an additional address feature used for identifying a recipient.",
            "type": "string"
          }
        },
        "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"
      },
      "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",
          "tron_shasta"
        ],
        "title": "TronChainUniqueId"
      },
      "TronContractCallDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "contract_call",
            "title": "Type",
            "description": "A TRON contract call transaction."
          },
          "sender": {
            "$ref": "#/components/schemas/EnrichedTronAddress",
            "description": "The sender of the transaction."
          },
          "recipient": {
            "description": "The recipient of the transaction.",
            "$ref": "#/components/schemas/EnrichedTronAddress"
          },
          "decoded_tx_bytes": {
            "title": "Decoded Tx Bytes",
            "description": "The json representation of the transaction's data",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "type",
          "sender"
        ],
        "title": "TronContractCallDetails"
      },
      "TronDelegateDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "delegate",
            "title": "Type",
            "description": "A TRON delegate transaction."
          },
          "sender": {
            "$ref": "#/components/schemas/EnrichedTronAddress",
            "description": "The sender of the transaction."
          },
          "recipient": {
            "description": "The recipient of the transaction.",
            "$ref": "#/components/schemas/EnrichedTronAddress"
          },
          "decoded_tx_bytes": {
            "title": "Decoded Tx Bytes",
            "description": "The json representation of the transaction's data",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "type",
          "sender"
        ],
        "title": "TronDelegateDetails"
      },
      "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"
      },
      "TronMessage": {
        "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "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": "tron_message",
            "title": "Type",
            "description": "TRON message type."
          },
          "tron_message_type": {
            "$ref": "#/components/schemas/TronMessageType",
            "description": "The type of the Tron message."
          },
          "raw_data": {
            "type": "string",
            "title": "Raw Data",
            "description": "The raw data of the message."
          },
          "chain": {
            "$ref": "#/components/schemas/EnrichedTronChain",
            "description": "The details of the chain that this message is on."
          },
          "sender": {
            "$ref": "#/components/schemas/EnrichedTronAddress",
            "description": "The sender of the message."
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "signatures",
          "direction",
          "interacted_vaults",
          "organization_id",
          "state",
          "state_changes",
          "type",
          "tron_message_type",
          "raw_data",
          "chain",
          "sender"
        ],
        "title": "TronMessage"
      },
      "TronMessageType": {
        "type": "string",
        "enum": [
          "typed_message_type_v1",
          "typed_message_type_v2"
        ],
        "title": "TronMessageType"
      },
      "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"
      },
      "TronStakeDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "stake",
            "title": "Type",
            "description": "A TRON stake transaction."
          },
          "sender": {
            "$ref": "#/components/schemas/EnrichedTronAddress",
            "description": "The sender of the transaction."
          },
          "recipient": {
            "description": "The recipient of the transaction.",
            "$ref": "#/components/schemas/EnrichedTronAddress"
          },
          "decoded_tx_bytes": {
            "title": "Decoded Tx Bytes",
            "description": "The json representation of the transaction's data",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "type",
          "sender"
        ],
        "title": "TronStakeDetails"
      },
      "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "block": {
            "description": "The block of the transaction.",
            "$ref": "#/components/schemas/Block"
          },
          "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_check": {
            "description": "The AML check.",
            "$ref": "#/components/schemas/AmlCheck"
          },
          "mined_result_status": {
            "description": "The mined result status of the transaction.",
            "$ref": "#/components/schemas/MinedResultStatus"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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"
              },
              {
                "$ref": "#/components/schemas/TronStakeDetails"
              },
              {
                "$ref": "#/components/schemas/TronUnstakeDetails"
              },
              {
                "$ref": "#/components/schemas/TronDelegateDetails"
              },
              {
                "$ref": "#/components/schemas/TronUndelegateDetails"
              },
              {
                "$ref": "#/components/schemas/TronContractCallDetails"
              }
            ],
            "description": "Details of the TRON transaction based on its type.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "contract_call": "#/components/schemas/TronContractCallDetails",
                "delegate": "#/components/schemas/TronDelegateDetails",
                "native_transfer": "#/components/schemas/TronNativeTransferDetails",
                "stake": "#/components/schemas/TronStakeDetails",
                "token_transfer": "#/components/schemas/TronTokenTransferDetails",
                "undelegate": "#/components/schemas/TronUndelegateDetails",
                "unstake": "#/components/schemas/TronUnstakeDetails"
              }
            }
          },
          "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"
          },
          "expected_result": {
            "description": "The expected result of the transaction in case it is mined.",
            "$ref": "#/components/schemas/TronTransactionResult"
          },
          "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",
          "interacted_vaults",
          "organization_id",
          "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",
          "stake",
          "unstake",
          "delegate",
          "undelegate",
          "contract_call"
        ],
        "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"
      },
      "TronTypedMessageV1Request": {
        "properties": {
          "type": {
            "type": "string",
            "const": "typed_message_type_v1",
            "title": "Type",
            "description": "V1 message type."
          },
          "chain": {
            "$ref": "#/components/schemas/TronChainUniqueId",
            "description": "The chain that this message is on. Specify the chain name."
          },
          "raw_data": {
            "type": "string",
            "pattern": "^0[xX][a-fA-F0-9]+$",
            "title": "Raw Data",
            "description": "The message to be signed, hex-encoded."
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain",
          "raw_data"
        ],
        "title": "TronTypedMessageV1Request"
      },
      "TronTypedMessageV2Base64RawData": {
        "properties": {
          "format": {
            "type": "string",
            "const": "base64",
            "title": "Format",
            "description": "Base64 format for raw data."
          },
          "raw_data_base64": {
            "type": "string",
            "title": "Raw Data Base64",
            "description": "The message to be signed, base64-encoded."
          }
        },
        "type": "object",
        "required": [
          "format",
          "raw_data_base64"
        ],
        "title": "TronTypedMessageV2Base64RawData"
      },
      "TronTypedMessageV2Request": {
        "properties": {
          "type": {
            "type": "string",
            "const": "typed_message_type_v2",
            "title": "Type",
            "description": "V2 message type."
          },
          "chain": {
            "$ref": "#/components/schemas/TronChainUniqueId",
            "description": "The chain that this message is on. Specify the chain name."
          },
          "raw_data": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/TronTypedMessageV2TextRawData"
              },
              {
                "$ref": "#/components/schemas/TronTypedMessageV2Base64RawData"
              }
            ],
            "description": "The message to be signed.",
            "discriminator": {
              "propertyName": "format",
              "mapping": {
                "base64": "#/components/schemas/TronTypedMessageV2Base64RawData",
                "text": "#/components/schemas/TronTypedMessageV2TextRawData"
              }
            }
          }
        },
        "type": "object",
        "required": [
          "type",
          "chain",
          "raw_data"
        ],
        "title": "TronTypedMessageV2Request"
      },
      "TronTypedMessageV2TextRawData": {
        "properties": {
          "format": {
            "type": "string",
            "const": "text",
            "title": "Format",
            "description": "Text format for raw data."
          },
          "raw_data_text": {
            "type": "string",
            "title": "Raw Data Text",
            "description": "The message to be signed as plain text."
          }
        },
        "type": "object",
        "required": [
          "format",
          "raw_data_text"
        ],
        "title": "TronTypedMessageV2TextRawData"
      },
      "TronUndelegateDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "undelegate",
            "title": "Type",
            "description": "A TRON undelegate transaction."
          },
          "sender": {
            "$ref": "#/components/schemas/EnrichedTronAddress",
            "description": "The sender of the transaction."
          },
          "recipient": {
            "description": "The recipient of the transaction.",
            "$ref": "#/components/schemas/EnrichedTronAddress"
          },
          "decoded_tx_bytes": {
            "title": "Decoded Tx Bytes",
            "description": "The json representation of the transaction's data",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "type",
          "sender"
        ],
        "title": "TronUndelegateDetails"
      },
      "TronUnstakeDetails": {
        "properties": {
          "type": {
            "type": "string",
            "const": "unstake",
            "title": "Type",
            "description": "A TRON unstake transaction."
          },
          "sender": {
            "$ref": "#/components/schemas/EnrichedTronAddress",
            "description": "The sender of the transaction."
          },
          "recipient": {
            "description": "The recipient of the transaction.",
            "$ref": "#/components/schemas/EnrichedTronAddress"
          },
          "decoded_tx_bytes": {
            "title": "Decoded Tx Bytes",
            "description": "The json representation of the transaction's data",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "type",
          "sender"
        ],
        "title": "TronUnstakeDetails"
      },
      "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "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."
          },
          "state": {
            "$ref": "#/components/schemas/MpcVaultState",
            "description": "New state 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_groups",
          "are_all_chains_disabled",
          "derivation_path",
          "public_key_compressed",
          "derivation_info",
          "origin_type",
          "state",
          "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"
              },
              {
                "$ref": "#/components/schemas/RecipientContactId"
              }
            ],
            "description": "The recipient of the transfer. Specify either a general address, the ID of another vault, or a contact ID.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "address": "#/components/schemas/CosmosTransferToAddressRequest",
                "contact_id": "#/components/schemas/RecipientContactId",
                "vault_id": "#/components/schemas/RecipientVaultId"
              }
            }
          },
          "asset_identifier": {
            "$ref": "#/components/schemas/CosmosAssetIdentifierRequest",
            "description": "The asset to be transferred."
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateRequestExplicitAmount"
              },
              {
                "$ref": "#/components/schemas/CreateRequestMaxAmount"
              }
            ],
            "description": "Specify one of the following: <ul><li>`value`<li>`max`</ul>",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "max": "#/components/schemas/CreateRequestMaxAmount",
                "value": "#/components/schemas/CreateRequestExplicitAmount"
              }
            }
          },
          "memo": {
            "title": "Memo",
            "description": "Transaction memo.",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "type",
          "to",
          "asset_identifier",
          "value"
        ],
        "title": "TypedCosmosTransferRequest"
      },
      "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."
          },
          "enriched_addresses": {
            "additionalProperties": {
              "$ref": "#/components/schemas/EnrichedEvmAddress"
            },
            "type": "object",
            "title": "Enriched Addresses",
            "description": "Addresses that are related to this message, enriched with metadata.Please NOTE: the dictionary keys are EIP-55 checksummed addresses",
            "default": {}
          },
          "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"
      },
      "UpdateVaultChangeRequestDiff": {
        "properties": {
          "added_vault_group_ids": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Added Vault Group Ids",
            "description": "The vault group ids to add the vault to."
          },
          "removed_vault_group_ids": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Removed Vault Group Ids",
            "description": "The vault group ids to remove the vault from."
          }
        },
        "type": "object",
        "title": "UpdateVaultChangeRequestDiff"
      },
      "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"
          }
        }
      },
      "UserAllowedIpSettings": {
        "properties": {
          "allow_type": {
            "$ref": "#/components/schemas/UserAllowedIpType",
            "description": "Type of restriction applied to calls by this user: <ul><li>`allow_all`: API calls by this user are allowed from any IP address.<li>`ip_list`: API calls by this user are allowed from a restricted list of IP addresses or CIDR ranges.</ul>"
          },
          "ip_list": {
            "title": "Ip List",
            "description": "The list of IP addresses or CIDR ranges that this user is allowed to make API calls from. This field is only used when allow_type is `ip_list`.e.g. `['192.168.1.1', '192.168.1.0/24']`",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object",
        "required": [
          "allow_type"
        ],
        "title": "UserAllowedIpSettings"
      },
      "UserAllowedIpType": {
        "type": "string",
        "enum": [
          "allow_all",
          "ip_list"
        ],
        "title": "UserAllowedIpType"
      },
      "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_code_generation",
          "onboarding_pending_activation",
          "reset_device_pending_code_generation",
          "reset_device_pending_activation",
          "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"
      },
      "UtxoAddressBalance": {
        "properties": {
          "address": {
            "$ref": "#/components/schemas/UtxoAddress",
            "description": "The address of the vault on the utxo chain."
          },
          "balances": {
            "$ref": "#/components/schemas/Balances",
            "description": "The balances of the address."
          },
          "priced_asset": {
            "$ref": "#/components/schemas/PricedAsset",
            "description": "The priced asset of the address."
          }
        },
        "type": "object",
        "required": [
          "address",
          "balances",
          "priced_asset"
        ],
        "title": "UtxoAddressBalance"
      },
      "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"
      },
      "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",
          "bitcoin_testnet_v4",
          "dogecoin_mainnet",
          "bitcoin_cash_mainnet",
          "pearl_mainnet"
        ],
        "title": "UtxoChainUniqueId"
      },
      "UtxoDlcTransactionType": {
        "type": "string",
        "enum": [
          "FUNDING_TRANSACTION",
          "REFUND_TRANSACTION",
          "CET_TRANSACTION"
        ],
        "title": "UtxoDlcTransactionType"
      },
      "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "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",
          "interacted_vaults",
          "organization_id",
          "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"
          },
          "is_send_max": {
            "title": "Is Send Max",
            "description": "Whether the output is a send-max output.",
            "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"
              },
              {
                "$ref": "#/components/schemas/UtxoOutputToContactIdRequest"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "address": "#/components/schemas/UtxoOutputToAddressRequest",
                "contact_id": "#/components/schemas/UtxoOutputToContactIdRequest",
                "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"
      },
      "UtxoOutputToContactIdRequest": {
        "properties": {
          "type": {
            "type": "string",
            "const": "contact_id",
            "title": "Type",
            "description": "The type of the recipient."
          },
          "contact_id": {
            "type": "string",
            "format": "uuid",
            "title": "Contact Id",
            "description": "The id of the address book contact."
          }
        },
        "type": "object",
        "required": [
          "type",
          "contact_id"
        ],
        "title": "UtxoOutputToContactIdRequest"
      },
      "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
          },
          "interacted_vaults": {
            "items": {
              "$ref": "#/components/schemas/VaultRef"
            },
            "type": "array",
            "title": "Interacted Vaults",
            "description": "The vaults that interacted with the transaction."
          },
          "related_transactions": {
            "title": "Related Transactions",
            "description": "The related transactions.",
            "items": {
              "$ref": "#/components/schemas/RelatedTransaction"
            },
            "type": "array"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "The organization that the transaction belongs to."
          },
          "block": {
            "description": "The block of the transaction.",
            "$ref": "#/components/schemas/Block"
          },
          "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_check": {
            "description": "The AML check.",
            "$ref": "#/components/schemas/AmlCheck"
          },
          "mined_result_status": {
            "description": "The mined result status of the transaction.",
            "$ref": "#/components/schemas/MinedResultStatus"
          },
          "simulation_status_result": {
            "description": "Whether simulation succeeded, reverted or failed.",
            "$ref": "#/components/schemas/SimulationStatusResult"
          },
          "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"
          },
          "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."
          },
          "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"
          },
          "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"
          },
          "dlc_data": {
            "description": "The DLC data of the transaction, if the transaction is part of a DLC contract.",
            "$ref": "#/components/schemas/DlcDataResponse"
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "modified_at",
          "signatures",
          "direction",
          "interacted_vaults",
          "organization_id",
          "state",
          "state_changes",
          "is_cancelation",
          "is_acceleration",
          "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: <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_groups": {
            "items": {
              "$ref": "#/components/schemas/VaultGroupRef"
            },
            "type": "array",
            "title": "Vault Groups",
            "description": "The vault groups this vault belongs to."
          },
          "skip_indexing_reason": {
            "description": "Reason why the vault is not being indexed.",
            "$ref": "#/components/schemas/SkipIndexingReason"
          },
          "native_assets": {
            "title": "Native Assets",
            "description": "List of native asset information for requested chains. Chain info is in asset_identifier.",
            "items": {
              "$ref": "#/components/schemas/OwnedAsset"
            },
            "type": "array"
          },
          "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."
          },
          "state": {
            "$ref": "#/components/schemas/MpcVaultState",
            "description": "New state 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_groups",
          "are_all_chains_disabled",
          "derivation_path",
          "public_key_compressed",
          "derivation_info",
          "origin_type",
          "state",
          "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"
          },
          "full_detail": {
            "title": "Full Detail",
            "description": "Full error message with additional details, if available.",
            "type": "string"
          },
          "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"
          },
          {
            "$ref": "#/components/schemas/SafeVault"
          }
        ],
        "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",
            "safe": "#/components/schemas/SafeVault",
            "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"
          },
          "vaults_count": {
            "$ref": "#/components/schemas/BoundCount",
            "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",
          "vaults_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."
          },
          "vaults_count": {
            "$ref": "#/components/schemas/BoundCount",
            "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",
          "vaults_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",
          "deleted"
        ],
        "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_ids": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Vault Group Ids",
            "description": "The unique identifiers of the vault groups 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": "The state of the vault."
          },
          "type": {
            "$ref": "#/components/schemas/VaultType",
            "description": "The vault type."
          },
          "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_ids",
          "name",
          "state",
          "type"
        ],
        "title": "VaultRef",
        "description": "Represents a reference to a vault in the Fordefi platform"
      },
      "VaultState": {
        "type": "string",
        "enum": [
          "active",
          "archived",
          "deleted",
          "pending",
          "aborted"
        ],
        "title": "VaultState"
      },
      "VaultType": {
        "type": "string",
        "enum": [
          "aptos",
          "black_box",
          "cosmos",
          "evm",
          "safe",
          "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."
          },
          "frozen": {
            "title": "Frozen",
            "description": "Whether the transaction is frozen.",
            "type": "boolean"
          },
          "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",
          "frozen",
          "state",
          "type",
          "aptos_transaction_type",
          "chain"
        ],
        "title": "WebhookAptosTransactionStatusChangeEvent"
      },
      "WebhookArchTransactionStatusChangeEvent": {
        "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."
          },
          "frozen": {
            "title": "Frozen",
            "description": "Whether the transaction is frozen.",
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/PushableTransactionState",
            "description": "The current state of the transaction."
          },
          "type": {
            "type": "string",
            "const": "arch_transaction",
            "title": "Type",
            "description": "The type of the transaction."
          },
          "arch_transaction_type": {
            "$ref": "#/components/schemas/ArchTransactionType",
            "description": "The type of the Arch transaction."
          },
          "hash": {
            "title": "Hash",
            "description": "The hash of the transaction.",
            "type": "string"
          },
          "chain": {
            "$ref": "#/components/schemas/ArchChain",
            "description": "The chain type this transaction is on."
          }
        },
        "type": "object",
        "required": [
          "transaction_id",
          "is_managed_transaction",
          "direction",
          "spam_state",
          "frozen",
          "state",
          "type",
          "arch_transaction_type",
          "chain"
        ],
        "title": "WebhookArchTransactionStatusChangeEvent"
      },
      "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."
          },
          "frozen": {
            "title": "Frozen",
            "description": "Whether the transaction is frozen.",
            "type": "boolean"
          },
          "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",
          "frozen",
          "state",
          "type",
          "cosmos_transaction_type",
          "chain"
        ],
        "title": "WebhookCosmosTransactionStatusChangeEvent"
      },
      "WebhookEnrichedTransactionStatusChangeEvent": {
        "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": {
            "$ref": "#/components/schemas/Transaction",
            "description": "The enriched transaction."
          },
          "event_type": {
            "type": "string",
            "const": "enriched_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": "WebhookEnrichedTransactionStatusChangeEvent"
      },
      "WebhookEvent": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/WebhookTransactionStatusChangeEvent"
          },
          {
            "$ref": "#/components/schemas/WebhookEnrichedTransactionStatusChangeEvent"
          }
        ],
        "discriminator": {
          "propertyName": "event_type",
          "mapping": {
            "enriched_transaction_state_update": "#/components/schemas/WebhookEnrichedTransactionStatusChangeEvent",
            "transaction_state_update": "#/components/schemas/WebhookTransactionStatusChangeEvent"
          }
        }
      },
      "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."
          },
          "frozen": {
            "title": "Frozen",
            "description": "Whether the transaction is frozen.",
            "type": "boolean"
          },
          "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",
          "frozen",
          "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."
          },
          "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"
          },
          "state": {
            "$ref": "#/components/schemas/PushableTransactionState",
            "description": "The current state of the transaction."
          }
        },
        "type": "object",
        "required": [
          "transaction_id",
          "is_managed_transaction",
          "direction",
          "spam_state",
          "type",
          "exchange_transaction_type",
          "state"
        ],
        "title": "WebhookExchangeTransactionStatusChangeEvent"
      },
      "WebhookResourceType": {
        "type": "string",
        "enum": [
          "transactions",
          "enriched_transaction_state_update"
        ],
        "title": "WebhookResourceType"
      },
      "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."
          },
          "frozen": {
            "title": "Frozen",
            "description": "Whether the transaction is frozen.",
            "type": "boolean"
          },
          "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",
          "frozen",
          "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."
          },
          "frozen": {
            "title": "Frozen",
            "description": "Whether the transaction is frozen.",
            "type": "boolean"
          },
          "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",
          "frozen",
          "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."
          },
          "frozen": {
            "title": "Frozen",
            "description": "Whether the transaction is frozen.",
            "type": "boolean"
          },
          "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",
          "frozen",
          "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."
          },
          "frozen": {
            "title": "Frozen",
            "description": "Whether the transaction is frozen.",
            "type": "boolean"
          },
          "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",
          "frozen",
          "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."
          },
          "frozen": {
            "title": "Frozen",
            "description": "Whether the transaction is frozen.",
            "type": "boolean"
          },
          "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",
          "frozen",
          "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/WebhookTronMessageStatusChangeEvent"
              },
              {
                "$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_message": "#/components/schemas/WebhookTronMessageStatusChangeEvent",
                "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"
      },
      "WebhookTronMessageStatusChangeEvent": {
        "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": "tron_message",
            "title": "Type",
            "description": "The type of the transaction."
          },
          "tron_message_type": {
            "$ref": "#/components/schemas/TronMessageType",
            "description": "The type of the Tron message."
          },
          "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_message_type",
          "chain"
        ],
        "title": "WebhookTronMessageStatusChangeEvent"
      },
      "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."
          },
          "frozen": {
            "title": "Frozen",
            "description": "Whether the transaction is frozen.",
            "type": "boolean"
          },
          "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",
          "frozen",
          "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."
          },
          "frozen": {
            "title": "Frozen",
            "description": "Whether the transaction is frozen.",
            "type": "boolean"
          },
          "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",
          "frozen",
          "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.\n\nThere are several types of users in the Fordefi platform:\n - **Person**: A human user of the platform.\n - **API User**, also commonly known as a service account.\n   See [Create an API user](https://docs.fordefi.com/developers/getting-started/create-an-api-user).\n - **API Signer**: Used to auto-sign transactions.\n   See [Automate Signing with API Signer](https://docs.fordefi.com/developers/getting-started/set-up-an-api-signer).\n\nUsers can have one of three possible roles, which define the permissions that the user is given:\n - **Admin**: A user with high privileges in the organization.\n   Only admins have permission to manage the policy, set up the backup, manage the address book,\n   and add or remove users in the organization.\n   Only a person can have an admin role.\n - **Trader**: A user who can create vaults and transactions.\n - **Viewer**: A user who has full view of the organization's users, addresses, and policies,\n   as well as of the vaults and transactions, but does not have permissions to create or modify them.\n\nThe 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. <br><br>There are two webhook types. Webhook V1 and Webhook V2. <ul><li>Webhook V1 contains minimal details about the transaction. It is deprecated and will be removed in the future. It is recommended to use Webhook V2 instead.</li><li>Webhook V2 delivers the full set of details about the transaction as retrieved by a call to the <a href='https://docs.fordefi.com/api/latest/openapi/transactions/get_transaction_api_v1_transactions__id__get'>Get Transaction</a> endpoint.</li></ul>"
    },
    {
      "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.\n        <br><br>\n        A transaction represents an operation that can be one of the following:\n        <ul>\n        <li>An on-chain action that modifies blockchain state</li>\n        <li>An off-chain cryptographically signed message or data</li>\n        </ul>\n        Consult the developer guide for more information on\n        <a href='https://docs.fordefi.com/developers/getting-started/create-and-authenticate-transactions'>creating</a>,\n        <a href='https://docs.fordefi.com/developers/monitor-transactions'>monitoring</a>,\n        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.\n        <br><br>\n        Batch transactions are currently supported only on Solana, for the purpose\n        of supporting the `signAllTransactions` flow used by certain Solana DApps.\n        Batch transactions undergo policy evaluation as a whole:  the policy is\n        applied to a “virtual transaction” whose list of instructions is the union\n        of the instructions of the individual transactions in the batch, and whose balance\n        changes are the aggregation of balance changes of the individual transactions."
    },
    {
      "name": "Vaults",
      "description": "These endpoints allow you to manage vaults.\n        <br><br>\n        A vault is the basic unit to manage funds.\n        Each vault supports a single \"chain family\", such as EVM, Bitcoin, Solana, Cosmos, etc.,\n        determined by the vault's type. A vault supports all the chains within the chain family\n        (e.g., an EVM vault supports all EVM chains)."
    },
    {
      "name": "Vault Groups",
      "description": "These endpoints allow you to view your vault groups.\n        <br><br>\n        Vault Groups are used to collectively manage policies and view permissions for a group of vaults.\n       <br><br>\n       The API is read-only. To manage vault groups, visit the Fordefi web console. See more info in the\n       <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,\n        including metadata, balances, and prices.\n        <br><br>\n        Fordefi supports native assets and fungible tokens on each of the supported blockchains,\n        and on many chains also non-fungible tokens.\n        <br><br>\n        Assets are chain-specific, meaning that USDC on Ethereum is different from USDC on Polygon.\n        "
    },
    {
      "name": "End Users",
      "description": "These endpoints allow you to manage WaaS end-users.\n        <br><br>\n        End users correspond to users of the platform who has integrated the Fordefi WaaS solution.\n        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.\n        <br><br>\n        User Groups are used to collectively manage policies and view permissions for a group of users.\n       <br><br>\n       The API is read-only. To manage user groups, visit the Fordefi web console. See more info in the\n       <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.\n        <br><br>\n        Audit logs are used to track the actions of users in your organization.\n        "
    },
    {
      "name": "Exports",
      "description": "These endpoints allow you to manage asynchronous actions such as data exports."
    },
    {
      "name": "Swaps",
      "description": "These endpoints allow you to manage swaps."
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ]
}