# `CCXT`
[🔗](https://github.com/ZenHive/ccxt_client/blob/main/lib/ccxt.ex#L1)

Unified cryptocurrency exchange client library.

A CCXT client in Elixir scoped to the priority-tier universe (Tier 1 +
Tier 2 + DEX). Exchange modules are generated from specs via macros — new
exchange = new spec file, zero Elixir code. Tier 3 / unclassified
exchanges are available on demand via `mix ccxt_extract.update --exchange <id>`.

## Architecture

    CCXT.fetch_ticker(exchange, "BTC/USDT")     # Unified API
        → CCXT.Bybit (generated module)          # use CCXT.Exchange, spec: "bybit"
            → CCXT.Dispatch.call/4               # Shared dispatcher
                → CCXT.Signing.sign/4            # 9 patterns
                → CCXT.HTTP.request/4            # Req wrapper

## Quick Start

    # List available exchanges
    CCXT.Spec.exchanges()

    # Create an exchange (public-only)
    {:ok, bybit} = CCXT.exchange("bybit")

    # Create with credentials
    {:ok, bybit} = CCXT.exchange("bybit", api_key: "abc", secret: "xyz")

    # TODO: Phase 5 parsers will return typed structs; currently returns raw HTTP response
    {:ok, response} = CCXT.fetch_ticker(bybit, "BTC/USDT")

    # Create an order (private, requires credentials)
    {:ok, response} = CCXT.create_order(bybit, "BTC/USDT", "limit", "buy", 0.001, price: 50000)

## Optional Parameters

All unified functions accept an `opts` keyword list as the last argument.
Optional CCXT parameters (since, limit, price, symbol when optional, etc.)
and exchange-specific parameters are passed via opts:

    CCXT.fetch_trades(exchange, "BTC/USDT", since: 1_700_000_000_000, limit: 100)
    CCXT.create_order(exchange, "BTC/USDT", "limit", "buy", 0.01, price: 50000)
    CCXT.fetch_balance(exchange, type: "spot")

Dispatch-level options (`:endpoint_index`, `:timeout`, `:plug`, `:headers`,
`:base_url`) are separated automatically and do not get passed to the
exchange as parameters.

## API Functions
| Function | Arity | Description | Param Kinds |
| --- | --- | --- | --- |
| `create_gift_code` | 4 | Create gift code. | `exchange: value`, `code: value`, `amount: value` |
| `create_vault` | 4 | Create vault. | `exchange: value`, `code: value`, `amount: value` |
| `fetch_portfolio_details` | 3 | Fetch portfolio details. | `exchange: value`, `portfolio_id: value` |
| `fetch_portfolios` | 2 | Fetch portfolios. | `exchange: value` |
| `fetch_settlement_history` | 2 | Fetch settlement history. | `exchange: value` |
| `fetch_convert_trade_history` | 2 | Fetch convert trade history. | `exchange: value` |
| `fetch_convert_trade` | 3 | Fetch convert trade. | `exchange: value`, `id: value` |
| `fetch_convert_quote` | 5 | Fetch convert quote. | `exchange: value`, `from_code: value`, `to_code: value`, `amount: value` |
| `fetch_convert_currencies` | 2 | Fetch convert currencies. | `exchange: value` |
| `create_convert_trade` | 5 | Create convert trade. | `exchange: value`, `from_code: value`, `to_code: value`, `amount: value` |
| `fetch_isolated_borrow_rates` | 2 | Fetch isolated borrow rates. | `exchange: value` |
| `fetch_isolated_borrow_rate` | 3 | Fetch isolated borrow rate. | `exchange: value`, `symbol: value` |
| `fetch_cross_borrow_rates` | 2 | Fetch cross borrow rates. | `exchange: value` |
| `fetch_cross_borrow_rate` | 3 | Fetch cross borrow rate. | `exchange: value`, `code: value` |
| `fetch_borrow_rate_histories` | 2 | Fetch borrow rate histories. | `exchange: value` |
| `fetch_borrow_rate_history` | 3 | Fetch borrow rate history. | `exchange: value`, `code: value` |
| `fetch_borrow_interest` | 2 | Fetch borrow interest. | `exchange: value` |
| `repay_margin` | 4 | Repay margin. | `exchange: value`, `code: value`, `amount: value` |
| `repay_isolated_margin` | 5 | Repay isolated margin. | `exchange: value`, `symbol: value`, `code: value`, `amount: value` |
| `repay_cross_margin` | 4 | Repay cross margin. | `exchange: value`, `code: value`, `amount: value` |
| `borrow_isolated_margin` | 5 | Borrow isolated margin. | `exchange: value`, `symbol: value`, `code: value`, `amount: value` |
| `borrow_cross_margin` | 4 | Borrow cross margin. | `exchange: value`, `code: value`, `amount: value` |
| `transfer_uta` | 6 | Transfer uta. | `exchange: value`, `code: value`, `amount: value`, `from_account: value`, `to_account: value` |
| `transfer_out` | 5 | Transfer out. | `exchange: value`, `code: value`, `amount: value`, `address: value` |
| `transfer_classic` | 6 | Transfer classic. | `exchange: value`, `code: value`, `amount: value`, `from_account: value`, `to_account: value` |
| `transfer_between_sub_accounts` | 6 | Transfer between sub accounts. | `exchange: value`, `code: value`, `amount: value`, `from_account: value`, `to_account: value` |
| `transfer_between_main_and_sub_account` | 6 | Transfer between main and sub account. | `exchange: value`, `code: value`, `amount: value`, `from_account: value`, `to_account: value` |
| `fetch_transfers` | 2 | Fetch transfers. | `exchange: value` |
| `fetch_transfer` | 3 | Fetch transfer. | `exchange: value`, `id: value` |
| `transfer` | 6 | Transfer funds between exchange accounts (e.g., spot to futures). | `exchange: value`, `code: value`, `amount: value`, `from_account: value`, `to_account: value` |
| `fetch_transactions_by_type` | 3 | Fetch transactions by type. | `exchange: value`, `type: value` |
| `fetch_transactions` | 2 | Fetch transactions. | `exchange: value` |
| `fetch_deposits_withdrawals` | 2 | Fetch deposits withdrawals. | `exchange: value` |
| `fetch_public_deposit_withdraw_fees` | 2 | Fetch public deposit withdraw fees. | `exchange: value` |
| `fetch_private_deposit_withdraw_fees` | 2 | Fetch private deposit withdraw fees. | `exchange: value` |
| `fetch_deposit_withdraw_fees` | 2 | Fetch deposit withdraw fees. | `exchange: value` |
| `fetch_deposit_withdraw_fee` | 3 | Fetch deposit withdraw fee. | `exchange: value`, `code: value` |
| `fetch_contract_deposits` | 2 | Fetch contract deposits. | `exchange: value` |
| `fetch_contract_withdrawals` | 2 | Fetch contract withdrawals. | `exchange: value` |
| `fetch_withdraw_addresses` | 2 | Fetch withdraw addresses. | `exchange: value` |
| `fetch_withdrawals` | 2 | Fetch withdrawal history. | `exchange: value` |
| `fetch_withdrawal` | 3 | Fetch withdrawal. | `exchange: value`, `id: value` |
| `withdraw` | 5 | Withdraw funds to an external address. | `exchange: value`, `code: value`, `amount: value`, `address: value` |
| `fetch_payment_methods` | 2 | Fetch payment methods. | `exchange: value` |
| `fetch_deposit_methods` | 3 | Fetch deposit methods. | `exchange: value`, `code: value` |
| `fetch_deposit_method_ids` | 2 | Fetch deposit method ids. | `exchange: value` |
| `fetch_deposit_method_id` | 3 | Fetch deposit method id. | `exchange: value`, `code: value` |
| `create_deposit_address` | 3 | Create deposit address. | `exchange: value`, `code: value` |
| `fetch_contract_deposit_address` | 3 | Fetch contract deposit address. | `exchange: value`, `code: value` |
| `fetch_network_deposit_address` | 3 | Fetch network deposit address. | `exchange: value`, `code: value` |
| `fetch_deposit_addresses_by_network` | 3 | Fetch deposit addresses by network. | `exchange: value`, `code: value` |
| `fetch_deposit_addresses` | 2 | Fetch deposit addresses. | `exchange: value` |
| `fetch_deposit_address` | 3 | Fetch a deposit address for a currency. | `exchange: value`, `code: value` |
| `fetch_deposits` | 2 | Fetch deposit history. | `exchange: value` |
| `fetch_deposit` | 3 | Fetch deposit. | `exchange: value`, `id: value` |
| `fetch_ledger_entries_by_ids` | 3 | Fetch ledger entries by ids. | `exchange: value`, `ids: value` |
| `fetch_ledger_by_entries` | 2 | Fetch ledger by entries. | `exchange: value` |
| `fetch_ledger_entry` | 3 | Fetch ledger entry. | `exchange: value`, `id: value` |
| `fetch_ledger` | 2 | Fetch the account ledger (transaction history). | `exchange: value` |
| `fetch_public_transaction_fees` | 2 | Fetch public transaction fees. | `exchange: value` |
| `fetch_private_transaction_fees` | 2 | Fetch private transaction fees. | `exchange: value` |
| `fetch_transaction_fees` | 2 | Fetch transaction fees. | `exchange: value` |
| `fetch_transaction_fee` | 3 | Fetch transaction fee. | `exchange: value`, `code: value` |
| `fetch_public_trading_fees` | 2 | Fetch public trading fees. | `exchange: value` |
| `fetch_public_trading_fee` | 3 | Fetch public trading fee. | `exchange: value`, `symbol: value` |
| `fetch_private_trading_fees` | 2 | Fetch private trading fees. | `exchange: value` |
| `fetch_private_trading_fee` | 3 | Fetch private trading fee. | `exchange: value`, `symbol: value` |
| `fetch_trading_limits_by_id` | 3 | Fetch trading limits by id. | `exchange: value`, `id: value` |
| `fetch_trading_limits` | 2 | Fetch trading limits. | `exchange: value` |
| `fetch_trading_fees` | 2 | Fetch trading fees for all symbols. | `exchange: value` |
| `fetch_trading_fee` | 3 | Fetch the trading fee for a specific symbol. | `exchange: value`, `symbol: value` |
| `fetch_margin_adjustment_history` | 2 | Fetch margin adjustment history. | `exchange: value` |
| `reduce_margin` | 4 | Reduce margin. | `exchange: value`, `amount: value`, `symbol: value` |
| `add_margin` | 4 | Add margin. | `exchange: value`, `amount: value`, `symbol: value` |
| `set_margin` | 4 | Set margin. | `exchange: value`, `amount: value`, `symbol: value` |
| `set_margin_mode` | 4 | Set margin mode (cross/isolated) for a symbol. | `exchange: value`, `margin_mode: value`, `symbol: value` |
| `fetch_margin_modes` | 2 | Fetch margin modes. | `exchange: value` |
| `fetch_margin_mode` | 3 | Fetch margin mode. | `exchange: value`, `symbol: value` |
| `set_leverage` | 4 | Set leverage for a symbol on the exchange. | `exchange: value`, `leverage: value`, `symbol: value` |
| `fetch_leverage_tiers` | 2 | Fetch leverage tiers. | `exchange: value` |
| `fetch_leverages` | 2 | Fetch leverages. | `exchange: value` |
| `fetch_leverage` | 3 | Fetch current leverage setting for a symbol. | `exchange: value`, `symbol: value` |
| `set_position_mode` | 3 | Set position mode. | `exchange: value`, `hedge_mode: value` |
| `fetch_position_mode` | 2 | Fetch position mode. | `exchange: value` |
| `close_all_positions` | 2 | Close all positions. | `exchange: value` |
| `close_position` | 3 | Close a derivative position for a symbol. | `exchange: value`, `symbol: value` |
| `fetch_positions_adl_rank` | 2 | Fetch positions adl rank. | `exchange: value` |
| `fetch_positions_risk` | 2 | Fetch positions risk. | `exchange: value` |
| `fetch_position_history` | 2 | Fetch position history. | `exchange: value` |
| `fetch_positions_history` | 2 | Fetch positions history. | `exchange: value` |
| `fetch_positions_for_symbol` | 3 | Fetch positions for symbol. | `exchange: value`, `symbol: value` |
| `fetch_positions` | 2 | Fetch all open derivative positions. | `exchange: value` |
| `fetch_position` | 3 | Fetch a specific derivative position for a symbol. | `exchange: value`, `symbol: value` |
| `fetch_my_settlement_history` | 2 | Fetch my settlement history. | `exchange: value` |
| `fetch_my_liquidations` | 2 | Fetch my liquidations. | `exchange: value` |
| `fetch_my_dust_trades` | 2 | Fetch my dust trades. | `exchange: value` |
| `fetch_my_sells` | 2 | Fetch my sells. | `exchange: value` |
| `fetch_my_buys` | 2 | Fetch my buys. | `exchange: value` |
| `fetch_my_uta_trades` | 2 | Fetch my uta trades. | `exchange: value` |
| `fetch_my_contract_trades` | 2 | Fetch my contract trades. | `exchange: value` |
| `fetch_my_spot_trades` | 2 | Fetch my spot trades. | `exchange: value` |
| `fetch_my_trades` | 2 | Fetch the authenticated user's trade history. | `exchange: value` |
| `create_sub_account` | 2 | Create sub account. | `exchange: value` |
| `create_account` | 2 | Create account. | `exchange: value` |
| `fetch_account_positions` | 2 | Fetch account positions. | `exchange: value` |
| `fetch_accounts` | 2 | Fetch accounts. | `exchange: value` |
| `fetch_account` | 2 | Fetch account. | `exchange: value` |
| `fetch_uta_balance` | 2 | Fetch uta balance. | `exchange: value` |
| `fetch_financial_balance` | 2 | Fetch financial balance. | `exchange: value` |
| `fetch_margin_balance` | 2 | Fetch margin balance. | `exchange: value` |
| `fetch_contract_balance` | 2 | Fetch contract balance. | `exchange: value` |
| `fetch_spot_balance` | 2 | Fetch spot balance. | `exchange: value` |
| `fetch_balance` | 2 | Fetch account balance across all currencies. | `exchange: value` |
| `fetch_adl_rank` | 2 | Fetch adl rank. | `exchange: value` |
| `fetch_uta_canceled_and_closed_orders` | 2 | Fetch uta canceled and closed orders. | `exchange: value` |
| `fetch_uta_orders_by_status` | 2 | Fetch uta orders by status. | `exchange: value` |
| `fetch_uta_order` | 3 | Fetch uta order. | `exchange: value`, `id: value` |
| `fetch_contract_orders_by_status` | 2 | Fetch contract orders by status. | `exchange: value` |
| `fetch_contract_orders` | 2 | Fetch contract orders. | `exchange: value` |
| `fetch_contract_order` | 3 | Fetch contract order. | `exchange: value`, `id: value` |
| `fetch_canceled_and_closed_swap_orders` | 2 | Fetch canceled and closed swap orders. | `exchange: value` |
| `fetch_canceled_and_closed_spot_orders` | 2 | Fetch canceled and closed spot orders. | `exchange: value` |
| `fetch_closed_contract_orders` | 2 | Fetch closed contract orders. | `exchange: value` |
| `fetch_closed_spot_orders` | 2 | Fetch closed spot orders. | `exchange: value` |
| `fetch_open_swap_orders` | 2 | Fetch open swap orders. | `exchange: value` |
| `fetch_open_spot_orders` | 2 | Fetch open spot orders. | `exchange: value` |
| `fetch_spot_orders_by_status` | 2 | Fetch spot orders by status. | `exchange: value` |
| `fetch_spot_orders_by_states` | 2 | Fetch spot orders by states. | `exchange: value` |
| `fetch_spot_order_trades` | 3 | Fetch spot order trades. | `exchange: value`, `id: value` |
| `fetch_spot_orders` | 2 | Fetch spot orders. | `exchange: value` |
| `fetch_spot_order` | 3 | Fetch spot order. | `exchange: value`, `id: value` |
| `fetch_orders_by_type` | 3 | Fetch orders by type. | `exchange: value`, `type: value` |
| `fetch_orders_by_status` | 3 | Fetch orders by status. | `exchange: value`, `status: value` |
| `fetch_orders_by_state` | 3 | Fetch orders by state. | `exchange: value`, `state: value` |
| `fetch_orders_by_ids` | 3 | Fetch orders by ids. | `exchange: value`, `ids: value` |
| `fetch_order_status` | 3 | Fetch order status. | `exchange: value`, `id: value` |
| `fetch_order_trades` | 3 | Fetch order trades. | `exchange: value`, `id: value` |
| `fetch_canceled_and_closed_orders` | 2 | Fetch canceled and closed orders. | `exchange: value` |
| `fetch_canceled_orders` | 2 | Fetch canceled orders. | `exchange: value` |
| `fetch_closed_orders` | 2 | Fetch completed (filled) orders. | `exchange: value` |
| `fetch_closed_order` | 3 | Fetch closed order. | `exchange: value`, `id: value` |
| `fetch_open_orders` | 2 | Fetch all currently open orders. | `exchange: value` |
| `fetch_open_order` | 3 | Fetch open order. | `exchange: value`, `id: value` |
| `fetch_orders_classic` | 2 | Fetch orders classic. | `exchange: value` |
| `fetch_orders` | 2 | Fetch a list of orders, optionally filtered by symbol. | `exchange: value` |
| `fetch_order_classic` | 3 | Fetch order classic. | `exchange: value`, `id: value` |
| `fetch_order` | 3 | Fetch details of a specific order by ID. | `exchange: value`, `id: value` |
| `edit_spot_order` | 6 | Edit spot order. | `exchange: value`, `id: value`, `symbol: value`, `type: value`, `side: value` |
| `edit_contract_order` | 6 | Edit contract order. | `exchange: value`, `id: value`, `symbol: value`, `type: value`, `side: value` |
| `edit_orders` | 3 | Edit orders. | `exchange: value`, `orders: value` |
| `edit_order` | 6 | Edit an existing order (modify price, amount, etc.). | `exchange: value`, `id: value`, `symbol: value`, `type: value`, `side: value` |
| `cancel_all_uta_orders` | 2 | Cancel all uta orders. | `exchange: value` |
| `cancel_all_contract_orders` | 2 | Cancel all contract orders. | `exchange: value` |
| `cancel_all_spot_orders` | 2 | Cancel all spot orders. | `exchange: value` |
| `cancel_twap_order` | 3 | Cancel twap order. | `exchange: value`, `id: value` |
| `cancel_uta_orders` | 3 | Cancel uta orders. | `exchange: value`, `ids: value` |
| `cancel_uta_order` | 3 | Cancel uta order. | `exchange: value`, `id: value` |
| `cancel_unified_order` | 3 | Cancel unified order. | `exchange: value`, `id: value` |
| `cancel_contract_order` | 3 | Cancel contract order. | `exchange: value`, `id: value` |
| `cancel_spot_order` | 3 | Cancel spot order. | `exchange: value`, `id: value` |
| `cancel_orders_for_symbols` | 3 | Cancel orders for symbols. | `exchange: value`, `orders: value` |
| `cancel_all_orders_after` | 3 | Cancel all orders after. | `exchange: value`, `timeout: value` |
| `cancel_all_orders` | 2 | Cancel all open orders, optionally filtered by symbol. | `exchange: value` |
| `cancel_orders` | 3 | Cancel orders. | `exchange: value`, `ids: value` |
| `cancel_order` | 3 | Cancel an existing order by ID. | `exchange: value`, `id: value` |
| `create_market_order_with_cost` | 5 | Create market order with cost. | `exchange: value`, `symbol: value`, `side: value`, `cost: value` |
| `create_market_sell_order_with_cost` | 4 | Create market sell order with cost. | `exchange: value`, `symbol: value`, `cost: value` |
| `create_market_buy_order_with_cost` | 4 | Create market buy order with cost. | `exchange: value`, `symbol: value`, `cost: value` |
| `create_twap_order` | 6 | Create twap order. | `exchange: value`, `symbol: value`, `type: value`, `side: value`, `amount: value` |
| `create_trailing_percent_order` | 6 | Create trailing percent order. | `exchange: value`, `symbol: value`, `type: value`, `side: value`, `amount: value` |
| `create_trailing_amount_order` | 6 | Create trailing amount order. | `exchange: value`, `symbol: value`, `type: value`, `side: value`, `amount: value` |
| `create_order_with_take_profit_and_stop_loss` | 6 | Create order with take profit and stop loss. | `exchange: value`, `symbol: value`, `type: value`, `side: value`, `amount: value` |
| `create_uta_orders` | 3 | Create uta orders. | `exchange: value`, `orders: value` |
| `create_uta_order` | 6 | Create uta order. | `exchange: value`, `symbol: value`, `type: value`, `side: value`, `amount: value` |
| `create_swap_order` | 6 | Create swap order. | `exchange: value`, `symbol: value`, `type: value`, `side: value`, `amount: value` |
| `create_contract_orders` | 3 | Create contract orders. | `exchange: value`, `orders: value` |
| `create_contract_order` | 6 | Create contract order. | `exchange: value`, `symbol: value`, `type: value`, `side: value`, `amount: value` |
| `create_spot_orders` | 3 | Create spot orders. | `exchange: value`, `orders: value` |
| `create_spot_order` | 6 | Create spot order. | `exchange: value`, `symbol: value`, `type: value`, `side: value`, `amount: value` |
| `create_orders` | 3 | Create multiple orders in a single request. | `exchange: value`, `orders: value` |
| `create_order` | 6 | Create a new order on the exchange. | `exchange: value`, `symbol: value`, `type: value`, `side: value`, `amount: value` |
| `fetch_contract_tickers` | 2 | Fetch contract tickers. | `exchange: value` |
| `fetch_uta_ohlcv` | 4 | Fetch uta ohlcv. | `exchange: value`, `symbol: value`, `timeframe: value` |
| `fetch_spot_ohlcv` | 4 | Fetch spot ohlcv. | `exchange: value`, `symbol: value`, `timeframe: value` |
| `fetch_contract_ohlcv` | 4 | Fetch contract ohlcv. | `exchange: value`, `symbol: value`, `timeframe: value` |
| `fetch_option_ohlcv` | 4 | Fetch option ohlcv. | `exchange: value`, `symbol: value`, `timeframe: value` |
| `fetch_option_positions` | 2 | Fetch option positions. | `exchange: value` |
| `fetch_option_underlyings` | 2 | Fetch option underlyings. | `exchange: value` |
| `fetch_underlying_assets` | 2 | Fetch underlying assets. | `exchange: value` |
| `fetch_all_greeks` | 2 | Fetch all greeks. | `exchange: value` |
| `fetch_greeks` | 3 | Fetch option greeks (delta, gamma, theta, vega) for a symbol. | `exchange: value`, `symbol: value` |
| `fetch_option_chain` | 3 | Fetch the full options chain for an underlying asset. | `exchange: value`, `symbol: value` |
| `fetch_option` | 3 | Fetch option. | `exchange: value`, `symbol: value` |
| `fetch_volatility_history` | 3 | Fetch volatility history. | `exchange: value`, `symbol: value` |
| `fetch_liquidations` | 3 | Fetch recent liquidation events for a symbol. | `exchange: value`, `symbol: value` |
| `fetch_long_short_ratio_history` | 3 | Fetch long short ratio history. | `exchange: value`, `symbol: value` |
| `fetch_derivatives_open_interest_history` | 3 | Fetch derivatives open interest history. | `exchange: value`, `symbol: value` |
| `fetch_open_interests` | 2 | Fetch open interests. | `exchange: value` |
| `fetch_open_interest_history` | 3 | Fetch open interest history. | `exchange: value`, `symbol: value` |
| `fetch_open_interest` | 3 | Fetch open interest for a perpetual or futures symbol. | `exchange: value`, `symbol: value` |
| `fetch_funding_limits` | 2 | Fetch funding limits. | `exchange: value` |
| `fetch_funding_intervals` | 2 | Fetch funding intervals. | `exchange: value` |
| `fetch_funding_interval` | 3 | Fetch funding interval. | `exchange: value`, `symbol: value` |
| `fetch_funding_history` | 3 | Fetch funding history. | `exchange: value`, `symbol: value` |
| `fetch_funding_rate_history` | 3 | Fetch funding rate history. | `exchange: value`, `symbol: value` |
| `fetch_funding_rates` | 2 | Fetch funding rates for all perpetual swaps. | `exchange: value` |
| `fetch_funding_rate` | 3 | Fetch the current funding rate for a perpetual swap. | `exchange: value`, `symbol: value` |
| `fetch_derivatives_market_leverage_tiers` | 3 | Fetch derivatives market leverage tiers. | `exchange: value`, `symbol: value` |
| `fetch_market_leverage_tiers` | 3 | Fetch market leverage tiers. | `exchange: value`, `symbol: value` |
| `fetch_mark_prices` | 2 | Fetch mark prices. | `exchange: value` |
| `fetch_mark_price` | 3 | Fetch the mark price for a derivative symbol. | `exchange: value`, `symbol: value` |
| `fetch_market_by_id` | 3 | Fetch market by id. | `exchange: value`, `id: value` |
| `fetch_market` | 3 | Fetch market. | `exchange: value`, `symbol: value` |
| `fetch_last_prices` | 2 | Fetch last prices. | `exchange: value` |
| `fetch_bids_asks` | 2 | Fetch bids asks. | `exchange: value` |
| `fetch_status` | 2 | Fetch the exchange operational status. | `exchange: value` |
| `fetch_time` | 2 | Fetch the exchange server time. | `exchange: value` |
| `fetch_currency_by_id` | 3 | Fetch currency by id. | `exchange: value`, `id: value` |
| `fetch_currency` | 3 | Fetch currency. | `exchange: value`, `code: value` |
| `fetch_currencies` | 2 | Fetch all available currencies and their details. | `exchange: value` |
| `fetch_usdt_markets` | 2 | Fetch usdt markets. | `exchange: value` |
| `fetch_swap_balance` | 2 | Fetch swap balance. | `exchange: value` |
| `fetch_uta_markets` | 2 | Fetch uta markets. | `exchange: value` |
| `fetch_inverse_swap_markets` | 2 | Fetch inverse swap markets. | `exchange: value` |
| `fetch_swap_and_future_markets` | 2 | Fetch swap and future markets. | `exchange: value` |
| `fetch_contract_markets` | 2 | Fetch contract markets. | `exchange: value` |
| `fetch_option_markets` | 2 | Fetch option markets. | `exchange: value` |
| `fetch_future_markets` | 2 | Fetch future markets. | `exchange: value` |
| `fetch_swap_markets` | 2 | Fetch swap markets. | `exchange: value` |
| `fetch_spot_markets` | 2 | Fetch spot markets. | `exchange: value` |
| `fetch_markets_by_type_and_sub_type` | 4 | Fetch markets by type and sub type. | `exchange: value`, `type: value`, `sub_type: value` |
| `fetch_markets_by_type` | 3 | Fetch markets by type. | `exchange: value`, `type: value` |
| `fetch_markets` | 2 | Fetch all available markets and trading pairs. | `exchange: value` |
| `fetch_ohlcv` | 4 | Fetch OHLCV candlestick data for a symbol and timeframe. | `exchange: value`, `symbol: value`, `timeframe: value` |
| `fetch_trades` | 3 | Fetch recent public trades for a symbol. | `exchange: value`, `symbol: value` |
| `fetch_l3_order_book` | 3 | Fetch l3 order book. | `exchange: value`, `symbol: value` |
| `fetch_l2_order_book` | 3 | Fetch l2 order book. | `exchange: value`, `symbol: value` |
| `fetch_order_books` | 2 | Fetch order books. | `exchange: value` |
| `fetch_order_book` | 3 | Fetch the order book (bids and asks) for a symbol. | `exchange: value`, `symbol: value` |
| `fetch_tickers` | 2 | Fetch tickers for all or specified trading pairs. | `exchange: value` |
| `fetch_ticker` | 3 | Fetch latest ticker (price, volume, bid/ask) for a trading pair. | `exchange: value`, `symbol: value` |
| `exchange` | 2 | Create an exchange configuration. | `exchange_id: value` |

# `__descripex_modules__`

```elixir
@spec __descripex_modules__() :: [module()]
```

Return the list of modules registered with this library.

# `add_margin`

Add margin.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `amount` - amount (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    amount: %{description: "amount", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `borrow_cross_margin`

Borrow cross margin.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    amount: %{description: "amount", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `borrow_isolated_margin`

Borrow isolated margin.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `code` - code (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    amount: %{description: "amount", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `cancel_all_contract_orders`

Cancel all contract orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `cancel_all_orders`

Cancel all open orders, optionally filtered by symbol.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `cancel_all_orders_after`

Cancel all orders after.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `timeout` - timeout (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    timeout: %{description: "timeout", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `cancel_all_spot_orders`

Cancel all spot orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `cancel_all_uta_orders`

Cancel all uta orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `cancel_contract_order`

Cancel contract order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `cancel_order`

Cancel an existing order by ID.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `cancel_orders`

Cancel orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `ids` - ids (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    ids: %{description: "ids", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `cancel_orders_for_symbols`

Cancel orders for symbols.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `orders` - orders (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    orders: %{description: "orders", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `cancel_spot_order`

Cancel spot order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `cancel_twap_order`

Cancel twap order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `cancel_unified_order`

Cancel unified order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `cancel_uta_order`

Cancel uta order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `cancel_uta_orders`

Cancel uta orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `ids` - ids (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    ids: %{description: "ids", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `close_all_positions`

Close all positions.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `close_position`

Close a derivative position for a symbol.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_account`

Create account.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_contract_order`

Create contract order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `type` - type (value)
  * `side` - side (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    amount: %{description: "amount", kind: :value},
    side: %{description: "side", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_contract_orders`

Create contract orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `orders` - orders (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    orders: %{description: "orders", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_convert_trade`

Create convert trade.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `from_code` - from code (value)
  * `to_code` - to code (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    amount: %{description: "amount", kind: :value},
    from_code: %{description: "from code", kind: :value},
    to_code: %{description: "to code", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_deposit_address`

Create deposit address.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_gift_code`

Create gift code.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    amount: %{description: "amount", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_market_buy_order_with_cost`

Create market buy order with cost.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `cost` - cost (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    cost: %{description: "cost", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_market_order_with_cost`

Create market order with cost.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `side` - side (value)
  * `cost` - cost (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    cost: %{description: "cost", kind: :value},
    side: %{description: "side", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_market_sell_order_with_cost`

Create market sell order with cost.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `cost` - cost (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    cost: %{description: "cost", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_order`

Create a new order on the exchange.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `type` - type (value)
  * `side` - side (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    amount: %{description: "amount", kind: :value},
    side: %{description: "side", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_order_with_take_profit_and_stop_loss`

Create order with take profit and stop loss.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `type` - type (value)
  * `side` - side (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    amount: %{description: "amount", kind: :value},
    side: %{description: "side", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_orders`

Create multiple orders in a single request.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `orders` - orders (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    orders: %{description: "orders", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_spot_order`

Create spot order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `type` - type (value)
  * `side` - side (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    amount: %{description: "amount", kind: :value},
    side: %{description: "side", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_spot_orders`

Create spot orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `orders` - orders (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    orders: %{description: "orders", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_sub_account`

Create sub account.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_swap_order`

Create swap order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `type` - type (value)
  * `side` - side (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    amount: %{description: "amount", kind: :value},
    side: %{description: "side", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_trailing_amount_order`

Create trailing amount order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `type` - type (value)
  * `side` - side (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    amount: %{description: "amount", kind: :value},
    side: %{description: "side", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_trailing_percent_order`

Create trailing percent order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `type` - type (value)
  * `side` - side (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    amount: %{description: "amount", kind: :value},
    side: %{description: "side", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_twap_order`

Create twap order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `type` - type (value)
  * `side` - side (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    amount: %{description: "amount", kind: :value},
    side: %{description: "side", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_uta_order`

Create uta order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `type` - type (value)
  * `side` - side (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    amount: %{description: "amount", kind: :value},
    side: %{description: "side", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_uta_orders`

Create uta orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `orders` - orders (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    orders: %{description: "orders", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `create_vault`

Create vault.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    amount: %{description: "amount", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `describe`

```elixir
@spec describe() :: [map()]
```

Return a Level 1 overview of all modules in this library.

# `describe`

```elixir
@spec describe(module() | atom()) :: [map()]
```

Return Level 2 function list for a module (by full atom or short name).

# `describe`

```elixir
@spec describe(module() | atom(), atom()) :: map() | nil
```

Return Level 3 function detail (or `nil` if not found).

# `edit_contract_order`

Edit contract order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)
  * `symbol` - symbol (value)
  * `type` - type (value)
  * `side` - side (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    side: %{description: "side", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `edit_order`

Edit an existing order (modify price, amount, etc.).

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)
  * `symbol` - symbol (value)
  * `type` - type (value)
  * `side` - side (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    side: %{description: "side", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `edit_orders`

Edit orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `orders` - orders (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    orders: %{description: "orders", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `edit_spot_order`

Edit spot order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)
  * `symbol` - symbol (value)
  * `type` - type (value)
  * `side` - side (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    side: %{description: "side", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `exchange`

```elixir
@spec exchange(
  String.t() | atom(),
  keyword()
) :: {:ok, CCXT.Exchange.t()} | {:error, term()}
```

Create an exchange configuration.

## Parameters

  * `exchange_id` - Exchange identifier (e.g., "bybit", :binance) (value)

## Options

  * `api_key` - API key for authenticated endpoints
  * `secret` - API secret
  * `password` - API password/passphrase (exchange-specific)
  * `sandbox` - Use testnet URLs (default: `false`)

## Returns

\{:ok, %CCXT.Exchange\{\} with :tier populated from spec ("tier1"/"tier2"/"dex"/"tier3"/"unclassified"/nil)\} or \{:error, reason\} (`result_tuple`)

## Errors

  * `:invalid_exchange`
  * `:missing_credentials`

```elixir
# descripex:contract
%{
  opts: %{
    password: %{
      description: "API password/passphrase (exchange-specific)",
      kind: :value
    },
    api_key: %{description: "API key for authenticated endpoints", kind: :value},
    secret: %{description: "API secret", kind: :value},
    sandbox: %{default: false, description: "Use testnet URLs", kind: :value}
  },
  params: %{
    exchange_id: %{
      description: "Exchange identifier (e.g., \"bybit\", :binance)",
      kind: :value
    }
  },
  errors: [:invalid_exchange, :missing_credentials],
  returns: %{
    type: :result_tuple,
    description: "{:ok, %CCXT.Exchange{} with :tier populated from spec (\"tier1\"/\"tier2\"/\"dex\"/\"tier3\"/\"unclassified\"/nil)} or {:error, reason}"
  }
}
```

# `exchange!`

```elixir
@spec exchange!(
  String.t() | atom(),
  keyword()
) :: CCXT.Exchange.t()
```

Bang variant of `exchange/2`. Raises on error.

# `fetch_account`

Fetch account.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_account_positions`

Fetch account positions.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_accounts`

Fetch accounts.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_adl_rank`

Fetch adl rank.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_all_greeks`

Fetch all greeks.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_balance`

Fetch account balance across all currencies.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_bids_asks`

Fetch bids asks.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_borrow_interest`

Fetch borrow interest.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_borrow_rate_histories`

Fetch borrow rate histories.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_borrow_rate_history`

Fetch borrow rate history.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_canceled_and_closed_orders`

Fetch canceled and closed orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_canceled_and_closed_spot_orders`

Fetch canceled and closed spot orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_canceled_and_closed_swap_orders`

Fetch canceled and closed swap orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_canceled_orders`

Fetch canceled orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_closed_contract_orders`

Fetch closed contract orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_closed_order`

Fetch closed order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_closed_orders`

Fetch completed (filled) orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_closed_spot_orders`

Fetch closed spot orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_contract_balance`

Fetch contract balance.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_contract_deposit_address`

Fetch contract deposit address.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_contract_deposits`

Fetch contract deposits.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_contract_markets`

Fetch contract markets.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_contract_ohlcv`

Fetch contract ohlcv.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `timeframe` - timeframe (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    timeframe: %{description: "timeframe", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_contract_order`

Fetch contract order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_contract_orders`

Fetch contract orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_contract_orders_by_status`

Fetch contract orders by status.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_contract_tickers`

Fetch contract tickers.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_contract_withdrawals`

Fetch contract withdrawals.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_convert_currencies`

Fetch convert currencies.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_convert_quote`

Fetch convert quote.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `from_code` - from code (value)
  * `to_code` - to code (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    amount: %{description: "amount", kind: :value},
    from_code: %{description: "from code", kind: :value},
    to_code: %{description: "to code", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_convert_trade`

Fetch convert trade.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_convert_trade_history`

Fetch convert trade history.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_cross_borrow_rate`

Fetch cross borrow rate.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_cross_borrow_rates`

Fetch cross borrow rates.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_currencies`

Fetch all available currencies and their details.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_currency`

Fetch currency.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_currency_by_id`

Fetch currency by id.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_deposit`

Fetch deposit.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_deposit_address`

Fetch a deposit address for a currency.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_deposit_addresses`

Fetch deposit addresses.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_deposit_addresses_by_network`

Fetch deposit addresses by network.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_deposit_method_id`

Fetch deposit method id.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_deposit_method_ids`

Fetch deposit method ids.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_deposit_methods`

Fetch deposit methods.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_deposit_withdraw_fee`

Fetch deposit withdraw fee.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_deposit_withdraw_fees`

Fetch deposit withdraw fees.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_deposits`

Fetch deposit history.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_deposits_withdrawals`

Fetch deposits withdrawals.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_derivatives_market_leverage_tiers`

Fetch derivatives market leverage tiers.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_derivatives_open_interest_history`

Fetch derivatives open interest history.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_financial_balance`

Fetch financial balance.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_funding_history`

Fetch funding history.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_funding_interval`

Fetch funding interval.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_funding_intervals`

Fetch funding intervals.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_funding_limits`

Fetch funding limits.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_funding_rate`

Fetch the current funding rate for a perpetual swap.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_funding_rate_history`

Fetch funding rate history.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_funding_rates`

Fetch funding rates for all perpetual swaps.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_future_markets`

Fetch future markets.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_greeks`

Fetch option greeks (delta, gamma, theta, vega) for a symbol.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_inverse_swap_markets`

Fetch inverse swap markets.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_isolated_borrow_rate`

Fetch isolated borrow rate.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_isolated_borrow_rates`

Fetch isolated borrow rates.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_l2_order_book`

Fetch l2 order book.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_l3_order_book`

Fetch l3 order book.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_last_prices`

Fetch last prices.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_ledger`

Fetch the account ledger (transaction history).

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_ledger_by_entries`

Fetch ledger by entries.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_ledger_entries_by_ids`

Fetch ledger entries by ids.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `ids` - ids (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    ids: %{description: "ids", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_ledger_entry`

Fetch ledger entry.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_leverage`

Fetch current leverage setting for a symbol.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_leverage_tiers`

Fetch leverage tiers.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_leverages`

Fetch leverages.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_liquidations`

Fetch recent liquidation events for a symbol.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_long_short_ratio_history`

Fetch long short ratio history.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_margin_adjustment_history`

Fetch margin adjustment history.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_margin_balance`

Fetch margin balance.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_margin_mode`

Fetch margin mode.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_margin_modes`

Fetch margin modes.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_mark_price`

Fetch the mark price for a derivative symbol.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_mark_prices`

Fetch mark prices.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_market`

Fetch market.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_market_by_id`

Fetch market by id.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_market_leverage_tiers`

Fetch market leverage tiers.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_markets`

Fetch all available markets and trading pairs.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_markets_by_type`

Fetch markets by type.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `type` - type (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_markets_by_type_and_sub_type`

Fetch markets by type and sub type.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `type` - type (value)
  * `sub_type` - sub type (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    sub_type: %{description: "sub type", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_my_buys`

Fetch my buys.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_my_contract_trades`

Fetch my contract trades.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_my_dust_trades`

Fetch my dust trades.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_my_liquidations`

Fetch my liquidations.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_my_sells`

Fetch my sells.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_my_settlement_history`

Fetch my settlement history.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_my_spot_trades`

Fetch my spot trades.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_my_trades`

Fetch the authenticated user's trade history.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_my_uta_trades`

Fetch my uta trades.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_network_deposit_address`

Fetch network deposit address.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_ohlcv`

Fetch OHLCV candlestick data for a symbol and timeframe.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `timeframe` - timeframe (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    timeframe: %{description: "timeframe", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_open_interest`

Fetch open interest for a perpetual or futures symbol.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_open_interest_history`

Fetch open interest history.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_open_interests`

Fetch open interests.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_open_order`

Fetch open order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_open_orders`

Fetch all currently open orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_open_spot_orders`

Fetch open spot orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_open_swap_orders`

Fetch open swap orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_option`

Fetch option.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_option_chain`

Fetch the full options chain for an underlying asset.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_option_markets`

Fetch option markets.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_option_ohlcv`

Fetch option ohlcv.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `timeframe` - timeframe (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    timeframe: %{description: "timeframe", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_option_positions`

Fetch option positions.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_option_underlyings`

Fetch option underlyings.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_order`

Fetch details of a specific order by ID.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_order_book`

Fetch the order book (bids and asks) for a symbol.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_order_books`

Fetch order books.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_order_classic`

Fetch order classic.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_order_status`

Fetch order status.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_order_trades`

Fetch order trades.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_orders`

Fetch a list of orders, optionally filtered by symbol.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_orders_by_ids`

Fetch orders by ids.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `ids` - ids (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    ids: %{description: "ids", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_orders_by_state`

Fetch orders by state.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `state` - state (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    state: %{description: "state", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_orders_by_status`

Fetch orders by status.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `status` - status (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    status: %{description: "status", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_orders_by_type`

Fetch orders by type.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `type` - type (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_orders_classic`

Fetch orders classic.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_payment_methods`

Fetch payment methods.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_portfolio_details`

Fetch portfolio details.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `portfolio_id` - portfolio id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    portfolio_id: %{description: "portfolio id", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_portfolios`

Fetch portfolios.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_position`

Fetch a specific derivative position for a symbol.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_position_history`

Fetch position history.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_position_mode`

Fetch position mode.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_positions`

Fetch all open derivative positions.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_positions_adl_rank`

Fetch positions adl rank.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_positions_for_symbol`

Fetch positions for symbol.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_positions_history`

Fetch positions history.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_positions_risk`

Fetch positions risk.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_private_deposit_withdraw_fees`

Fetch private deposit withdraw fees.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_private_trading_fee`

Fetch private trading fee.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_private_trading_fees`

Fetch private trading fees.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_private_transaction_fees`

Fetch private transaction fees.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_public_deposit_withdraw_fees`

Fetch public deposit withdraw fees.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_public_trading_fee`

Fetch public trading fee.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_public_trading_fees`

Fetch public trading fees.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_public_transaction_fees`

Fetch public transaction fees.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_settlement_history`

Fetch settlement history.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_spot_balance`

Fetch spot balance.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_spot_markets`

Fetch spot markets.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_spot_ohlcv`

Fetch spot ohlcv.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `timeframe` - timeframe (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    timeframe: %{description: "timeframe", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_spot_order`

Fetch spot order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_spot_order_trades`

Fetch spot order trades.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_spot_orders`

Fetch spot orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_spot_orders_by_states`

Fetch spot orders by states.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_spot_orders_by_status`

Fetch spot orders by status.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_status`

Fetch the exchange operational status.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_swap_and_future_markets`

Fetch swap and future markets.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_swap_balance`

Fetch swap balance.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_swap_markets`

Fetch swap markets.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_ticker`

Fetch latest ticker (price, volume, bid/ask) for a trading pair.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_tickers`

Fetch tickers for all or specified trading pairs.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_time`

Fetch the exchange server time.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_trades`

Fetch recent public trades for a symbol.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_trading_fee`

Fetch the trading fee for a specific symbol.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_trading_fees`

Fetch trading fees for all symbols.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_trading_limits`

Fetch trading limits.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_trading_limits_by_id`

Fetch trading limits by id.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_transaction_fee`

Fetch transaction fee.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_transaction_fees`

Fetch transaction fees.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_transactions`

Fetch transactions.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_transactions_by_type`

Fetch transactions by type.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `type` - type (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    type: %{description: "type", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_transfer`

Fetch transfer.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_transfers`

Fetch transfers.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_underlying_assets`

Fetch underlying assets.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_usdt_markets`

Fetch usdt markets.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_uta_balance`

Fetch uta balance.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_uta_canceled_and_closed_orders`

Fetch uta canceled and closed orders.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_uta_markets`

Fetch uta markets.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_uta_ohlcv`

Fetch uta ohlcv.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `timeframe` - timeframe (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    timeframe: %{description: "timeframe", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_uta_order`

Fetch uta order.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_uta_orders_by_status`

Fetch uta orders by status.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_volatility_history`

Fetch volatility history.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_withdraw_addresses`

Fetch withdraw addresses.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_withdrawal`

Fetch withdrawal.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `id` - id (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    id: %{description: "id", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `fetch_withdrawals`

Fetch withdrawal history.

## Parameters

  * `exchange` - Exchange configuration struct (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `reduce_margin`

Reduce margin.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `amount` - amount (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    amount: %{description: "amount", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `repay_cross_margin`

Repay cross margin.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    amount: %{description: "amount", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `repay_isolated_margin`

Repay isolated margin.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `symbol` - symbol (value)
  * `code` - code (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    amount: %{description: "amount", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `repay_margin`

Repay margin.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)
  * `amount` - amount (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    amount: %{description: "amount", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `set_leverage`

Set leverage for a symbol on the exchange.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `leverage` - leverage (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    leverage: %{description: "leverage", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `set_margin`

Set margin.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `amount` - amount (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    amount: %{description: "amount", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `set_margin_mode`

Set margin mode (cross/isolated) for a symbol.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `margin_mode` - margin mode (value)
  * `symbol` - symbol (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    symbol: %{description: "symbol", kind: :value},
    margin_mode: %{description: "margin mode", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `set_position_mode`

Set position mode.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `hedge_mode` - hedge mode (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    exchange: %{description: "Exchange configuration struct", kind: :value},
    hedge_mode: %{description: "hedge mode", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `transfer`

Transfer funds between exchange accounts (e.g., spot to futures).

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)
  * `amount` - amount (value)
  * `from_account` - from account (value)
  * `to_account` - to account (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    amount: %{description: "amount", kind: :value},
    from_account: %{description: "from account", kind: :value},
    to_account: %{description: "to account", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `transfer_between_main_and_sub_account`

Transfer between main and sub account.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)
  * `amount` - amount (value)
  * `from_account` - from account (value)
  * `to_account` - to account (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    amount: %{description: "amount", kind: :value},
    from_account: %{description: "from account", kind: :value},
    to_account: %{description: "to account", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `transfer_between_sub_accounts`

Transfer between sub accounts.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)
  * `amount` - amount (value)
  * `from_account` - from account (value)
  * `to_account` - to account (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    amount: %{description: "amount", kind: :value},
    from_account: %{description: "from account", kind: :value},
    to_account: %{description: "to account", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `transfer_classic`

Transfer classic.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)
  * `amount` - amount (value)
  * `from_account` - from account (value)
  * `to_account` - to account (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    amount: %{description: "amount", kind: :value},
    from_account: %{description: "from account", kind: :value},
    to_account: %{description: "to account", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `transfer_out`

Transfer out.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)
  * `amount` - amount (value)
  * `address` - address (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    address: %{description: "address", kind: :value},
    amount: %{description: "amount", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `transfer_uta`

Transfer uta.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)
  * `amount` - amount (value)
  * `from_account` - from account (value)
  * `to_account` - to account (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    amount: %{description: "amount", kind: :value},
    from_account: %{description: "from account", kind: :value},
    to_account: %{description: "to account", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

# `withdraw`

Withdraw funds to an external address.

## Parameters

  * `exchange` - Exchange configuration struct (value)
  * `code` - code (value)
  * `amount` - amount (value)
  * `address` - address (value)

## Returns

\{:ok, map()\} on success, \{:error, CCXT.Error.t()\} on failure (`result_tuple`)

## Errors

  * `:not_supported`
  * `:authentication_error`
  * `:rate_limit_exceeded`
  * `:network_error`

```elixir
# descripex:contract
%{
  params: %{
    code: %{description: "code", kind: :value},
    exchange: %{description: "Exchange configuration struct", kind: :value},
    address: %{description: "address", kind: :value},
    amount: %{description: "amount", kind: :value}
  },
  errors: [:not_supported, :authentication_error, :rate_limit_exceeded,
   :network_error],
  returns: %{
    type: :result_tuple,
    description: "{:ok, map()} on success, {:error, CCXT.Error.t()} on failure"
  }
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
