go-ucan Logo

go-ucan

UCAN v1.0.0-rc.1 GitHub Tag Build Status Go benchmarks Apache 2.0 + MIT License Docs Discord

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. ## Resources ### Specifications The UCAN specification is separated in multiple sub-spec: - [Main specification](https://github.com/ucan-wg/spec) - [Delegation](https://github.com/ucan-wg/delegation/tree/v1_ipld) - [Invocation](https://github.com/ucan-wg/invocation) - [Container](https://github.com/ucan-wg/container) Not implemented yet: - [Revocation](https://github.com/ucan-wg/revocation/tree/first-draft) - [Promise](https://github.com/ucan-wg/promise/tree/v1-rc1) ### Talks - [Decentralizing Auth, and UCAN Too - Brooklyn Zelenka (2023)](https://www.youtube.com/watch?v=MuHfrqw9gQA) - [What's New in UCAN 1.0 - Brooklyn Zelenka (2024)](https://www.youtube.com/watch?v=-uohQzZcwF4) ## Status `go-ucan` currently support the required parts of the UCAN specification: the main specification, delegation and invocation. It leverages the sibling project [`go-did-it`](https://github.com/MetaMask/go-did-it) for easy and extensible DID support. Besides that, `go-ucan` also includes: - support for encrypted values in token's metadata ## Getting Help For usage questions, usecases, or issues reach out to us in our `go-ucan` [Discord channel](https://discord.gg/3EHEQ6M8BC). We would be happy to try to answer your question or try opening a new issue on Github. ## UCAN Gopher Artwork by [Bruno Monts](https://www.instagram.com/bruno_monts). Thank you [Renee French](http://reneefrench.blogspot.com/) for creating the [Go Gopher](https://blog.golang.org/gopher) ## License This project is licensed under the double license [Apache 2.0 + MIT](https://github.com/ucan-wg/go-ucan/blob/v1/LICENSE.md).