coinbase-pro: Client for Coinbase Pro

[ finance, library, mit, program, web ] [ Propose Tags ]

Client for Coinbase Pro REST and Websocket APIs


[Skip to Readme]

Downloads

Versions [RSS] 0.5.0.0, 0.6.0.0, 0.7.0.0, 0.7.1.0, 0.7.2.0, 0.8.0.0, 0.9.0.0, 0.9.1.0, 0.9.2.0, 0.9.2.2, 0.9.3.0
Change log changelog.md
Dependencies aeson (>=1.2 && <1.6), aeson-casing (>=0.1 && <0.3), async (>=2.1 && <2.3), base (>=4.7 && <5), binary (>=0.8 && <0.9), bytestring (>=0.10 && <0.11), coinbase-pro, containers (>=0.5 && <0.7), cryptonite (>=0.24 && <0.28), HsOpenSSL (>=0.11 && <0.12), http-api-data (>=0.3 && <0.5), http-client (>=0.5 && <0.7), http-client-tls (>=0.3 && <0.4), http-streams (>=0.8 && <0.9), http-types (>=0.12 && <0.13), io-streams (>=1.5 && <1.6), memory (>=0.14 && <0.16), network (>=2.6 && <3.2), servant (>=0.14 && <0.19), servant-client (>=0.14 && <0.19), servant-client-core (>=0.14 && <0.19), text (>=1.2 && <1.3), time (>=1.8 && <2.0), transformers (>=0.5 && <0.6), unagi-streams (>=0.2 && <0.3), unordered-containers (>=0.2 && <0.3), uuid (>=1.3 && <1.4), vector (>=0.12 && <0.13), websockets (>=0.12 && <0.13), wuss (>=1.1 && <1.2) [details]
License MIT
Copyright 2021 Michael Dunn <michaelsdunn1@gmail.com>
Author Michael Dunn <michaelsdunn1@gmail.com>
Maintainer Michael Dunn <michaelsdunn1@gmail.com>
Category Web, Finance
Home page https://github.com/mdunnio/coinbase-pro#readme
Bug tracker https://github.com/mdunnio/coinbase-pro/issues
Source repo head: git clone https://github.com/https://github.com/mdunnio/coinbase-pro
Uploaded by mdunnio at 2021-03-07T22:46:13Z
Distributions Arch:0.9.3.0, NixOS:0.9.3.0
Executables test-stream, test-request
Downloads 2923 total (31 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2021-03-07 [all 1 reports]

Readme for coinbase-pro-0.9.2.0

[back to package description]

coinbase-pro

Client for Coinbase Pro REST and Websocket APIs.

Here is a list of implemented/unimplemented features:

  • Market Data
    • Products
      • Get Products
      • Get Product Order Book
      • Get Product Ticker
      • Get Trades
      • Get Historic Rates
      • Get 24hr Stats
    • Currencies
      • Get Currencies
    • Time
  • Private
    • Accounts
      • List Accounts
      • Get An Account
      • Get Account History
      • Get Holds
    • Orders
      • Place a New Order
      • Cancel an Order
      • Cancel all
      • List Orders
      • Get an Order
    • Fills
      • List Fills
    • Limits
      • Get Current Exchange Limits
    • Deposits
      • List Deposits
      • Single Deposit
      • Payment Method
      • Coinbase
      • Generate a Crypto Deposit Address
    • Withdrawals
      • List Withdrawals
      • Single Withdrawal
      • Payment Method
      • Coinbase
      • Crypto
      • Fee Estimate
    • Stablecoin Conversions
      • Create Conversion
    • Payment Methods
      • List Payment Methods
    • Coinbase Accounts
      • List Accounts
    • Fees
      • Get Current Fees
    • Reports
      • Create a new report
      • Get report status
    • Profiles
      • List Profiles
      • Get a Profile
      • Create a Profile Transfer
    • User Account
      • Trailing Volume
    • Oracle
      • Get Oracle
  • Websocket Feed
    • Channels
      • The heartbeat channel
      • The status channel
      • The ticker channel
      • The level2 channel
      • The user channel
      • The matches channel
      • The full channel
  • FIX API
    • Messages

Request API

Market Data Requests

run Sandbox (trades (ProductId "BTC-USD")) >>= print

Authenticated Private Requests

runCbAuthT (run Sandbox) cpc $ do
    fills (Just btcusd) Nothing >>= liftIO . print
  where
    accessKey  = CBAccessKey "<access-key>"
    secretKey  = CBSecretKey "<secret-key>"
    passphrase = CBAccessPassphrase "<passphrase>"
    cpc        = CoinbaseProCredentials accessKey secretKey passphrase

Websocket API

To print out all of the full order book updates for BTC-USD:

main :: IO ()
main = do
    msgs <- subscribeToFeed [ProductId "BTC-USD"] [Ticker] Nothing
    forever $ Streams.read msgs >>= print

Example

Example execs can be found in src/example/

Run Example

To run any of the authenticated endpoints in test-request, the access key, secret key, and passphrase must be provided. See Authenticated Private Requests above.