{"id":19258416,"url":"https://github.com/maurodelazeri/go-gdax-api","last_synced_at":"2025-02-23T18:15:40.849Z","repository":{"id":150738530,"uuid":"118618229","full_name":"maurodelazeri/go-gdax-api","owner":"maurodelazeri","description":"Go (golang) GDAX API https://docs.gdax.com/","archived":false,"fork":false,"pushed_at":"2018-01-23T14:07:49.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-05T09:22:01.858Z","etag":null,"topics":["gdax-api","gdax-go"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maurodelazeri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-23T14:03:03.000Z","updated_at":"2018-01-23T14:08:49.000Z","dependencies_parsed_at":"2023-08-30T15:16:23.979Z","dependency_job_id":null,"html_url":"https://github.com/maurodelazeri/go-gdax-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maurodelazeri%2Fgo-gdax-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maurodelazeri%2Fgo-gdax-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maurodelazeri%2Fgo-gdax-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maurodelazeri%2Fgo-gdax-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maurodelazeri","download_url":"https://codeload.github.com/maurodelazeri/go-gdax-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240356189,"owners_count":19788512,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gdax-api","gdax-go"],"created_at":"2024-11-09T19:13:19.166Z","updated_at":"2025-02-23T18:15:40.783Z","avatar_url":"https://github.com/maurodelazeri.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Go GDAX API - \n========\n\n## Summary\n\nGo client for [GDAX](https://www.gdax.com)\n\nhttps://docs.gdax.com/\n\n## Installation\n\n```sh\ngo get github.com/maurodelazeri/go-gdax-api\n```\n\n### Setup\nHow to create a client:\n\n```go\n\nimport (\n  \"os\"\n  gdax \"github.com/maurodelazeri/go-gdax-api\"\n)\n\nsecret := os.Getenv(\"COINBASE_SECRET\")\nkey := os.Getenv(\"COINBASE_KEY\")\npassphrase := os.Getenv(\"COINBASE_PASSPHRASE\")\n\n// or unsafe hardcode way\nsecret = \"exposedsecret\"\nkey = \"exposedkey\"\npassphrase = \"exposedpassphrase\"\n\nclient := gdax.NewClient(secret, key, passphrase)\n```\n\n### HTTP Settings\n```go\nimport (\n  \"net/http\"\n  \"time\"\n)\n\nclient.HttpClient = \u0026http.Client {\n  Timeout: 15 * time.Second,\n}\n```\n\n### Cursor\nThis library uses a cursor pattern so you don't have to keep track of pagination.\n\n```go\nvar orders []gdax.Order\ncursor = client.ListOrders()\n\nfor cursor.HasMore {\n  if err := cursor.NextPage(\u0026orders); err != nil {\n    println(err.Error())\n    return\n  }\n\n  for _, o := range orders {\n    println(o.Id)\n  }\n}\n\n```\n\n### Websockets\nListen for websocket messages\n\n```go\n  import(\n    ws \"github.com/gorilla/websocket\"\n  )\n\n  var wsDialer ws.Dialer\n  wsConn, _, err := wsDialer.Dial(\"wss://ws-feed.gdax.com\", nil)\n  if err != nil {\n    println(err.Error())\n  }\n\n  subscribe := gdax.Message{\n    Type:      \"subscribe\",\n    Channels: []gdax.MessageChannel{\n      gdax.MessageChannel{\n        Name: \"level2\",\n        ProductIds: []string{\n          \"BTC-USD\",\n        },\n      },\n    },\n  }\n  if err := wsConn.WriteJSON(subscribe); err != nil {\n    println(err.Error())\n  }\n\n  message:= gdax.Message{}\n  for true {\n    if err := wsConn.ReadJSON(\u0026message); err != nil {\n      println(err.Error())\n      break\n    }\n\n    if message.Type == \"match\" {\n      println(\"Got a match\")\n    }\n  }\n\n```\n\n### Time\nResults return coinbase time type which handles different types of time parsing that GDAX returns. This wraps the native go time type\n\n```go\n  import(\n    \"time\"\n    gdax \"github.com/maurodelazeri/go-gdax-api\"\n  )\n\n  coinbaseTime := gdax.Time{}\n  println(time.Time(coinbaseTime).Day())\n```\n\n### Examples\nThis library supports all public and private endpoints\n\nGet Accounts:\n```go\n  accounts, err := client.GetAccounts()\n  if err != nil {\n    println(err.Error())\n  }\n\n  for _, a := range accounts {\n    println(a.Balance)\n  }\n```\n\nList Account Ledger:\n```go\n  var ledger []gdax.LedgerEntry\n\n  accounts, err := client.GetAccounts()\n  if err != nil {\n    println(err.Error())\n  }\n\n  for _, a := range accounts {\n    cursor := client.ListAccountLedger(a.Id)\n    for cursor.HasMore {\n      if err := cursor.NextPage(\u0026ledger); err != nil {\n        println(err.Error())\n      }\n\n      for _, e := range ledger {\n        println(e.Amount)\n      }\n  }\n```\n\nCreate an Order:\n```go\n  order := gdax.Order{\n    Price: 1.00,\n    Size: 1.00,\n    Side: \"buy\",\n    ProductId: \"BTC-USD\",\n  }\n\n  savedOrder, err := client.CreateOrder(\u0026order)\n  if err != nil {\n    println(err.Error())\n  }\n\n  println(savedOrder.Id)\n```\n\nTransfer funds:\n```go\n  transfer := gdax.Transfer {\n    Type: \"deposit\",\n    Amount: 1.00,\n  }\n\n  savedTransfer, err := client.CreateTransfer(\u0026transfer)\n  if err != nil {\n    println(err.Error())\n  }\n```\n\nGet Trade history:\n```go\n  var trades []gdax.Trade\n  cursor := client.ListTrades(\"BTC-USD\")\n\n  for cursor.HasMore {\n    if err := cursor.NextPage(\u0026trades); err != nil {\n      for _, t := range trades {\n        println(trade.CoinbaseId)\n      }\n    }\n  }\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaurodelazeri%2Fgo-gdax-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaurodelazeri%2Fgo-gdax-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaurodelazeri%2Fgo-gdax-api/lists"}