An easy way to buy, send, and accept bitcoin through the Coinbase API. This library supports both the API key authentication method only for now.
Get the current user information.
Coinbase.current_user()
%{"data" => %{"avatar_url" => "https://images.coinbase.com/avatar?xxxxx",
"bitcoin_unit" => "BTC",
"country" => %{...},
"created_at" => "2016-08-03T13:17:07Z", "email" => "...",
"id" => "...", "name" => "Me me me",
"native_currency" => "...", "profile_bio" => nil, "profile_location" => nil,
"profile_url" => nil, "resource" => "user", "resource_path" => "/v2/user",
"state" => nil, "time_zone" => "USA", "username" => nil}}
Get Coinbase current time.
Coinbase.current_time()
{"data" => %{"epoch" => 1497185372, "iso" => "2017-06-11T12:49:32Z"}}
Get supported native currencies
Coinbase.get_currencies()
%{"data" => [%{"id" => "AED", "min_size" => "0.01000000",
"name" => "United Arab Emirates Dirham"},
%{"id" => "AFN", "min_size" => "0.01000000", "name" => "Afghan Afghani"},
%{"id" => "ALL", "min_size" => "0.01000000", "name" => "Albanian Lek"},
%{"id" => "FJD", "min_size" => "0.01000000", ...}, %{"id" => "FKP", ...},
%{...}, ...]}
Get exchange rates(default "BTC")
Coinbase.get_exchange_rates
%{
"data" => %{
"currency" => "BTC",
"rates" => %{
"AUD" => "6233.31",
"CZK" => "103339.36",
"IDR" => "66121345.71",
...
}
}
}
Coinbase.get_exchange_rates("ETH")
%{
"data" => %{
"currency" => "ETH",
"rates" => %{
"AUD" => "185.58",
"CZK" => "3076.72",
"IDR" => "1968628.16",
...
}
}
}
Get prices
Coinbase.get_buy_price("BTC-MYR")
%{"data" => %{"amount" => "12500.29", "currency" => "MYR"}}
Coinbase.get_sell_price("BTC-MYR")
%{"data" => %{"amount" => "12700.29", "currency" => "MYR"}}
Coinbase.get_spot_price("BTC-MYR")
%{"data" => %{"amount" => "12600.29", "currency" => "MYR"}}
List all accounts under the current user.
Coinbase.accounts()
%{"data" => [...], "pagination" => %{...}}
Create new account
Coinbase.create_account("Temp Wallet Account")
%{"data" => %{"balance" => %{"amount" => "0.00000000", "currency" => "BTC"},
"created_at" => "2017-06-11T23:32:13Z", "currency" => "BTC",
"id" => "xxx__xxx",
"name" => "Temp Wallet Account",
"native_balance" => %{"amount" => "0.00", "currency" => "USD"},
"primary" => false, "resource" => "account",
"resource_path" => "/v2/accounts/xxx__xxx",
"type" => "wallet", "updated_at" => "2017-06-11T23:32:13Z"}}
Update account. The current API only allows update of name.
Coinbase.update_account("xxx-yyyy-zzz-yyy-xxx", %{name: "New name for the account"})
Delete account by ID.
Coinbase.delete_account("xxx-yyyy-zzz-yyy-xxx")
true
Please configure your API key and secret in your config file, see dev.secret.exs_sample.
config :coinbase_ex, api_key: "YOUR_API_KEY",
api_secret: "YOUR_API_SECRET",
api_url: "https://api.coinbase.com",
version: "2017-12-08"
Install from this github repo directly for now.
def deps do
[{:coinbase_ex, github: "seymores/coinbase_ex"}]
end