Categorygithub.com/skydan/deribit-api
modulepackage
1.0.5
Repository: https://github.com/skydan/deribit-api.git
Documentation: pkg.go.dev

# README

deribit-api

Go library for using the Deribit's v2 Websocket API.

V2 API Documentation: https://docs.deribit.com/v2/

Example

package main

import (
	"github.com/skydan/deribit-api"
	"github.com/skydan/deribit-api/models"
	"log"
)

func main() {
	cfg := &deribit.Configuration{
		Addr:          deribit.TestBaseURL,
		ApiKey:        "AsJTU16U",
		SecretKey:     "mM5_K8LVxztN6TjjYpv_cJVGQBvk4jglrEpqkw1b87U",
		AutoReconnect: true,
		DebugMode:     true,
	}
	client := deribit.New(cfg)

	client.GetTime()
	client.Test()

	var err error

	// GetBookSummaryByCurrency
	getBookSummaryByCurrencyParams := &models.GetBookSummaryByCurrencyParams{
		Currency: "BTC",
		Kind:     "future",
	}
	var getBookSummaryByCurrencyResult []models.BookSummary
	getBookSummaryByCurrencyResult, err = client.GetBookSummaryByCurrency(getBookSummaryByCurrencyParams)
	if err != nil {
		log.Printf("%v", err)
		return
	}
	log.Printf("%v", getBookSummaryByCurrencyResult)

	// GetOrderBook
	getOrderBookParams := &models.GetOrderBookParams{
		InstrumentName: "BTC-PERPETUAL",
		Depth:          5,
	}
	var getOrderBookResult models.GetOrderBookResponse
	getOrderBookResult, err = client.GetOrderBook(getOrderBookParams)
	if err != nil {
		log.Printf("%v", err)
		return
	}
	log.Printf("%v", getOrderBookResult)

	// GetPosition
	getPositionParams := &models.GetPositionParams{
		InstrumentName: "BTC-PERPETUAL",
	}
	var getPositionResult models.Position
	getPositionResult, err = client.GetPosition(getPositionParams)
	if err != nil {
		log.Printf("%v", err)
		return
	}
	log.Printf("%v", getPositionResult)

	// Buy
	guyParams := &models.BuyParams{
		InstrumentName: "BTC-PERPETUAL",
		Amount:         40,
		Price:          6000.0,
		Type:           "limit",
	}
	var buyResult models.BuyResponse
	buyResult, err = client.Buy(guyParams)
	if err != nil {
		log.Printf("%v", err)
		return
	}
	log.Printf("%v", buyResult)

	// Subscribe
	client.On("announcements", func(e *models.AnnouncementsNotification) {
    
    })
    client.On("book.ETH-PERPETUAL.100.1.100ms", func(e *models.OrderBookGroupNotification) {

    })
    client.On("book.BTC-PERPETUAL.100ms", func(e *models.OrderBookNotification) {

    })
    client.On("book.BTC-PERPETUAL.raw", func(e *models.OrderBookRawNotification) {

    })
    client.On("deribit_price_index.btc_usd", func(e *models.DeribitPriceIndexNotification) {

    })
    client.On("deribit_price_ranking.btc_usd", func(e *models.DeribitPriceRankingNotification) {

    })
    client.On("estimated_expiration_price.btc_usd", func(e *models.EstimatedExpirationPriceNotification) {

    })
    client.On("markprice.options.btc_usd", func(e *models.MarkpriceOptionsNotification) {

    })
    client.On("perpetual.BTC-PERPETUAL.raw", func(e *models.PerpetualNotification) {

    })
    client.On("quote.BTC-PERPETUAL", func(e *models.QuoteNotification) {

    })
    client.On("ticker.BTC-PERPETUAL.raw", func(e *models.TickerNotification) {

    })
    client.On("trades.BTC-PERPETUAL.raw", func(e *models.TradesNotification) {

    })

    client.On("user.changes.BTC-PERPETUAL.raw", func(e *models.UserChangesNotification) {

    })
    client.On("user.changes.future.BTC.raw", func(e *models.UserChangesNotification) {

    })
    client.On("user.orders.BTC-PERPETUAL.raw", func(e *models.UserOrderNotification) {

    })
    client.On("user.orders.future.BTC.100ms", func(e *models.UserOrderNotification) {

    })
    client.On("user.portfolio.btc", func(e *models.PortfolioNotification) {

    })
    client.On("user.trades.BTC-PERPETUAL.raw", func(e *models.UserTradesNotification) {

    })
    client.On("user.trades.future.BTC.100ms", func(e *models.UserTradesNotification) {

    })
    
    client.Subscribe([]string{
        //"announcements",
        //"book.BTC-PERPETUAL.none.10.100ms",	// none/1,2,5,10,25,100,250
        //"book.BTC-PERPETUAL.100ms",	// type: snapshot/change
        "book.BTC-PERPETUAL.raw",
        //"deribit_price_index.btc_usd",
        //"deribit_price_ranking.btc_usd",
        //"estimated_expiration_price.btc_usd",
        //"markprice.options.btc_usd",
        //"perpetual.BTC-PERPETUAL.raw",
        //"quote.BTC-PERPETUAL",
        //"ticker.BTC-PERPETUAL.raw",
        "trades.BTC-PERPETUAL.raw",
        //"user.changes.BTC-PERPETUAL.raw",
        //"user.changes.future.BTC.raw",
        "user.orders.BTC-PERPETUAL.raw",
        //"user.orders.future.BTC.100ms",
        //"user.portfolio.btc",
        //"user.trades.BTC-PERPETUAL.raw",
        //"user.trades.future.BTC.100ms",
    })

	forever := make(chan bool)
	<- forever
}

# Packages

No description provided by the author

# Functions

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
NewObjectStream creates a new jsonrpc2.ObjectStream for sending and receiving JSON-RPC 2.0 objects over a WebSocket.
No description provided by the author

# Constants

No description provided by the author
No description provided by the author
No description provided by the author

# Variables

No description provided by the author

# Structs

No description provided by the author
No description provided by the author
Event is wrapper of received event.
A ObjectStream is a jsonrpc2.ObjectStream that uses a WebSocket to send and receive JSON-RPC 2.0 objects.
Token is used to embedded in params for private methods.