README.md

# ExFtx
[![Build Status](https://github.com/fremantle-capital/ex_ftx/workflows/test/badge.svg?branch=main)](https://github.com/fremantle-capital/ex_ftx/actions?query=workflow%3Atest)
[![hex.pm version](https://img.shields.io/hexpm/v/ex_ftx.svg?style=flat)](https://hex.pm/packages/ex_ftx)

FTX API Client for Elixir

## Installation

Add the `ex_ftx` package to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:ex_ftx, "~> 0.0.14"}
  ]
end
```

## Requirements

- Erlang 22+
- Elixir 1.10+

## API Documentation

https://docs.ftx.com/#overview

## REST API

#### Markets

- [x] `GET /markets`
- [x] `GET /markets/{market_name}`
- [x] `GET /markets/{market_name}/orderbook?depth={depth}`
- [x] `GET /markets/{market_name}/trades?limit={limit}&start_time={start_time}&end_time={end_time}`
- [x] `GET /markets/{market_name}/candles?resolution={resolution}&limit={limit}&start_time={start_time}&end_time={end_time}`

#### Futures

- [x] `GET /futures`
- [x] `GET /futures/{future_name}`
- [x] `GET /futures/{future_name}/stats`
- [x] `GET /funding_rates`
- [ ] `GET /indexes/{index_name}/weights`
- [x] `GET /expired_futures`
- [ ] `GET /indexes/{market_name}/candles?resolution={resolution}&limit={limit}&start_time={start_time}&end_time={end_time}`

#### Account

- [x] `GET /account`
- [x] `GET /positions`
- [ ] `POST /account/leverage`

#### Subaccounts

- [ ] `GET /subaccounts`
- [ ] `POST /subaccounts`
- [ ] `POST /subaccounts/update_name`
- [ ] `DELETE /subaccounts`
- [ ] `GET /subaccounts/{nickname}/balances`
- [ ] `POST /subaccounts/transfer`

#### Wallet

- [x] `GET /wallet/coins`
- [x] `GET /wallet/balances`
- [ ] `GET /wallet/all_balances`
- [ ] `GET /wallet/deposit_address/{coin}?method={method}`
- [ ] `GET /wallet/deposits`
- [ ] `GET /wallet/withdrawals`
- [ ] `POST /wallet/withdrawals`
- [x] `GET /wallet/airdrops`
- [ ] `GET /wallet/saved_addresses`
- [ ] `POST /wallet/saved_addresses`
- [ ] `DELETE /wallet/saved_addresses/{saved_address_id}`

#### Orders

- [ ] `GET /orders?market={market}`
- [ ] `GET /orders/history?market={market}`
- [ ] `GET /conditional_orders?market={market}`
- [ ] `GET /conditional_orders/{conditional_order_id}/triggers`
- [ ] `GET /conditional_orders/history?market={market}`
- [x] `POST /orders`
- [ ] `POST /conditional_orders`
- [x] `POST /orders/{order_id}/modify`
- [x] `POST /orders/by_client_id/{client_order_id}/modify`
- [ ] `POST /conditional_orders/{order_id}/modify`
- [ ] `GET /orders/{order_id}`
- [ ] `GET /orders/by_client_id/{client_order_id}`
- [x] `DELETE /orders/{order_id}`
- [x] `DELETE /orders/by_client_id/{client_order_id}`
- [ ] `DELETE /conditional_orders/{id}`
- [x] `DELETE /orders`

#### Convert

- [ ] `POST /otc/quotes`
- [ ] `GET /otc/quotes/{quoteId}`
- [ ] `POST /otc/quotes/{quote_id}/accept`

#### Spot Margin

- [x] `GET /spot_margin/history`
- [x] `GET /spot_margin/borrow_rates`
- [x] `GET /spot_margin/lending_rates`
- [x] `GET /spot_margin/borrow_summary`
- [x] `GET /spot_margin/market_info?market={market}`
- [x] `GET /spot_margin/borrow_history`
- [x] `GET /spot_margin/lending_history`
- [x] `GET /spot_margin/offers`
- [x] `GET /spot_margin/lending_info`
- [x] `POST /spot_margin/offers`

#### Fills

- [x] `GET /fills?market={market}`

#### Funding Payments

- [x] `GET /funding_payments`

#### Leveraged Tokens

- [ ] `GET /lt/tokens`
- [ ] `GET /lt/{token_name}`
- [ ] `GET /lt/balances`
- [ ] `GET /lt/creations`
- [ ] `POST /lt/{token_name}/create`
- [ ] `GET /lt/redemptions`
- [ ] `POST /lt/{token_name}/redeem`

#### Options

- [ ] `GET /options/requests`
- [ ] `GET /options/my_requests`
- [ ] `POST /options/requests`
- [ ] `DELETE /options/requests/{request_id}`
- [ ] `GET /options/requests/{request_id}/quotes`
- [ ] `POST  /options/requests/{request_id}/quotes`
- [ ] `GET /options/my_quotes`
- [ ] `DELETE /options/quotes/<quote_id>`
- [ ] `POST /options/quotes/<quote_id>/accept`
- [ ] `GET /options/account_info`
- [ ] `GET /options/positions`
- [ ] `GET /options/trades`
- [ ] `GET /options/fills`
- [ ] `GET /stats/24h_options_volume`
- [ ] `GET /options/historical_volumes/BTC`
- [ ] `GET /options/open_interest/BTC`
- [ ] `GET options/historical_open_interest/BTC`

#### SRM Staking

- [ ] `GET /staking/stakes`
- [ ] `GET /staking/unstake_requests`
- [ ] `GET /staking/balances`
- [ ] `POST /staking/unstake_requests`
- [ ] `DELETE /staking/unstake_requests/{request_id}`
- [ ] `GET /staking/staking_rewards`
- [ ] `POST /srm_stakes/stakes`

## Authors

- Alex Kwiatkowski - alex+git@fremantle.io

## License

`ex_ftx` is released under the [MIT license](./LICENSE)