Skip to content

Elixir wrapper for the Binance public API

License

Notifications You must be signed in to change notification settings

cambiatus/binance.ex

 
 

Repository files navigation

binance.ex

Elixir wrapper for interacting with the Binance API.

Installation

  1. The package can be installed by adding binance to your list of dependencies in mix.exs:
def deps do
  [
    {:binance, "~> 1.0"}
  ]
end
  1. Add your Binance API credentials to your config.exs file, like so (you can create a new API key here):
config :binance,
  api_key: "xxx",
  secret_key: "xxx",
  end_point: "https://api.binance.us" # Add for the US API end point. The default is for "https://api.binance.com"

Usage

Documentation available at https://hexdocs.pm/binance.

Get all prices

iex> Binance.get_all_prices
{:ok,
 [%Binance.SymbolPrice{price: "0.07718300", symbol: "ETHBTC"},
  %Binance.SymbolPrice{price: "0.01675400", symbol: "LTCBTC"},
  %Binance.SymbolPrice{price: "0.00114690", symbol: "BNBBTC"},
  %Binance.SymbolPrice{price: "0.00655900", symbol: "NEOBTC"},
  %Binance.SymbolPrice{price: "0.00030000", symbol: "123456"},
  %Binance.SymbolPrice{price: "0.04754000", symbol: "QTUMETH"},
  %Binance.SymbolPrice{price: "0.00778500", symbol: "EOSETH"}
  ...]}

Buy 100 REQ for the current market price

iex> Binance.order_market_buy("REQETH", 100)
{:ok, %{}}

Trade pair normalization

For convenience, all functions that require a symbol in the form of "ETHBTC" also accept a %Binance.TradePair{} struct in the form of %Binance.TradePair{from: "ETH", to: "BTC"}. The order of symbols in %Binance.TradePair{} does not matter. All symbols are also case insensitive.

Binance.find_symbol/1 will return the correct string representation as it is listed on binance

Binance.find_symbol(%Binance.TradePair{from: "ReQ", to: "eTH"})
{:ok, "REQETH"}

Binance.find_symbol(%Binance.TradePair{from: "ETH", to: "REQ"})
{:ok, "REQETH"}

License

MIT

About

Elixir wrapper for the Binance public API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Elixir 100.0%