New Release: viabtc v0.4.0
Tags: ruby, opensource, cryptocurrency, rails
Published: 2019-02-14 18:15:45

---
title: New Release: viabtc v0.4.0
published: true
description: An HTTP Client to Interface with the Open-Source ViaBTC Exchange Server
tags: ruby, opensource, cryptocurrency, rails
cover_image: https://thepracticaldev.s3.amazonaws.com/i/v4fe7s4qu0yn6bl419p4.jpg
---

# [ViaBTC][Repository] 📈

An HTTP client to interface with the open-source [ViaBTC Exchange Server][ViaBTC Exchange Server Repo].

Interested in creating a cryptocurrency exchange? This gem can help you.

## Installation

Add `viabtc` to your Gemfile and run `bundle` OR install it yourself with `gem install viabtc`.

## Configuration

If using **Rails**, create a file named `viabtc.rb` under `config/initializers` and add the following block of code.

```rb
ViaBTC.configure do |config|
  config.http_base_url = 'http://localhost:18080'
end
```

If not, add it anywhere in your code that runs before a new client is initialized. Read more at: 📖[Configuration Wiki](https://github.com/krmbzds/viabtc/wiki/Configuration)

## Usage

Create a new instance:

```rb
viabtc_http_client = ViaBTC::HTTP::Client.new
```

Make an API request:

```rb
viabtc_http_client.market_status(market: 'ETHBTC')

#=> {"error"=>nil, "result"=>{"low"=>"0", "period"=>86400, "last"=>"0", "high"=>"0", "open"=>"0", "volume"=>"0", "close"=>"0", "deal"=>"0"}, "id"=>0}
```

## Support

#### Ruby Versions Tested Against

- ✅ `2.6.1` (stable)
- ✅ `2.5.3` (stable)
- ✅ `2.4.5` (stable)
- ⏳ `2.3.8` (security maintenance phase)

#### ViaBTC Exchange Server API Support

| API Method | Corresponding Methods |
|---|---|
| `balance.query` | `#balance` |
| `balance.update` | `#withdraw` `#deposit` |
| `balance.history` | `#balance_history`  |
| `asset.list` | `#asset_list` |
| `asset.summary` | `#asset_summary` |
| `order.put_limit` | `#limit_sell` `#limit_buy` |
| `order.put_market` | `#market_sell` `#market_buy` |
| `order.cancel` | `#cancel_order` |
| `order.deals` | `#order_deals` |
| `order.book` | `#sell_orders` `#buy_orders` |
| `order.depth` | `#order_depth` |
| `order.pending` | `#pending_orders` |
| `order.pending_detail` | `#pending_order_details` |
| `order.finished` | `#finished_orders` `#finished_sell_orders` `#finished_buy_orders` |
| `order.finished_detail` | `#finished_order_detail` |
| `market.last` | `#market_last` |
| `market.deals` | `#market_deals` |
| `market.user_deals` | `#user_executed_orders` |
| `market.kline` | `#market_kline` |
| `market.status` | `#market_status` |
| `market.status_today` | `#market_status_today` |
| `market.list` | `#market_list` |
| `market.summary` | `#market_summary` |

## Development

After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [RubyGems][RubyGems].

## Contributing

1. [Fork the repository][Fork]
2. Switch to develop branch (`git checkout develop`)
3. Create your feature branch (`git checkout -b my-new-feature`)
4. Commit your changes (`git commit -am 'Add some feature'`)
5. Push to the branch (`git push origin my-new-feature`)
6. Create new Pull Request

### Donations ❤️

You can donate me at [Librepay][Donation]. Thanks! ☕️

## Is it any good?

Yes.

---------------------------------------------

Since you made it this far.. 🤓

Don't forget to ⭐️ my [repository][Repository] if you like it!

Bug reports and pull requests are welcome! ♥️

Happy Hacking,
Kerem

---------------------------------------------

Photo Courtesy of [Chris Liverani](https://unsplash.com/@chrisliverani)

[Donation]: https://liberapay.com/krmbzds/donate
[Fork]: http://github.com/krmbzds/viabtc/fork
[License]: http://kerem.mit-license.org
[Personal Webpage]: http://kerembozdas.com
[Repository]: https://github.com/krmbzds/viabtc
[RubyGems]: https://rubygems.org
[ViaBTC Exchange Server Repo]: https://github.com/viabtc/viabtc_exchange_server