# README
GoCryptoTrader package Coinbasepro

This coinbasepro package is part of the GoCryptoTrader codebase.
This is still in active development
You can track ideas, planned features and what's in progress on our GoCryptoTrader Kanban board.
Join our slack to discuss all things related to GoCryptoTrader! GoCryptoTrader Slack
CoinbasePro Exchange
Current Features
- REST Support
- Websocket Support
How to enable
-
Individual package example below:
// Exchanges will be abstracted out in further updates and examples will be
// supplied then
How to do REST public/private calls
- If enabled via "configuration".json file the exchange will be added to the
IBotExchange array in the
go var bot Bot
and you will only be able to use the wrapper interface functions for accessing exchange data. View routines.go for an example of integration usage with GoCryptoTrader. Rudimentary example below:
main.go
var c exchange.IBotExchange
for i := range bot.Exchanges {
if bot.Exchanges[i].GetName() == "CoinbasePro" {
c = bot.Exchanges[i]
}
}
// Public calls - wrapper functions
// Fetches current ticker information
tick, err := c.UpdateTicker(...)
if err != nil {
// Handle error
}
// Fetches current orderbook information
ob, err := c.UpdateOrderbook(...)
if err != nil {
// Handle error
}
// Private calls - wrapper functions - make sure your APIKEY and APISECRET are
// set and AuthenticatedAPISupport is set to true
// Fetches current account information
accountInfo, err := c.GetAccountInfo()
if err != nil {
// Handle error
}
- If enabled via individually importing package, rudimentary example below:
// Public calls
// Fetches current ticker information
ticker, err := c.GetTicker()
if err != nil {
// Handle error
}
// Fetches current orderbook information
ob, err := c.GetOrderBook()
if err != nil {
// Handle error
}
// Private calls - make sure your APIKEY and APISECRET are set and
// AuthenticatedAPISupport is set to true
// GetUserInfo returns account info
accountInfo, err := c.GetUserInfo(...)
if err != nil {
// Handle error
}
// Submits an order and the exchange and returns its tradeID
tradeID, err := c.Trade(...)
if err != nil {
// Handle error
}
How to do Websocket public/private calls
// Exchanges will be abstracted out in further updates and examples will be
// supplied then
Please click GoDocs chevron above to view current GoDoc information for this package
Contribution
Please feel free to submit any pull requests or suggest any desired features to be added.
When submitting a PR, please abide by our coding guidelines:
- Code must adhere to the official Go formatting guidelines (i.e. uses gofmt).
- Code must be documented adhering to the official Go commentary guidelines.
- Code must adhere to our coding style.
- Pull requests need to be based on and opened against the
master
branch.
Donations

If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to:
bc1qk0jareu4jytc0cfrhr5wgshsq8282awpavfahc
# Functions
GetRateLimit returns the rate limit for the exchange.
# Variables
CoinbaseRequestParamsTimeGTC GTC.
CoinbaseRequestParamsTimeIOC IOC.
# Structs
Account is a sub-type for account overview.
AccountHolds contains the hold information about an account.
AccountLedgerResponse holds account history information.
AccountOverview holds account information returned from position.
AccountResponse holds the details for the trading accounts.
CoinbaseAccounts holds coinbase account information.
CoinbasePro is the overarching type across the coinbasepro package.
Currency holds singular currency product information.
DepositWithdrawalInfo holds returned deposit information.
FillResponse contains fill information from the exchange.
Funding holds funding data.
GeneralizedOrderResponse is the generalized return type across order placement and information collation.
History holds historic rate information.
LimitInfo is a sub-type for payment method.
MarginTransfer holds margin transfer details.
OrderbookL1L2 holds level 1 and 2 order book information.
OrderbookL3 holds level 3 order book information.
OrderbookResponse is a generalized response for order books.
OrderL1L2 is a type used in layer conversion.
OrderL3 is a type used in layer conversion.
PaymentMethod holds payment method information.
Product holds product information.
Report holds historical information.
ServerTime holds current requested server time information.
Stats holds last 24 hr data for coinbasepro.
Ticker holds basic ticker information.
Trade holds executed trade information.
TransferHistory returns wallet transfer history.
Volume type contains trailing volume information.
WebsocketHeartBeat defines JSON response for a heart beat message.
WebsocketL2Update defines an update on the L2 orderbooks.
WebsocketOrderbookSnapshot defines a snapshot response.
WebsocketSubscribe takes in subscription information.
WebsocketTicker defines ticker websocket response.
WsChannel defines a websocket subscription channel.
# Type aliases
RequestParamsTimeForceType Time in force.