Go SDK

Official Go SDK for Keymint. Add idiomatic software licensing, machine binding, and floating session heartbeats to your Go applications.

Installation

bash
go get github.com/keymint-dev/keymint-go

Quick Start

go
package main

import (
    "fmt"
    keymint "github.com/keymint-dev/keymint-go"
)

func main() {
    admin, err := keymint.New("YOUR_ADMIN_API_KEY", "")
    if err != nil {
        panic(err)
    }
    client, err := keymint.New("YOUR_CLIENT_API_KEY", "")
    if err != nil {
        panic(err)
    }

    // Create a key with allowed hosts (Node-locking)
    newKey, err := admin.CreateKey(keymint.CreateKeyParams{
        ProductID:    "prod_Nx8K2mLpQ4rVtW9sBc",
        AllowedHosts: []string{"machine-a", "machine-b"},
    })

    // Activate a license
    result, err := client.ActivateKey(keymint.ActivateKeyParams{
        ProductID:  "prod_Nx8K2mLpQ4rVtW9sBc",
        LicenseKey: "XXXXX-XXXXX-XXXXX-XXXXX",
        HostID:     keymint.String("machine-a"),
    })
    if err != nil {
        panic(err)
    }

    fmt.Println(result.Message) // "License valid"
}

Use client keys for activation/deactivation/floating sessions. Use admin keys for create/update/block/unblock/sign and customer management. Use read-only or admin keys for detailed key lookup.

Resources