Skip to content

Go Implementation

This is a go library to help the next generation of web and decentralized applications make use of UCANs in their authorization flows.

User Controlled Authorization Networks (UCANs) are a way of doing authorization where users are fully in control. OAuth is designed for a centralized world, UCAN is the distributed user controlled version.

The UCAN specification is separated in multiple sub-spec:

Not implemented yet:

go-ucan currently support the required parts of the UCAN specification: the main specification, delegation and invocation.

Besides that, go-ucan also includes:

  • a simplified DID and did-key implementation
  • a token container with CBOR and CAR format, to package and carry tokens together, see SPEC
  • support for encrypted values in token’s metadata

For usage questions, usecases, or issues reach out to us in our go-ucan Discord channel.

We would be happy to try to answer your question or try opening a new issue on Github.

Artwork by Bruno Monts. Thank you Renee French for creating the Go Gopher

This project is licensed under the double license Apache 2.0 + MIT.