Skip to content

Getting started

New to the protocol? How AAuth works explains the roles, and Flows shows each exchange. This page is for installing the module and choosing a package.

Drafts implemented

Draft Version Constant
AAuth Protocol draft-hardt-oauth-aauth-protocol-11 aauth.ProtocolDraft
HTTP Signature Keys draft-hardt-httpbis-signature-key-09 aauth.SignatureKeyDraft
AAuth Bootstrap draft-hardt-aauth-bootstrap-02 aauth.BootstrapDraft

The drafts are works in progress, and each revision can change the wire format; the module's minor version moves with them until the protocol stabilizes. Upgrading from v0.1 (draft -09)? See the migration guide and the changelog. For an interactive tour of the protocol, see explorer.aauth.dev.

Install

go get github.com/aauth-dev/aauth-go

Requires Go 1.26 or later. The full API reference is on pkg.go.dev.

import aauth "github.com/aauth-dev/aauth-go"

Packages

Package Contents
aauth The protocol vocabulary shared by every role: identifiers, keys, tokens (mint, issue, verify), HTTP message signatures, metadata, requirements, deferred responses, revocation, errors, and the agent-side PSClient and Transport. Resources use it directly.
personserver Person Server as an http.Handler: person and auth token endpoints, pending requests, missions, permission, audit, interaction, revocation, and federation to access servers.
accessserver Access Server as an http.Handler (AS token endpoint, revocation), plus Client (PS to AS over HTTP) and Server.Local (in-process PS-AS collapse).
agentprovider Hosted agent provider: agent token issuance, two-key and single-key refresh, sub-agent tokens, and a Client with a TokenSource for agents.
ratelimit In-memory token bucket implementing aauth.Limiter for single-instance deployments.
interactioncode Interaction code generation and canonicalization (Crockford base32).