Skip to content

Latest commit

 

History

History
132 lines (88 loc) · 4.98 KB

README.md

File metadata and controls

132 lines (88 loc) · 4.98 KB

Coinbase Pro API

Language Details Code Coverage License Package Version Dependency Updates

Coinbase Pro API for Node.js, written in TypeScript and covered by tests.

Motivation

The purpose of coinbase-pro-node is to continue an active Coinbase Pro API after Coinbase deprecated the official Node.js library on January, 16 2020. Its predecessor got deprecated on July, 19th 2016.

Features

  • Typed. Source code is 100% TypeScript. No need to install external typings.
  • Tested. Code coverage is 100%. No surprises when using "coinbase-pro-node".
  • Convenient. Request throttling is built-in. Don't worry about rate limiting.
  • Comfortable. More than an API client. You will get extras like candle watching.
  • Maintained. Automated security updates. No threats from outdated dependencies.
  • Documented. Get started with demo scripts and generated documentation.
  • Modern. HTTP client with Promise API. Don't lose yourself in callback hell.
  • Robust. WebSocket reconnection is built-in. No problems if your Wi-Fi is gone.

Installation

npm

npm install coinbase-pro-node

Yarn

yarn add coinbase-pro-node

Setup

JavaScript

const {CoinbasePro} = require('coinbase-pro-node');
const client = new CoinbasePro();

TypeScript

import {CoinbasePro} from 'coinbase-pro-node';
const client = new CoinbasePro();

Usage

The demo section provides many examples on how to use "coinbase-pro-node". There is also an automatically generated API documentation. For a quick start, here is a simple example for a REST request:

REST example

import {CoinbasePro} from 'coinbase-pro-node';

// API Keys can be generated here:
// https://pro.coinbase.com/profile/api
// https://public.sandbox.pro.coinbase.com/profile/api
const auth = {
  apiKey: '',
  apiSecret: '',
  passphrase: '',
  // The Sandbox is for testing only and offers a subset of the products/assets:
  // https://docs.pro.coinbase.com/#sandbox
  useSandbox: true,
};

const client = new CoinbasePro(auth);

client.rest.account.listAccounts().then(accounts => {
  const message = `You can trade "${accounts.length}" different pairs.`;
  console.log(message);
});

WebSocket example

If you want to listen to WebSocket messages, have a look at these demo scripts:

Demos

All demo scripts are executable from the root directory. If you want to use specific credentials with a demo script, simply add a .env file to the root of this package to modify environment variables used in init-client.ts.

npx ts-node ./src/demo/dump-candles.ts

Real-world examples

Checkout GitHub's dependency graph to see who uses "coinbase-pro-node" in production.

Contributing

Contributions, issues and feature requests are welcome!

Feel free to check the issues page.

The following commits will help you getting started quickly with the code base:

All resources can be found in the Coinbase Pro API reference.

Maintainers

Benny Neugebauer on Stack Exchange

License

This project is MIT licensed.

Show your support

Give a ⭐️ if this project helped you!