# Bequant Exchange Specification # # Auto-generated by: mix ccxt.extract bequant # CCXT version: 4.5.34 # Spec format version: 1 # # Review before use: # - signing: Detected from sign() method, verify with testnet # - endpoints: Raw paths extracted, map to unified API as needed # - exceptions: Extracted (exact, broad, HTTP status codes) # - features/options: Extracted from describe() # - classification: Set to :supported initially, promote after validation # %{ api_param_requirements: nil, certified: false, classification: :pro, comment: nil, countries: [ "MT" ], currencies: %{}, currency_aliases: %{ "AUTO" => "Cube", "BCC" => "BCC", "BCHSV" => "BSV", "BDP" => "BidiPass", "BET" => "DAO.Casino", "BIT" => "BitRewards", "BOX" => "BOX Token", "CPT" => "Cryptaur", "GET" => "Themis", "GMT" => "GMT Token", "HSR" => "HC", "IQ" => "IQ.Cash", "LNC" => "LinkerCoin", "PLA" => "PlayChip", "PNT" => "Penta", "SBTC" => "Super Bitcoin", "STEPN" => "GMT", "STX" => "STOX", "TV" => "Tokenville", "XBT" => "BTC", "XMT" => "MTL", "XPNT" => "PNT" }, dex: false, enable_rate_limit: true, endpoint_extraction_stats: %{ "capturedMethods" => 48, "coveragePercent" => 100, "enabledMethods" => 53, "excluded" => [ %{ "method" => "fetchDepositWithdrawFee", "reason" => "emulated (returns cached data, no HTTP call)" }, %{ "method" => "fetchMarginMode", "reason" => "emulated (returns cached data, no HTTP call)" }, %{ "method" => "fetchTransactions", "reason" => "emulated (returns cached data, no HTTP call)" } ], "excludedMethods" => 3, "extractableMethods" => 50, "failures" => [ %{ "error" => "bequant fetchPosition() not support this market type", "method" => "fetchPosition" }, %{ "error" => "bequant setLeverage() requires a margin_balance parameter that will transfer margin to the specified trading pair", "method" => "setLeverage" } ] }, endpoints: [ %{ api_section: "private", auth: true, cost: 1, market_type: :spot, method: :delete, name: :cancel_all_orders, param_mappings: %{}, params: [ :symbol ], path: "/spot/order", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 1, market_type: :spot, method: :delete, name: :cancel_order, param_mappings: %{ "id" => "client_order_id" }, params: [ :id, :symbol ], path: "/spot/order/{client_order_id}", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 30, market_type: :spot, method: :post, name: :create_deposit_address, param_mappings: %{ "code" => "currency" }, params: [ :code ], path: "/wallet/crypto/address", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 1, default_params: %{ "type" => "limit" }, market_type: :spot, method: :post, name: :create_limit_order, param_mappings: %{ "amount" => "quantity" }, params: [ :symbol, :side, :amount, :price ], path: "/spot/order", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 1, default_params: %{ "type" => "market" }, market_type: :spot, method: :post, name: :create_market_order, param_mappings: %{ "amount" => "quantity" }, params: [ :symbol, :side, :amount, :price ], path: "/spot/order", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 1, market_type: :spot, method: :post, name: :create_order, param_mappings: %{ "amount" => "quantity" }, params: [ :symbol, :type, :side, :amount, :price ], path: "/spot/order", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 1, default_params: %{ "post_only" => true }, market_type: :spot, method: :post, name: :create_post_only_order, param_mappings: %{ "amount" => "quantity" }, params: [ :symbol, :type, :side, :amount, :price ], path: "/spot/order", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 1, default_params: %{ "margin_mode" => "cross", "reduce_only" => true, "symbol" => "BTCUSDT" }, market_type: :swap, method: :post, name: :create_reduce_only_order, param_mappings: %{ "amount" => "quantity" }, params: [ :symbol, :type, :side, :amount, :price ], path: "/futures/order", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 1, default_params: %{ "margin_mode" => "cross", "symbol" => "BTCUSDT", "triggerDirection" => "below", "type" => "stopLimit" }, market_type: :swap, method: :post, name: :create_stop_limit_order, param_mappings: %{ "amount" => "quantity", "triggerPrice" => "stop_price" }, params: [ :symbol, :side, :amount, :price, :triggerPrice ], path: "/futures/order", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 1, default_params: %{ "margin_mode" => "cross", "symbol" => "BTCUSDT", "triggerDirection" => "below", "type" => "stopMarket" }, market_type: :swap, method: :post, name: :create_stop_market_order, param_mappings: %{ "amount" => "quantity", "triggerPrice" => "stop_price" }, params: [ :symbol, :side, :amount, :triggerPrice ], path: "/futures/order", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 1, default_params: %{ "margin_mode" => "cross", "symbol" => "BTCUSDT", "triggerDirection" => "below", "type" => "stopLimit" }, market_type: :swap, method: :post, name: :create_stop_order, param_mappings: %{ "amount" => "quantity", "triggerPrice" => "stop_price" }, params: [ :symbol, :type, :side, :amount, :price, :triggerPrice ], path: "/futures/order", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 1, market_type: :spot, method: :patch, name: :edit_order, param_mappings: %{ "amount" => "quantity", "id" => "client_order_id" }, params: [ :id, :symbol, :type, :side, :amount, :price ], path: "/spot/order/{client_order_id}", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 15, market_type: :spot, method: :get, name: :fetch_balance, param_mappings: %{}, params: [], path: "/spot/balance", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 15, market_type: :spot, method: :get, name: :fetch_closed_orders, param_mappings: %{}, params: [ :symbol, :since, :limit ], path: "/spot/history/order", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, market_type: :spot, method: :get, name: :fetch_currencies, param_mappings: %{}, params: [], path: "/public/currency", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 30, market_type: :spot, method: :get, name: :fetch_deposit_address, param_mappings: %{ "code" => "currency" }, params: [ :code ], path: "/wallet/crypto/address", response_transformer: {:extract_path_unwrap, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, market_type: :spot, method: :get, name: :fetch_deposit_withdraw_fees, param_mappings: %{}, params: [ :codes ], path: "/public/currency", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 30, default_params: %{ "types" => "DEPOSIT" }, market_type: :spot, method: :get, name: :fetch_deposits, param_mappings: %{ "code" => "currencies" }, params: [ :code, :since, :limit ], path: "/wallet/transactions", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 30, default_params: %{ "types" => "DEPOSIT,WITHDRAW" }, market_type: :spot, method: :get, name: :fetch_deposits_withdrawals, param_mappings: %{ "code" => "currencies" }, params: [ :code, :since, :limit ], path: "/wallet/transactions", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, default_params: %{ "symbol" => "BTCUSDT" }, market_type: :swap, method: :get, name: :fetch_funding_rate, param_mappings: %{}, params: [ :symbol ], path: "/public/futures/info/{symbol}", response_transformer: {:extract_path_unwrap, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, default_params: %{ "symbols" => "BTCUSDT" }, market_type: :swap, method: :get, name: :fetch_funding_rate_history, param_mappings: %{}, params: [ :symbol, :since, :limit ], path: "/public/futures/history/funding", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, default_params: %{ "symbols" => "BTCUSDT" }, market_type: :swap, method: :get, name: :fetch_funding_rates, param_mappings: %{}, params: [ :symbols ], path: "/public/futures/info", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, default_params: %{ "period" => "M1", "symbol" => "BTCUSDT" }, market_type: :swap, method: :get, name: :fetch_index_ohlcv, param_mappings: %{ "timeframe" => "period" }, params: [ :symbol, :timeframe, :since, :limit ], path: "/public/futures/candles/index_price/{symbol}", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, market_type: :spot, method: :get, name: :fetch_l2_order_book, param_mappings: %{}, params: [ :symbol, :limit ], path: "/public/orderbook/{symbol}", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 1, default_params: %{ "symbol" => "BTCUSDT" }, market_type: :swap, method: :get, name: :fetch_leverage, param_mappings: %{}, params: [ :symbol ], path: "/futures/account/isolated/{symbol}", response_transformer: {:extract_path_unwrap, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 15, market_type: :swap, method: :get, name: :fetch_margin_modes, param_mappings: %{}, params: [ :symbols ], path: "/futures/config", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, default_params: %{ "period" => "M1", "symbol" => "BTCUSDT" }, market_type: :swap, method: :get, name: :fetch_mark_ohlcv, param_mappings: %{ "timeframe" => "period" }, params: [ :symbol, :timeframe, :since, :limit ], path: "/public/futures/candles/mark_price/{symbol}", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, market_type: :spot, method: :get, name: :fetch_markets, param_mappings: %{}, params: [], path: "/public/symbol", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 15, market_type: :spot, method: :get, name: :fetch_my_trades, param_mappings: %{}, params: [ :symbol, :since, :limit ], path: "/spot/history/trade", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, default_params: %{ "period" => "H1" }, market_type: :spot, method: :get, name: :fetch_ohlcv, param_mappings: %{ "since" => "from", "timeframe" => "period" }, params: [ :symbol, :timeframe, :since, :limit ], path: "/public/candles/{symbol}", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, default_params: %{ "symbol" => "BTCUSDT" }, market_type: :swap, method: :get, name: :fetch_open_interest, param_mappings: %{}, params: [ :symbol ], path: "/public/futures/info/{symbol}", response_transformer: {:extract_path_unwrap, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, default_params: %{ "symbols" => "BTCUSDT" }, market_type: :spot, method: :get, name: :fetch_open_interests, param_mappings: %{}, params: [ :symbols ], path: "/public/futures/info", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 1, market_type: :spot, method: :get, name: :fetch_open_order, param_mappings: %{ "arg0" => "client_order_id" }, params: [], path: "/spot/order/{client_order_id}", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 1, market_type: :spot, method: :get, name: :fetch_open_orders, param_mappings: %{}, params: [ :symbol, :since, :limit ], path: "/spot/order", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 15, market_type: :spot, method: :get, name: :fetch_order, param_mappings: %{ "id" => "client_order_id" }, params: [ :id, :symbol ], path: "/spot/history/order", response_transformer: {:extract_path_unwrap, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, market_type: :spot, method: :get, name: :fetch_order_book, param_mappings: %{ "limit" => "depth" }, params: [ :symbol, :limit ], path: "/public/orderbook/{symbol}", response_transformer: {:extract_path_unwrap, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, default_params: %{ "symbols" => "BTCUSDT" }, market_type: :spot, method: :get, name: :fetch_order_books, param_mappings: %{}, params: [ :symbols, :limit ], path: "/public/orderbook", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 15, market_type: :spot, method: :get, name: :fetch_order_trades, param_mappings: %{ "id" => "order_id" }, params: [ :id, :symbol, :since, :limit ], path: "/spot/history/trade", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 1, market_type: :swap, method: :get, name: :fetch_positions, param_mappings: %{}, params: [ :symbols ], path: "/futures/account", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, default_params: %{ "period" => "M1", "symbol" => "BTCUSDT" }, market_type: :swap, method: :get, name: :fetch_premium_index_ohlcv, param_mappings: %{ "timeframe" => "period" }, params: [ :symbol, :timeframe, :since, :limit ], path: "/public/futures/candles/premium_index/{symbol}", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, market_type: :spot, method: :get, name: :fetch_ticker, param_mappings: %{}, params: [ :symbol ], path: "/public/ticker/{symbol}", response_transformer: {:extract_path_unwrap, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, default_params: %{ "symbols" => "BTCUSDT" }, market_type: :spot, method: :get, name: :fetch_tickers, param_mappings: %{}, params: [ :symbols ], path: "/public/ticker", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "public", auth: false, cost: 10, market_type: :spot, method: :get, name: :fetch_trades, param_mappings: %{ "since" => "from" }, params: [ :symbol, :since, :limit ], path: "/public/trades/{symbol}", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 15, market_type: :spot, method: :get, name: :fetch_trading_fee, param_mappings: %{}, params: [ :symbol ], path: "/spot/fee/{symbol}", response_transformer: {:extract_path_unwrap, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 15, market_type: :spot, method: :get, name: :fetch_trading_fees, param_mappings: %{}, params: [], path: "/spot/fee", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 30, default_params: %{ "types" => "WITHDRAW" }, market_type: :spot, method: :get, name: :fetch_withdrawals, param_mappings: %{ "code" => "currencies" }, params: [ :code, :since, :limit ], path: "/wallet/transactions", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 30, default_params: %{ "destination" => "derivatives" }, market_type: :spot, method: :post, name: :transfer, param_mappings: %{ "code" => "currency", "fromAccount" => "source" }, params: [ :code, :amount, :fromAccount, :toAccount ], path: "/wallet/transfer", response_transformer: {:extract_path, ["config"]}, source: :intercepted }, %{ api_section: "private", auth: true, cost: 30, market_type: :spot, method: :post, name: :withdraw, param_mappings: %{ "code" => "currency" }, params: [ :code, :amount, :address, :tag ], path: "/wallet/crypto/withdraw", response_transformer: {:extract_path, ["config"]}, source: :intercepted } ], error_code_details: %{ 10001 => %{ description: nil, type: :invalid_parameters }, 1002 => %{ description: nil, type: :invalid_credentials }, 10021 => %{ description: nil, type: :access_restricted }, 10022 => %{ description: nil, type: :invalid_parameters }, 1003 => %{ description: nil, type: :access_restricted }, 1004 => %{ description: nil, type: :invalid_credentials }, 1005 => %{ description: nil, type: :invalid_credentials }, 20001 => %{ description: nil, type: :insufficient_balance }, 20002 => %{ description: nil, type: :order_not_found }, 20003 => %{ description: nil, type: :exchange_error }, 20004 => %{ description: nil, type: :exchange_error }, 20005 => %{ description: nil, type: :exchange_error }, 20006 => %{ description: nil, type: :exchange_error }, 20007 => %{ description: nil, type: :exchange_error }, 20008 => %{ description: nil, type: :invalid_order }, 20009 => %{ description: nil, type: :invalid_order }, 2001 => %{ description: nil, type: :invalid_order }, 20010 => %{ description: nil, type: :network_error }, 20011 => %{ description: nil, type: :exchange_error }, 20012 => %{ description: nil, type: :exchange_error }, 20014 => %{ description: nil, type: :exchange_error }, 20016 => %{ description: nil, type: :exchange_error }, 20018 => %{ description: nil, type: :exchange_error }, 2002 => %{ description: nil, type: :invalid_parameters }, 2003 => %{ description: nil, type: :invalid_parameters }, 20031 => %{ description: nil, type: :exchange_error }, 20032 => %{ description: nil, type: :exchange_error }, 20033 => %{ description: nil, type: :exchange_error }, 20034 => %{ description: nil, type: :exchange_error }, 20040 => %{ description: nil, type: :exchange_error }, 20041 => %{ description: nil, type: :exchange_error }, 20042 => %{ description: nil, type: :exchange_error }, 20043 => %{ description: nil, type: :exchange_error }, 20044 => %{ description: nil, type: :access_restricted }, 20045 => %{ description: nil, type: :invalid_order }, 20047 => %{ description: nil, type: :invalid_order }, 20048 => %{ description: nil, type: :invalid_order }, 20049 => %{ description: nil, type: :invalid_order }, 20080 => %{ description: nil, type: :exchange_error }, 2010 => %{ description: nil, type: :invalid_parameters }, 2011 => %{ description: nil, type: :invalid_parameters }, 2012 => %{ description: nil, type: :invalid_parameters }, 2020 => %{ description: nil, type: :invalid_parameters }, 2022 => %{ description: nil, type: :invalid_parameters }, 2024 => %{ description: nil, type: :invalid_order }, 21001 => %{ description: nil, type: :exchange_error }, 21003 => %{ description: nil, type: :access_restricted }, 21004 => %{ description: nil, type: :access_restricted }, 22004 => %{ description: nil, type: :exchange_error }, 22008 => %{ description: nil, type: :exchange_error }, 429 => %{ description: nil, type: :rate_limited }, 500 => %{ description: nil, type: :exchange_error }, 503 => %{ description: nil, type: :network_error }, 504 => %{ description: nil, type: :network_error }, 600 => %{ description: nil, type: :access_restricted }, 800 => %{ description: nil, type: :exchange_error } }, error_codes: %{ 10001 => :invalid_parameters, 1002 => :invalid_credentials, 10021 => :access_restricted, 10022 => :invalid_parameters, 1003 => :access_restricted, 1004 => :invalid_credentials, 1005 => :invalid_credentials, 20001 => :insufficient_balance, 20002 => :order_not_found, 20003 => :exchange_error, 20004 => :exchange_error, 20005 => :exchange_error, 20006 => :exchange_error, 20007 => :exchange_error, 20008 => :invalid_order, 20009 => :invalid_order, 2001 => :invalid_order, 20010 => :network_error, 20011 => :exchange_error, 20012 => :exchange_error, 20014 => :exchange_error, 20016 => :exchange_error, 20018 => :exchange_error, 2002 => :invalid_parameters, 2003 => :invalid_parameters, 20031 => :exchange_error, 20032 => :exchange_error, 20033 => :exchange_error, 20034 => :exchange_error, 20040 => :exchange_error, 20041 => :exchange_error, 20042 => :exchange_error, 20043 => :exchange_error, 20044 => :access_restricted, 20045 => :invalid_order, 20047 => :invalid_order, 20048 => :invalid_order, 20049 => :invalid_order, 20080 => :exchange_error, 2010 => :invalid_parameters, 2011 => :invalid_parameters, 2012 => :invalid_parameters, 2020 => :invalid_parameters, 2022 => :invalid_parameters, 2024 => :invalid_order, 21001 => :exchange_error, 21003 => :access_restricted, 21004 => :access_restricted, 22004 => :exchange_error, 22008 => :exchange_error, 429 => :rate_limited, 500 => :exchange_error, 503 => :network_error, 504 => :network_error, 600 => :access_restricted, 800 => :exchange_error }, exceptions: %{ exact: %{ "10001" => :bad_request, "1002" => :authentication_error, "10021" => :account_suspended, "10022" => :bad_request, "1003" => :permission_denied, "1004" => :authentication_error, "1005" => :authentication_error, "20001" => :insufficient_funds, "20002" => :order_not_found, "20003" => :exchange_error, "20004" => :exchange_error, "20005" => :exchange_error, "20006" => :exchange_error, "20007" => :exchange_error, "20008" => :invalid_order, "20009" => :invalid_order, "2001" => :bad_symbol, "20010" => :on_maintenance, "20011" => :exchange_error, "20012" => :exchange_error, "20014" => :exchange_error, "20016" => :exchange_error, "20018" => :exchange_error, "2002" => :bad_request, "2003" => :bad_request, "20031" => :exchange_error, "20032" => :exchange_error, "20033" => :exchange_error, "20034" => :exchange_error, "20040" => :exchange_error, "20041" => :exchange_error, "20042" => :exchange_error, "20043" => :exchange_error, "20044" => :permission_denied, "20045" => :invalid_order, "20047" => :invalid_order, "20048" => :invalid_order, "20049" => :invalid_order, "20080" => :exchange_error, "2010" => :bad_request, "2011" => :bad_request, "2012" => :bad_request, "2020" => :bad_request, "2022" => :bad_request, "2024" => :invalid_order, "21001" => :exchange_error, "21003" => :account_suspended, "21004" => :account_suspended, "22004" => :exchange_error, "22008" => :exchange_error, "429" => :rate_limit_exceeded, "500" => :exchange_error, "503" => :exchange_not_available, "504" => :exchange_not_available, "600" => :permission_denied, "800" => :exchange_error } }, exchange_options: %{ "accountsByType" => %{ "funding" => "wallet", "future" => "derivatives", "spot" => "spot", "swap" => "derivatives" }, "defaultNetwork" => "ERC20", "defaultNetworkCodeReplacements" => %{ "BRC20" => %{ "BRC20" => "BTC" }, "CRO" => %{ "CRC20" => "CRONOS" }, "ETH" => %{ "ERC20" => "ETH" }, "TRX" => %{ "TRC20" => "TRX" } }, "defaultNetworks" => %{ "ETH" => "ETH", "USDT" => "TRC20" }, "networks" => %{ "ABBC" => "ABBC", "ADA" => "ADA", "AE" => "AE", "ALGO" => "ALGO", "APT" => "APT", "AR" => "AR", "ATOM" => "ATOM", "AVAXC" => "AVAC", "AVAXX" => "AVAX", "BEP2" => "BNB", "BEP20" => "BSC", "BSV" => "BCHSV", "BTC" => "btc", "CELO" => "CELO", "CHZ" => "CHZ", "CKB" => "CKB", "CTXC" => "CTXC", "DASH" => "DASH", "DCR" => "DCR", "DGB" => "DGB", "DOGE" => "doge", "EGLD" => "EGLD", "EOS" => "EOS", "ERC20" => "ETH", "ETC" => "ETC", "ETH" => "eth", "ETHW" => "ETHW", "EVER" => "EVER", "FET" => "FET", "FIL" => "FIL", "FLOW" => "FLOW", "GLMR" => "GLMR", "GRIN" => "GRIN", "HBAR" => "HBAR", "HIVE" => "HIVE", "HYDRA" => "HYDRA", "ICP" => "ICP", "ICX" => "ICX", "IOST" => "IOST", "IOTA" => "IOTA", "IOTX" => "IOTX", "KAVA" => "KAVA", "KLAY" => "KIM", "KOMODO" => "KMD", "KSM" => "KSM", "LSK" => "LSK", "LTC" => "ltc", "MATIC" => "POLYGON", "MINA" => "MINA", "MOVR" => "MOVR", "NANO" => "NANO", "NEAR" => "NEAR", "NEM" => "XEM", "NEO" => "NEO", "OASIS" => "ROSE", "OMNI" => "BTC", "ONE" => "ONE", "ONT" => "ONT", "OPTIMISM" => "OP", "PLCU" => "PLCU", "QTUM" => "QTUM", "REI" => "REI", "RVN" => "RVN", "SC" => "SC", "SCRT" => "SCRT", "SOL" => "SOL", "STEEM" => "STEEM", "THETA" => "Theta", "TRC20" => "TRX", "TRUE" => "TRUE", "VET" => "VET", "VSYS" => "VSYS", "WAVES" => "WAVES", "WAX" => "WAX", "XCH" => "XCH", "XEC" => "XEC", "XLM" => "XLM", "XMR" => "xmr", "XRD" => "XRD", "XRP" => "XRP", "XTZ" => "XTZ", "XVG" => "XVG", "XYM" => "XYM", "ZEC" => "ZEC", "ZEN" => "ZEN", "ZIL" => "ZIL" }, "networksById" => %{ "ABBC" => "ABBC", "ADA" => "ADA", "AE" => "AE", "ALGO" => "ALGO", "APT" => "APT", "AR" => "AR", "ATOM" => "ATOM", "AVAC" => "AVAXC", "AVAX" => "AVAXX", "BCHSV" => "BSV", "BNB" => "BEP2", "BSC" => "BEP20", "BTC" => "OMNI", "CELO" => "CELO", "CHZ" => "CHZ", "CKB" => "CKB", "CTXC" => "CTXC", "DASH" => "DASH", "DCR" => "DCR", "DGB" => "DGB", "EGLD" => "EGLD", "EOS" => "EOS", "ETC" => "ETC", "ETH" => "ERC20", "ETHW" => "ETHW", "EVER" => "EVER", "FET" => "FET", "FIL" => "FIL", "FLOW" => "FLOW", "GLMR" => "GLMR", "GRIN" => "GRIN", "HBAR" => "HBAR", "HIVE" => "HIVE", "HYDRA" => "HYDRA", "ICP" => "ICP", "ICX" => "ICX", "IOST" => "IOST", "IOTA" => "IOTA", "IOTX" => "IOTX", "KAVA" => "KAVA", "KIM" => "KLAY", "KMD" => "KOMODO", "KSM" => "KSM", "LSK" => "LSK", "MINA" => "MINA", "MOVR" => "MOVR", "NANO" => "NANO", "NEAR" => "NEAR", "NEO" => "NEO", "ONE" => "ONE", "ONT" => "ONT", "OP" => "OPTIMISM", "PLCU" => "PLCU", "POLYGON" => "MATIC", "QTUM" => "QTUM", "REI" => "REI", "ROSE" => "OASIS", "RVN" => "RVN", "SC" => "SC", "SCRT" => "SCRT", "SOL" => "SOL", "STEEM" => "STEEM", "TRUE" => "TRUE", "TRX" => "TRC20", "Theta" => "THETA", "VET" => "VET", "VSYS" => "VSYS", "WAVES" => "WAVES", "WAX" => "WAX", "XCH" => "XCH", "XEC" => "XEC", "XEM" => "NEM", "XLM" => "XLM", "XRD" => "XRD", "XRP" => "XRP", "XTZ" => "XTZ", "XVG" => "XVG", "XYM" => "XYM", "ZEC" => "ZEC", "ZEN" => "ZEN", "ZIL" => "ZIL", "btc" => "BTC", "doge" => "DOGE", "eth" => "ETH", "ltc" => "LTC", "xmr" => "XMR" }, "withdraw" => %{ "includeFee" => false } }, extended_metadata: %{ limits: %{ "amount" => %{}, "cost" => %{}, "leverage" => %{}, "price" => %{} }, logo_url: "https://github.com/user-attachments/assets/0583ef1f-29fe-4b7c-8189-63565a0e2867", referral_url: "https://bequant.io/referral/dd104e3bee7634ec" }, extracted_metadata: %{ ccxt_version: "4.5.34" }, features: %{ default: %{ create_order: %{ hedged: false, iceberg: true, leverage: false, margin_mode: false, market_buy_by_cost: false, market_buy_requires_price: false, self_trade_prevention: false, stop_loss_price: false, take_profit_price: false, time_in_force: %{ fok: true, gtd: true, ioc: true, po: true }, trailing: false, trigger_direction: false, trigger_price: true }, fetch_closed_orders: %{ days_back: 100000, days_back_canceled: 1, limit: 1000, margin_mode: true, market_type: true, symbol_required: false, trailing: false, trigger: false, until_days: 100000 }, fetch_my_trades: %{ days_back: 100000, limit: 1000, margin_mode: true, market_type: true, symbol_required: false, until_days: 100000 }, fetch_ohlcv: %{ limit: 1000 }, fetch_open_orders: %{ limit: 1000, margin_mode: true, market_type: true, symbol_required: false, trailing: false, trigger: false }, fetch_order: %{ margin_mode: true, market_type: true, symbol_required: false, trailing: false, trigger: false }, sandbox: true }, for_derivatives: %{ create_order: %{ margin_mode: true }, extends: "default", fetch_closed_orders: %{ margin_mode: false }, fetch_my_trades: %{ margin_mode: false }, fetch_open_orders: %{ margin_mode: false }, fetch_order: %{ margin_mode: false } }, future: %{ inverse: %{ extends: "forDerivatives" }, linear: %{ extends: "forDerivatives" } }, spot: %{ extends: "default" }, swap: %{ inverse: %{ extends: "forDerivatives" }, linear: %{ extends: "forDerivatives" } } }, fees: %{ trading: %{ maker: 0.0009, percentage: true, taker: 0.0009, tier_based: true, tiers: %{ maker: [ %{ fee: 0.0009, volume: 0 }, %{ fee: 0.0007, volume: 10 }, %{ fee: 0.0006, volume: 100 }, %{ fee: 0.0005, volume: 500 }, %{ fee: 0.0003, volume: 1000 }, %{ fee: 0.0002, volume: 5000 }, %{ fee: 0.0001, volume: 10000 }, %{ fee: 0, volume: 20000 }, %{ fee: -0.0001, volume: 50000 }, %{ fee: -0.0001, volume: 100000 } ], taker: [ %{ fee: 0.0009, volume: 0 }, %{ fee: 0.0008, volume: 10 }, %{ fee: 0.0007, volume: 100 }, %{ fee: 0.0007, volume: 500 }, %{ fee: 0.0006, volume: 1000 }, %{ fee: 0.0006, volume: 5000 }, %{ fee: 0.0005, volume: 10000 }, %{ fee: 0.0004, volume: 20000 }, %{ fee: 0.0003, volume: 50000 }, %{ fee: 0.0002, volume: 100000 } ] } } }, handle_content_type_application_zip: nil, handle_errors_source: "handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {\n //\n // {\n // \"error\": {\n // \"code\": 20001,\n // \"message\": \"Insufficient funds\",\n // \"description\": \"Check that the funds are sufficient, given commissions\"\n // }\n // }\n //\n // {\n // \"error\": {\n // \"code\": \"600\",\n // \"message\": \"Action not allowed\"\n // }\n // }\n //\n const error = this.safeValue(response, 'error');\n const errorCode = this.safeString(error, 'code');\n if (errorCode !== undefined) {\n const feedback = this.id + ' ' + body;\n const message = this.safeString2(error, 'message', 'description');\n this.throwExactlyMatchedException(this.exceptions['exact'], errorCode, feedback);\n this.throwBroadlyMatchedException(this.exceptions['broad'], message, feedback);\n throw new errors.ExchangeError(feedback);\n }\n return undefined;\n }", has: %{ add_margin: true, borrow_cross_margin: false, borrow_isolated_margin: false, borrow_margin: false, c_o_r_s: false, cancel_all_orders: true, cancel_all_orders_ws: false, cancel_order: true, cancel_order_with_client_order_id: false, cancel_order_ws: false, cancel_orders: false, cancel_orders_with_client_order_id: false, cancel_orders_ws: false, close_all_positions: false, close_position: false, create_deposit_address: true, create_limit_buy_order: false, create_limit_buy_order_ws: false, create_limit_order: true, create_limit_order_ws: false, create_limit_sell_order: false, create_limit_sell_order_ws: false, create_market_buy_order: false, create_market_buy_order_with_cost: false, create_market_buy_order_with_cost_ws: false, create_market_buy_order_ws: false, create_market_order: true, create_market_order_with_cost: false, create_market_order_with_cost_ws: false, create_market_order_ws: true, create_market_sell_order: false, create_market_sell_order_with_cost: false, create_market_sell_order_with_cost_ws: false, create_market_sell_order_ws: false, create_order: true, create_order_with_take_profit_and_stop_loss: false, create_order_with_take_profit_and_stop_loss_ws: false, create_order_ws: false, create_orders: false, create_post_only_order: true, create_post_only_order_ws: false, create_reduce_only_order: true, create_reduce_only_order_ws: false, create_stop_limit_order: true, create_stop_limit_order_ws: false, create_stop_loss_order: false, create_stop_loss_order_ws: false, create_stop_market_order: true, create_stop_market_order_ws: false, create_stop_order: true, create_stop_order_ws: false, create_take_profit_order: false, create_take_profit_order_ws: false, create_trailing_amount_order: false, create_trailing_amount_order_ws: false, create_trailing_percent_order: false, create_trailing_percent_order_ws: false, create_trigger_order: false, create_trigger_order_ws: false, deposit: false, edit_order: true, edit_order_with_client_order_id: false, edit_order_ws: false, edit_orders: false, fetch_accounts: false, fetch_balance: true, fetch_balance_ws: false, fetch_bids_asks: false, fetch_borrow_interest: false, fetch_borrow_rate: false, fetch_borrow_rate_histories: false, fetch_borrow_rate_history: false, fetch_borrow_rates: false, fetch_borrow_rates_per_symbol: false, fetch_canceled_and_closed_orders: false, fetch_canceled_orders: false, fetch_closed_order: false, fetch_closed_orders: true, fetch_closed_orders_ws: false, fetch_convert_currencies: false, fetch_convert_quote: false, fetch_convert_trade: false, fetch_convert_trade_history: false, fetch_cross_borrow_rate: false, fetch_cross_borrow_rates: false, fetch_currencies: true, fetch_currencies_ws: true, fetch_deposit: false, fetch_deposit_address: true, fetch_deposit_addresses: false, fetch_deposit_addresses_by_network: false, fetch_deposit_withdraw_fee: true, fetch_deposit_withdraw_fees: true, fetch_deposits: true, fetch_deposits_withdrawals: true, fetch_deposits_ws: false, fetch_funding_history: false, fetch_funding_interval: false, fetch_funding_intervals: false, fetch_funding_rate: true, fetch_funding_rate_history: true, fetch_funding_rates: true, fetch_greeks: false, fetch_index_ohlcv: true, fetch_isolated_borrow_rate: false, fetch_isolated_borrow_rates: false, fetch_isolated_positions: false, fetch_l2_order_book: true, fetch_l3_order_book: false, fetch_last_prices: false, fetch_ledger: false, fetch_ledger_entry: false, fetch_leverage: true, fetch_leverage_tiers: false, fetch_leverages: false, fetch_liquidations: false, fetch_long_short_ratio: false, fetch_long_short_ratio_history: false, fetch_margin_adjustment_history: false, fetch_margin_mode: true, fetch_margin_modes: true, fetch_mark_ohlcv: true, fetch_mark_prices: false, fetch_market_leverage_tiers: false, fetch_markets: true, fetch_markets_ws: false, fetch_my_liquidations: false, fetch_my_settlement_history: false, fetch_my_trades: true, fetch_my_trades_ws: false, fetch_ohlcv: true, fetch_ohlcv_ws: false, fetch_open_interest: true, fetch_open_interest_history: false, fetch_open_interests: true, fetch_open_order: true, fetch_open_orders: true, fetch_open_orders_ws: false, fetch_option: false, fetch_option_chain: false, fetch_order: true, fetch_order_book: true, fetch_order_book_ws: false, fetch_order_books: true, fetch_order_trades: true, fetch_order_with_client_order_id: false, fetch_order_ws: false, fetch_orders: false, fetch_orders_by_status: false, fetch_orders_ws: false, fetch_position: true, fetch_position_history: false, fetch_position_mode: false, fetch_position_ws: false, fetch_positions: true, fetch_positions_for_symbol: false, fetch_positions_for_symbol_ws: false, fetch_positions_history: false, fetch_positions_risk: false, fetch_positions_ws: false, fetch_premium_index_ohlcv: true, fetch_settlement_history: false, fetch_status: false, fetch_ticker: true, fetch_ticker_ws: false, fetch_tickers: true, fetch_tickers_ws: false, fetch_time: false, fetch_trades: true, fetch_trades_ws: false, fetch_trading_fee: true, fetch_trading_fees: true, fetch_trading_fees_ws: false, fetch_trading_limits: false, fetch_transaction_fee: false, fetch_transaction_fees: false, fetch_transactions: true, fetch_transfer: false, fetch_transfers: false, fetch_underlying_assets: false, fetch_volatility_history: false, fetch_withdraw_addresses: false, fetch_withdrawal: false, fetch_withdrawal_whitelist: false, fetch_withdrawals: true, fetch_withdrawals_ws: false, future: false, margin: true, option: false, private_api: true, public_api: true, reduce_margin: true, repay_cross_margin: false, repay_isolated_margin: false, sandbox: true, set_leverage: true, set_margin: false, set_margin_mode: false, set_position_mode: false, sign_in: false, spot: true, swap: true, transfer: true, un_watch_my_trades: false, un_watch_ohlcv: false, un_watch_ohlcv_for_symbols: false, un_watch_order_book: false, un_watch_order_book_for_symbols: false, un_watch_orders: false, un_watch_positions: false, un_watch_ticker: false, un_watch_tickers: false, un_watch_trades: false, un_watch_trades_for_symbols: false, watch_balance: true, watch_bids_asks: true, watch_liquidations: false, watch_liquidations_for_symbols: false, watch_my_liquidations: false, watch_my_liquidations_for_symbols: false, watch_my_trades: false, watch_ohlcv: true, watch_ohlcv_for_symbols: false, watch_order_book: true, watch_order_book_for_symbols: false, watch_orders: true, watch_orders_for_symbols: false, watch_position: false, watch_positions: false, watch_status: false, watch_ticker: true, watch_tickers: true, watch_trades: true, watch_trades_for_symbols: false, withdraw: true, ws: false }, http_config: nil, id: "bequant", markets: nil, name: "Bequant", ohlcv_timestamp_resolution: :unknown, options: %{ accounts_by_type: %{ "funding" => "wallet", "future" => "derivatives", "spot" => "spot", "swap" => "derivatives" }, default_network: "ERC20", default_networks: %{ "ETH" => "ETH", "USDT" => "TRC20" }, networks: %{ "ABBC" => "ABBC", "ADA" => "ADA", "AE" => "AE", "ALGO" => "ALGO", "APT" => "APT", "AR" => "AR", "ATOM" => "ATOM", "AVAXC" => "AVAC", "AVAXX" => "AVAX", "BEP2" => "BNB", "BEP20" => "BSC", "BSV" => "BCHSV", "BTC" => "btc", "CELO" => "CELO", "CHZ" => "CHZ", "CKB" => "CKB", "CTXC" => "CTXC", "DASH" => "DASH", "DCR" => "DCR", "DGB" => "DGB", "DOGE" => "doge", "EGLD" => "EGLD", "EOS" => "EOS", "ERC20" => "ETH", "ETC" => "ETC", "ETH" => "eth", "ETHW" => "ETHW", "EVER" => "EVER", "FET" => "FET", "FIL" => "FIL", "FLOW" => "FLOW", "GLMR" => "GLMR", "GRIN" => "GRIN", "HBAR" => "HBAR", "HIVE" => "HIVE", "HYDRA" => "HYDRA", "ICP" => "ICP", "ICX" => "ICX", "IOST" => "IOST", "IOTA" => "IOTA", "IOTX" => "IOTX", "KAVA" => "KAVA", "KLAY" => "KIM", "KOMODO" => "KMD", "KSM" => "KSM", "LSK" => "LSK", "LTC" => "ltc", "MATIC" => "POLYGON", "MINA" => "MINA", "MOVR" => "MOVR", "NANO" => "NANO", "NEAR" => "NEAR", "NEM" => "XEM", "NEO" => "NEO", "OASIS" => "ROSE", "OMNI" => "BTC", "ONE" => "ONE", "ONT" => "ONT", "OPTIMISM" => "OP", "PLCU" => "PLCU", "QTUM" => "QTUM", "REI" => "REI", "RVN" => "RVN", "SC" => "SC", "SCRT" => "SCRT", "SOL" => "SOL", "STEEM" => "STEEM", "THETA" => "Theta", "TRC20" => "TRX", "TRUE" => "TRUE", "VET" => "VET", "VSYS" => "VSYS", "WAVES" => "WAVES", "WAX" => "WAX", "XCH" => "XCH", "XEC" => "XEC", "XLM" => "XLM", "XMR" => "xmr", "XRD" => "XRD", "XRP" => "XRP", "XTZ" => "XTZ", "XVG" => "XVG", "XYM" => "XYM", "ZEC" => "ZEC", "ZEN" => "ZEN", "ZIL" => "ZIL" }, withdraw: %{ "includeFee" => false } }, order_mappings: %{ side_format: :lowercase, side_key: "side", type_format: :lowercase, type_key: "type" }, param_mappings: %{ "amount" => "quantity", "arg0" => "client_order_id", "code" => "currency", "fromAccount" => "source", "id" => "order_id", "limit" => "depth", "since" => "from", "timeframe" => "period", "triggerPrice" => "stop_price" }, parse_methods: [], path_prefix: "", pro: true, quote_json_numbers: nil, rate_limits: %{ interval_ms: 3, period: 1000, requests: 333, rolling_window_size: 60000 }, raw_endpoints: %{ private: [ %{ auth: false, cost: 30, method: :get, path: "/wallet/crypto/address/check-mine" }, %{ auth: false, cost: 1, method: :get, path: "/margin/account" }, %{ auth: false, cost: 1, method: :get, path: "/margin/account/isolated/{symbol}" }, %{ auth: false, cost: 15, method: :get, path: "/futures/balance" }, %{ auth: false, cost: 1, method: :get, path: "/spot/order/{client_order_id}" }, %{ auth: false, cost: 1, method: :get, path: "/spot/order" }, %{ auth: false, cost: 15, method: :get, path: "/spot/balance/{currency}" }, %{ auth: false, cost: 1, method: :get, path: "/futures/account" }, %{ auth: false, cost: 1, method: :get, path: "/futures/account/isolated/{symbol}" }, %{ auth: false, cost: 15, method: :get, path: "/sub-account/acl" }, %{ auth: false, cost: 1, method: :get, path: "/futures/order" }, %{ auth: false, cost: 1, method: :get, path: "/margin/order/{client_order_id}" }, %{ auth: false, cost: 15, method: :get, path: "/margin/history/positions" }, %{ auth: false, cost: 15, method: :get, path: "/sub-account" }, %{ auth: false, cost: 15, method: :get, path: "/futures/history/clearing" }, %{ auth: false, cost: 15, method: :get, path: "/futures/fee" }, %{ auth: false, cost: 15, method: :get, path: "/futures/history/positions" }, %{ auth: false, cost: 30, method: :get, path: "/wallet/crypto/address/recent-withdraw" }, %{ auth: false, cost: 30, method: :get, path: "/wallet/balance" }, %{ auth: false, cost: 15, method: :get, path: "/spot/balance" }, %{ auth: false, cost: 15, method: :get, path: "/spot/history/order" }, %{ auth: false, cost: 1, method: :get, path: "/futures/order/{client_order_id}" }, %{ auth: false, cost: 15, method: :get, path: "/spot/fee/{symbol}" }, %{ auth: false, cost: 15, method: :get, path: "/spot/fee" }, %{ auth: false, cost: 15, method: :get, path: "/spot/history/trade" }, %{ auth: false, cost: 15, method: :get, path: "/futures/history/trade" }, %{ auth: false, cost: 15, method: :get, path: "/futures/balance/{currency}" }, %{ auth: false, cost: 15, method: :get, path: "/sub-account/crypto/address/{subAccID}/{currency}" }, %{ auth: false, cost: 1, method: :get, path: "/margin/order" }, %{ auth: false, cost: 30, method: :get, path: "/wallet/crypto/fee/estimate" }, %{ auth: false, cost: 30, method: :get, path: "/wallet/transactions/{tx_id}" }, %{ auth: false, cost: 30, method: :get, path: "/wallet/crypto/address/recent-deposit" }, %{ auth: false, cost: 30, method: :get, path: "/wallet/airdrops" }, %{ auth: false, cost: 30, method: :get, path: "/wallet/transactions" }, %{ auth: false, cost: 15, method: :get, path: "/margin/history/clearing" }, %{ auth: false, cost: 30, method: :get, path: "/wallet/balance/{currency}" }, %{ auth: false, cost: 30, method: :get, path: "/wallet/amount-locks" }, %{ auth: false, cost: 1, method: :get, path: "/margin/account/cross/{currency}" }, %{ auth: false, cost: 15, method: :get, path: "/futures/fee/{symbol}" }, %{ auth: false, cost: 15, method: :get, path: "/futures/config" }, %{ auth: false, cost: 30, method: :get, path: "/wallet/crypto/address" }, %{ auth: false, cost: 15, method: :get, path: "/sub-account/balance/{subAccID}" }, %{ auth: false, cost: 15, method: :get, path: "/margin/history/trade" }, %{ auth: false, cost: 15, method: :get, path: "/margin/config" }, %{ auth: false, cost: 15, method: :get, path: "/margin/history/order" }, %{ auth: false, cost: 15, method: :get, path: "/futures/history/order" }, %{ auth: false, cost: 1, method: :post, path: "/futures/order" }, %{ auth: false, cost: 1, method: :post, path: "/futures/order/list" }, %{ auth: false, cost: 1, method: :post, path: "/margin/order" }, %{ auth: false, cost: 1, method: :post, path: "/margin/order/list" }, %{ auth: false, cost: 1, method: :post, path: "/spot/order" }, %{ auth: false, cost: 1, method: :post, path: "/spot/order/list" }, %{ auth: false, cost: 15, method: :post, path: "/sub-account/acl" }, %{ auth: false, cost: 15, method: :post, path: "/sub-account/activate" }, %{ auth: false, cost: 15, method: :post, path: "/sub-account/freeze" }, %{ auth: false, cost: 15, method: :post, path: "/sub-account/transfer" }, %{ auth: false, cost: 30, method: :post, path: "/wallet/airdrops/{id}/claim" }, %{ auth: false, cost: 30, method: :post, path: "/wallet/convert" }, %{ auth: false, cost: 30, method: :post, path: "/wallet/crypto/address" }, %{ auth: false, cost: 30, method: :post, path: "/wallet/crypto/check-offchain-available" }, %{ auth: false, cost: 30, method: :post, path: "/wallet/crypto/fees/estimate" }, %{ auth: false, cost: 30, method: :post, path: "/wallet/crypto/withdraw" }, %{ auth: false, cost: 30, method: :post, path: "/wallet/internal/withdraw" }, %{ auth: false, cost: 30, method: :post, path: "/wallet/transfer" }, %{ auth: false, cost: 1, method: :put, path: "/futures/account/isolated/{symbol}" }, %{ auth: false, cost: 1, method: :put, path: "/margin/account/isolated/{symbol}" }, %{ auth: false, cost: 30, method: :put, path: "/wallet/crypto/withdraw/{id}" }, %{ auth: false, cost: 1, method: :delete, path: "/futures/order" }, %{ auth: false, cost: 1, method: :delete, path: "/futures/order/{client_order_id}" }, %{ auth: false, cost: 1, method: :delete, path: "/futures/position" }, %{ auth: false, cost: 1, method: :delete, path: "/futures/position/{margin_mode}/{symbol}" }, %{ auth: false, cost: 1, method: :delete, path: "/margin/order" }, %{ auth: false, cost: 1, method: :delete, path: "/margin/order/{client_order_id}" }, %{ auth: false, cost: 1, method: :delete, path: "/margin/position" }, %{ auth: false, cost: 1, method: :delete, path: "/margin/position/isolated/{symbol}" }, %{ auth: false, cost: 1, method: :delete, path: "/spot/order" }, %{ auth: false, cost: 1, method: :delete, path: "/spot/order/{client_order_id}" }, %{ auth: false, cost: 30, method: :delete, path: "/wallet/crypto/withdraw/{id}" }, %{ auth: false, cost: 1, method: :patch, path: "/futures/order/{client_order_id}" }, %{ auth: false, cost: 1, method: :patch, path: "/margin/order/{client_order_id}" }, %{ auth: false, cost: 1, method: :patch, path: "/spot/order/{client_order_id}" } ], public: [ %{ auth: false, cost: 10, method: :get, path: "/public/candles" }, %{ auth: false, cost: 10, method: :get, path: "/public/candles/{symbol}" }, %{ auth: false, cost: 10, method: :get, path: "/public/converted/candles" }, %{ auth: false, cost: 10, method: :get, path: "/public/converted/candles/{symbol}" }, %{ auth: false, cost: 10, method: :get, path: "/public/currency" }, %{ auth: false, cost: 10, method: :get, path: "/public/currency/{currency}" }, %{ auth: false, cost: 10, method: :get, path: "/public/futures/candles/index_price" }, %{ auth: false, cost: 10, method: :get, path: "/public/futures/candles/index_price/{symbol}" }, %{ auth: false, cost: 10, method: :get, path: "/public/futures/candles/mark_price" }, %{ auth: false, cost: 10, method: :get, path: "/public/futures/candles/mark_price/{symbol}" }, %{ auth: false, cost: 10, method: :get, path: "/public/futures/candles/open_interest" }, %{ auth: false, cost: 10, method: :get, path: "/public/futures/candles/open_interest/{symbol}" }, %{ auth: false, cost: 10, method: :get, path: "/public/futures/candles/premium_index" }, %{ auth: false, cost: 10, method: :get, path: "/public/futures/candles/premium_index/{symbol}" }, %{ auth: false, cost: 10, method: :get, path: "/public/futures/history/funding" }, %{ auth: false, cost: 10, method: :get, path: "/public/futures/history/funding/{symbol}" }, %{ auth: false, cost: 10, method: :get, path: "/public/futures/info" }, %{ auth: false, cost: 10, method: :get, path: "/public/futures/info/{symbol}" }, %{ auth: false, cost: 10, method: :get, path: "/public/orderbook" }, %{ auth: false, cost: 10, method: :get, path: "/public/orderbook/{symbol}" }, %{ auth: false, cost: 10, method: :get, path: "/public/price/history" }, %{ auth: false, cost: 10, method: :get, path: "/public/price/rate" }, %{ auth: false, cost: 10, method: :get, path: "/public/price/ticker" }, %{ auth: false, cost: 10, method: :get, path: "/public/price/ticker/{symbol}" }, %{ auth: false, cost: 10, method: :get, path: "/public/symbol" }, %{ auth: false, cost: 10, method: :get, path: "/public/symbol/{symbol}" }, %{ auth: false, cost: 10, method: :get, path: "/public/ticker" }, %{ auth: false, cost: 10, method: :get, path: "/public/ticker/{symbol}" }, %{ auth: false, cost: 10, method: :get, path: "/public/trades" }, %{ auth: false, cost: 10, method: :get, path: "/public/trades/{symbol}" } ] }, required_credentials: %{ api_key: true, password: false, secret: true, uid: false }, requires_eddsa: false, response_error: nil, signing: %{ confidence: :medium, pattern: :hmac_sha256_headers, signature_encoding: :hex }, spec_format_version: 1, status: %{ "eta" => nil, "status" => "ok", "updated" => nil, "url" => nil }, symbol_format: nil, symbol_formats: nil, symbol_patterns: %{}, timeframes: %{ "15m" => "M15", "1M" => "1M", "1d" => "D1", "1h" => "H1", "1m" => "M1", "1w" => "D7", "30m" => "M30", "3m" => "M3", "4h" => "H4", "5m" => "M5" }, url_strategy: %{ detected_from: "fallback", pattern: :no_prefix, prefix: nil }, urls: %{ api: "https://api.bequant.io/api/3", api_sections: %{ "private" => "https://api.bequant.io/api/3", "public" => "https://api.bequant.io/api/3" }, doc: [ "https://api.bequant.io/" ], other: nil, sandbox: %{ "private" => "https://api.demo.hitbtc.com/api/3", "public" => "https://api.demo.hitbtc.com/api/3" }, www: "https://bequant.io" }, version: "3", ws: %{ has: %{ watch_balance: true, watch_bids_asks: true, watch_liquidations: nil, watch_liquidations_for_symbols: nil, watch_my_liquidations: nil, watch_my_liquidations_for_symbols: nil, watch_my_trades: false, watch_ohlcv: true, watch_ohlcv_for_symbols: nil, watch_order_book: true, watch_order_book_for_symbols: nil, watch_orders: true, watch_orders_for_symbols: nil, watch_position: nil, watch_positions: nil, watch_status: nil, watch_ticker: true, watch_tickers: true, watch_trades: true, watch_trades_for_symbols: false }, message_patterns: [ %{ args_field: "params", format: :method, keys: [ "method", "params" ], kind_field: "method", kind_value: "login", sources: [ :send, :watch ] }, %{ args_field: "params", format: :method, id_field: "id", keys: [ "id", "method", "params" ], kind_field: "method", kind_value: "spot_balance_subscribe", sources: [ :send, :watch ] }, %{ args_field: "params", format: :method, id_field: "id", keys: [ "id", "method", "params" ], kind_field: "method", kind_value: "spot_subscribe", sources: [ :send, :watch ] }, %{ args_field: "params", format: :method, id_field: "id", keys: [ "ch", "id", "limit", "method", "params" ], kind_field: "method", kind_value: "subscribe", sources: [ :send, :watch_multiple ] }, %{ args_field: "params", format: :method, id_field: "id", keys: [ "ch", "id", "method", "params" ], kind_field: "method", kind_value: "subscribe", sources: [ :send, :watch_multiple ] } ], options: %{ "watchBidsAsks" => %{ "method" => "orderbook/top/{speed}" }, "watchOrderBook" => %{ "method" => "orderbook/full" }, "watchTicker" => %{ "method" => "ticker/{speed}" }, "watchTickers" => %{ "method" => "ticker/{speed}" } }, streaming: %{ keep_alive: 4000 }, subscription_pattern: :custom, test_urls: %{ "private" => "wss://api.demo.hitbtc.com/api/3/ws/trading", "public" => "wss://api.demo.hitbtc.com/api/3/ws/public" }, urls: %{ "private" => "wss://api.bequant.io/api/3/ws/trading", "public" => "wss://api.bequant.io/api/3/ws/public" } } }