Skip to content
Docs SDKs & integrations

Go SDK

Typed access to the ledger from Go services and tools.

The Go SDK wraps the REST + SSE API with typed structs and a small, idiomatic surface. It has no hidden dependencies and ships as a normal Go module.

Install

bash
go get github.com/gridtrue/gridtrue-go@latest

List attestations for a commit

go
package main

import (
    "context"
    "fmt"

    gridtrue "github.com/gridtrue/gridtrue-go"
)

func main() {
    client, err := gridtrue.New(gridtrue.WithToken("gt_live_…"))
    if err != nil {
        panic(err)
    }

    ctx := context.Background()
    atts, err := client.Attestations("acme", "payments").
        ForCommit(ctx, "6f4a…d91")
    if err != nil {
        panic(err)
    }

    for _, a := range atts {
        fmt.Printf("%-16s %-10s %s\n",
            a.Predicate, a.Result.Status, a.Identity)
    }
}

Stream live events

go
events, err := client.Events(ctx, "acme")
if err != nil { panic(err) }
defer events.Close()

for {
    evt, err := events.Next(ctx)
    if err != nil { break }
    switch evt := evt.(type) {
    case *gridtrue.AttestationEvent:
        fmt.Println("new attestation:", evt.Predicate)
    case *gridtrue.StateEvent:
        fmt.Println("state:", evt.Commit, evt.From, "→", evt.To)
    }
}