Skip to main content

Go SDK

The official Go SDK for Crowd.Credit, compatible with Go 1.21+.

Installation

go get github.com/crowdpay/crowd-credit-go

Setup

package main

import (
cc "github.com/crowdpay/crowd-credit-go"
)

func main() {
client := cc.NewClient(cc.WithAPIKey("your_api_key"))
}

Usage Examples

Account Management

// Get account details
account, err := client.Accounts.Me(ctx)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Account: %s\n", account.WalletAddress)

Credit

// Get credit line
creditLine, err := client.Credit.GetLine(ctx)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Available: $%s\n", creditLine.Available)
fmt.Printf("Health factor: %s\n", creditLine.HealthFactor)

Deposits

// List deposits
deposits, err := client.Deposits.List(ctx, &cc.ListParams{Limit: 10})
if err != nil {
log.Fatal(err)
}
for _, d := range deposits.Items {
fmt.Printf("Deposit: %s %s\n", d.Amount, d.Token)
}

Error Handling

import "errors"

_, err := client.Credit.Draw(ctx, &cc.DrawParams{Amount: "1000"})
if err != nil {
var rateLimitErr *cc.RateLimitError
var apiErr *cc.APIError
if errors.As(err, &rateLimitErr) {
fmt.Printf("Rate limited. Retry after %ds\n", rateLimitErr.RetryAfter)
} else if errors.As(err, &apiErr) {
fmt.Printf("API error: %s - %s\n", apiErr.Code, apiErr.Message)
}
}

Next Steps