Skip to content


Subversion checkout URL

You can clone with
Download ZIP
XChange is a Java library providing a streamlined API for interacting with 50+ Bitcoin and Altcoin exchanges providing a consistent interface for trading and accessing market data.
Latest commit a8066a2 @timmolter Merge pull request #1111 from baffo32/integration
All Integration Tests Pass
Failed to load latest commit information.
etc removed unecessary files [ci skip]
xchange-anx Remove PollingTradeService.getTradeHistory(Object...)
xchange-atlasats misc. cleanup, went through some TODOs, removed unecessary "throws" d…
xchange-bitbay [maven-release-plugin] prepare for next development iteration
xchange-bitcoinaverage [maven-release-plugin] prepare for next development iteration
xchange-bitcoincharts [maven-release-plugin] prepare for next development iteration
xchange-bitcoinde [maven-release-plugin] prepare for next development iteration
xchange-bitcoinium [maven-release-plugin] prepare for next development iteration
xchange-bitcurex [maven-release-plugin] prepare for next development iteration
xchange-bitfinex Add new order multi and cancel order multi methods for bitfinex
xchange-bitkonan [maven-release-plugin] prepare for next development iteration
xchange-bitmarket Remove PollingTradeService.getTradeHistory(Object...)
xchange-bitso [bitso] add trade OrderType
xchange-bitstamp Remove PollingTradeService.getTradeHistory(Object...)
xchange-bittrex Get correct Balance/Available and Pending
xchange-bleutrade [bleutrade] typo in comment
xchange-blockchain [maven-release-plugin] prepare for next development iteration
xchange-btc38 [maven-release-plugin] prepare for next development iteration
xchange-btccentral [maven-release-plugin] prepare for next development iteration
xchange-btcchina Remove PollingTradeService.getTradeHistory(Object...)
xchange-btce - working WithdrawCoin method
xchange-btcmarkets BTCMarkets: market orders now work; the server requires some (arbitra…
xchange-btctrade [btctrade] verify incorrect certificate
xchange-bter Remove PollingTradeService.getTradeHistory(Object...)
xchange-campbx [campbx] [core] disable TLSv1 for campbx due to server bug
xchange-cavirtex [maven-release-plugin] prepare for next development iteration
xchange-cexio Remove PollingTradeService.getTradeHistory(Object...)
xchange-clevercoin Remove PollingTradeService.getTradeHistory(Object...)
xchange-coinbase Add BTC/EUR for Coinbase
xchange-coinbaseex Remove PollingTradeService.getTradeHistory(Object...)
xchange-coinfloor [maven-release-plugin] prepare for next development iteration
xchange-coinmate Remove PollingTradeService.getTradeHistory(Object...)
xchange-coinsetter Remove PollingTradeService.getTradeHistory(Object...)
xchange-cointrader Remove PollingTradeService.getTradeHistory(Object...)
xchange-core [btctrade] verify incorrect certificate
xchange-cryptonit [cryptonit] disable ssl protocols which fail
xchange-cryptsy Cryptsy: fix adaptAccountInfo
xchange-empoex Remove PollingTradeService.getTradeHistory(Object...)
xchange-examples [hitbtc] Add raw marketdata websocket service
xchange-gatecoin Exceptions: Generic methods should throw an UnsupportedOperationExcep…
xchange-hitbtc [hitbtc] remove import wildcards for consistency
xchange-huobi Remove PollingTradeService.getTradeHistory(Object...)
xchange-independentreserve Exceptions: Generic methods should throw an UnsupportedOperationExcep…
xchange-itbit Remove PollingTradeService.getTradeHistory(Object...)
xchange-jubi [maven-release-plugin] prepare for next development iteration
xchange-kraken Adds missing value vwap for Ticker from Kraken
xchange-lakebtc [lakebtc] incorrect hostname capitalization results in SNI failure ha…
xchange-loyalbit Loyalbit: set default trade history sort order to descending (so that…
xchange-mercadobitcoin [Mercado] (blindly) implement PollingTradeService.getTradeHistory
xchange-mexbt Remove PollingTradeService.getTradeHistory(Object...)
xchange-okcoin Remove PollingTradeService.getTradeHistory(Object...)
xchange-openexchangerates [maven-release-plugin] prepare for next development iteration
xchange-poloniex [poloniex] retreive metadata remotely
xchange-quoine Better performance on string concatentions
xchange-ripple Remove PollingTradeService.getTradeHistory(Object...)
xchange-taurus Remove PollingTradeService.getTradeHistory(Object...)
xchange-therock Remove PollingTradeService.getTradeHistory(Object...)
xchange-vircurex [vircurex] fix typo in json metadata file
xchange-yacuna [maven-release-plugin] prepare for next development iteration
.gitignore fixes
.travis.yml run build on new travis container platform
CONTRIBUTORS typo fix [ci skip]
LICENSE update license and contributors file update donate BTC address [ci skip]
pom.xml pom info update

XChange XChange

XChange is a Java library providing a simple and consistent API for interacting with 50+ Bitcoin and other crypto currency exchanges providing a consistent interface for trading and accessing market data.


The world of Bitcoin changes quickly and XChange is no exception. The best way to stay updated on important announcements is to follow tweets on Knowm's Twitter page. For the latest bugfixes and features you should use the snapshot jars or build yourself from the DEVELOP branch. See below for more details about building with Maven. To report bugs and see what issues people are currently working on see the issues page. There are also most likely some open bounties to be had as well.


XChange is a library providing a simple and consistent API for interacting with a diverse set of crypto currency exchanges, including support for Bitcoin.

A complete list of implemented exchanges, data providers and brokers can be found on our Exchange Support page.

Usage is very simple: Create an Exchange instance, get the appropriate service, and request data.


Exchange bitstamp = ExchangeFactory.INSTANCE.createExchange(BitstampExchange.class.getName());

PollingMarketDataService marketDataService = bitstamp.getPollingMarketDataService();

Ticker ticker = marketDataService.getTicker(CurrencyPair.BTC_USD);


All exchange implementations expose the same API, but you can also directly access the underlying "raw" data from the individual exchanges if you need to.

Now go ahead and study some more examples, download the thing and provide feedback.


  • MIT license
  • consistent API across all implemented exchanges
  • active development
  • very minimal 3rd party dependencies
  • modular components
  • polling and streaming capability

More Info

Project Site:
Example Code:
Change Log:
Java Docs:


Design Notes:
Exchange Support:
New Implementation Best Practices: Installing SSL Certificates into TrustStore: Getting Started with XChange for Noobies:

Continuous Integration

Build Status
Build History

Getting Started


Download XChange Release Jars: Download XChange Snapshot Jars:


The XChange release artifacts are hosted on Maven Central.

Add the following dependencies in your pom.xml file. You will need at least xchange-core. Add the additional dependencies for the exchange modules you are interested in (XYZ shown only for a placeholder). There is example code for all the modules in xchange-examples.


For snapshots, add the following repository to your pom.xml file.


The current snapshot version is:


Building with Maven

run unit tests: mvn clean test
run unit and integration tests: mvn clean verify -DskipIntegrationTests=false
install in local Maven repo: mvn clean install
create project javadocs: mvn javadoc:aggregate
generate dependency tree: mvn dependency:tree


Please report any bugs or submit feature requests to XChange's Github issue tracker.


If you'd like to submit a new implementation for another exchange, please take a look at New Implementation Best Practices first, as there are lots of time-saving tips!

For more information such as a contributor list and a list of known projects depending on XChange, visit the Main Project Wiki.


Donate with Bitcoin: 1JVyTP9v9z54dALuhDTZDQfS6FUjcKjPgZ

All donations will be used to pay bounties for new features, refactoring, etc. Please consider donating or even posting your own bounties on our Issues Page. Open bounties and bounties paid thus far can be found on knowm's bounties page.

Something went wrong with that request. Please try again.