openagent-sdk-go is the Go SDK, verify-first like the other languages:
most services never mint an ACT — they verify one.
Private preview. The module path resolves from the private repository
with OpenAgentID organization access.
Verify an ACT
Or the fluent shape, mirroring the other SDKs:
Verification follows the normative order: envelope decode, version and
algorithm checks, Ed25519 signature verification (stdlib) before any
claim check, temporal checks with leeway, and issuer/audience/scope
policy. The aud field accepts a string or an array per the spec.
Sentinel error kinds are errors.Is-distinguishable — forgery, expiry,
and misconfiguration report differently.
Guard handlers
A missing, forged, expired, wrong-audience, or under-scoped token gets a
401 with the reason and WWW-Authenticate: OpenAgent; the route never
runs. Verified claims are available via openagent.ClaimsFromRequest(r).
Key custody
Everything derives deterministically from one 32-byte seed (Ed25519
signing keypair + X25519 encryption keypair). Go custody uses BLAKE2b
keyed derivation (documented); the canonical cross-SDK derivation is
BLAKE3 — Go custody is self-consistent.
In the box
12 Go tests plus the 13 canonical ACT vectors via cmd/run-vectors — the
same vectors the other five languages run.
Next