UCAN (User Controlled Authorization Networks) is a cryptographic protocol that enables decentralized authorization by allowing users to create and delegate fine-grained permissions using digitally signed tokens, eliminating the need for a centralized authority. Unlike traditional OAuth, where a central server issues tokens, UCAN empowers the end-user to generate their own authorization tokens, called UCANs or capabilities, which can be passed to applications and services. This shifts the locus of control from service providers to the individual, forming the basis for a user-centric web.
UCAN (User Controlled Authorization Networks)
What is UCAN (User Controlled Authorization Networks)?
A decentralized authorization framework enabling users to own and delegate permissions without centralized servers.
The core mechanism of UCAN is the capability token, a JSON Web Token (JWT)-like structure that contains the issuer's DID (Decentralized Identifier), the audience's DID, a set of permissions (or attenuations), and a cryptographic signature. A key innovation is the delegation chain: a UCAN token can include a proof field containing a previous UCAN, allowing permissions to be delegated from the root user through intermediate services while maintaining an auditable trail. This enables complex workflows where, for example, a user can grant a photo-editing app permission to write to their specific cloud storage folder without giving it full account access.
UCAN is foundational for building sovereign data architectures, particularly in conjunction with technologies like IPFS and Ceramic Network. It allows applications to request specific capabilities—such as filesystem/write for a particular data stream—directly from the user's client, such as a wallet. The verifying service needs only the user's public key and the token's signature, not a live connection to an auth server. This model supports offline verification, reduces latency, and enhances user privacy by minimizing the exposure of personal data to third-party auth providers.
Implementing UCAN requires a shift in application design towards capability-based security. Developers define a capability grammar—a structured set of actions and resources—that their service understands. When a user wants to perform an action, their client (e.g., a browser extension or mobile app) crafts a UCAN token with the appropriate capability and sends it with the API request. The service's UCAN resolver validates the token's signature, checks the delegation chain back to the root user, and verifies that the requested action is within the scope of the attenuated permissions.
The protocol addresses critical limitations of server-centric auth by enabling user-owned authentication, reducing vendor lock-in, and facilitating interoperability across decentralized services. Its specification is open and evolving, with implementations available in multiple languages. As a core component of the Web3 identity stack, UCAN provides the missing link for secure, user-controlled interactions in decentralized applications, data stores, and peer-to-peer networks, moving beyond the dependency on centralized platforms for permission management.
How UCAN Works: The Mechanism
UCAN (User Controlled Authorization Networks) is a decentralized authorization protocol that enables users to issue their own authorization tokens without relying on a central server.
A UCAN is a cryptographically signed token, structured as a JSON Web Token (JWT), that encodes a specific capability or permission. The core innovation is that any entity—a user's device, a server, or another service—can create and sign these tokens, provided they possess the requisite delegated authority. This creates a capability-based security model where possession of the token is proof of the right to perform an action, moving away from traditional identity-centric checks against a central authority.
The mechanism operates on a chain of delegation. A root authority, such as a user with their private key, can issue a UCAN to a client application. This token includes key fields: the iss (issuer), aud (audience or resource), att (the attested capability, e.g., "upload to /files"), exp (expiration), and a critical prf (proof) field. The prf field contains the hash of the parent UCAN that granted the issuer its authority, creating an auditable chain back to the original user. This allows for selective and auditable delegation where permissions can be finely scoped and nested.
To exercise a capability, a client presents its UCAN to a resource provider (the audience). The provider validates the token by verifying the cryptographic signature of each UCAN in the proof chain, checking expiration times, and ensuring the scoped capabilities in the att field match the requested action. This validation is entirely local and does not require a network call to the original issuer, enabling offline-first functionality. Revocation is typically time-bound through short-lived tokens, with longer-term authority managed through refresh mechanisms or key rotation.
Key Features of UCAN
UCAN (User Controlled Authorization Networks) is a decentralized authorization protocol that enables users to delegate fine-grained permissions to applications and services without relying on centralized servers.
Decentralized Authorization
UCAN replaces traditional OAuth-style authorization servers with a cryptographic token system. Users sign capability tokens with their private keys, which act as bearer instruments that services can verify independently. This eliminates the need for a central authority to manage sessions or permissions.
Capability-Based Security Model
Permissions are expressed as fine-grained capabilities within the token's payload (the att field). A capability specifies an exact action (e.g., store/add) on a specific resource (e.g., a user's file storage). This principle of least privilege is enforced by the token's structure, preventing broad, all-or-nothing access grants.
Delegation & Attenuation
A core innovation is the ability for a service (delegatee) to receive a UCAN token and then create a new, attenuated token for a downstream service. The new token can only contain a subset of the original permissions, enabling secure service composition without exposing the user's root key.
- Example: A user delegates 'upload' to App A, which can then delegate 'upload to folder X' to Service B.
Proof-of-Work (PoW) / Non-Interactive Revocation
Instead of a revocation list, UCAN uses a proof-of-work nonce (nnc) to invalidate tokens. To revoke a token or an entire key, the user publishes a new nonce, making all tokens with older nonces computationally expensive to verify. This provides eventual, non-interactive revocation without requiring online checks.
JWT-Compatible Structure
UCAN tokens are built as a profile of JSON Web Tokens (JWT), using the same compact serialization (header.payload.signature). This allows integration with existing JWT libraries, with specific fields for UCAN semantics like issuer (iss), audience (aud), capabilities (att), and proof-of-work nonce (nnc).
User-Controlled Identity & Keys
The user's Decentralized Identifier (DID) and associated cryptographic key pair are the root of trust. The protocol is agnostic to key types (e.g., Ed25519, RSA) and DID methods. Authorization flows begin and end with the user's direct cryptographic signature, ensuring true user sovereignty over their data and access rights.
UCAN Use Cases & Examples
UCAN (User Controlled Authorization Networks) is a protocol for decentralized authorization. These examples illustrate how its core principles—user-held capabilities and delegation—enable new application architectures.
Decentralized File Storage
UCAN enables user-centric access control for services like IPFS or Filecoin. Instead of a central server holding API keys, a user holds a UCAN token that grants an app permission to read/write to their specific storage space. The user can revoke this token at any time, and the app can further delegate limited capabilities (e.g., read-only) to a background service without involving the original storage provider.
- Example: A photo gallery app requests a UCAN from the user to upload images to their personal IPFS node.
Cross-Service Task Delegation
UCAN tokens can be used to orchestrate workflows across different decentralized services. A user can grant a dashboard app a token to perform specific actions, which the app can then decompose into subtasks and delegate to specialized microservices.
- Example: A user authorizes a "data backup" task. The main app uses its UCAN to delegate a "fetch emails" capability to one service and a "store on Arweave" capability to another, without ever handling the user's raw credentials for either service.
Serverless Backends & Edge Computing
UCAN facilitates secure, credential-less communication between client applications and serverless functions. A client can embed a UCAN token in an HTTP request to a cloudflare worker or AWS Lambda, proving its right to invoke the function and access specific resources. This eliminates the need for the edge function to manage API keys or session states, enabling truly stateless, scalable backends.
Revocable API Keys & SaaS Integration
UCAN provides a standardized model for fine-grained, revocable API access. A user can grant a third-party SaaS tool a token with precise permissions (e.g., "read repo A, write to issue tracker B"). This token is cryptographically signed and can be invalidated by the user instantly, providing better security and auditability than traditional OAuth tokens or static API keys stored in a database.
Decentralized Identity & Social Graphs
UCAN can underpin DID (Decentralized Identifier) interactions by allowing users to issue attestations. A user could sign a UCAN token stating "App X may assert that I am over 18" or "Service Y may post to my social feed." These capability-based attestations are more granular and context-specific than broad OAuth scopes, enabling richer, user-controlled social graphs and identity proofs.
Related Concept: Capability-Based Security
UCAN is an implementation of capability-based security, a paradigm where access rights are unforgeable tokens (capabilities) passed between entities. Key principles include:
- Principle of Least Authority: Tokens grant the minimum permission needed.
- Delegation: Capabilities can be passed on, creating an audit trail.
- Object-Capability Model: The token itself is the authority; no separate access control list (ACL) is required for verification.
This contrasts with identity-based systems where access is checked against a central list of permissions.
UCAN vs. Traditional Authorization Models
A technical comparison of authorization paradigms, contrasting the decentralized, user-centric UCAN model with traditional server-centric models.
| Feature / Attribute | UCAN (User Controlled Authorization Networks) | Traditional OAuth 2.0 / API Keys | Traditional Role-Based Access Control (RBAC) |
|---|---|---|---|
Authorization Primitive | Cryptographically signed capability tokens (UCANs) | OAuth 2.0 bearer tokens or static API keys | Centralized access control lists (ACLs) and roles |
Token Issuance & Delegation | User or delegate can issue tokens offline | Central authorization server required for issuance | Central administrator required for role assignment |
Architectural Model | Decentralized, user-centric | Client-server, resource-centric | Centralized, administrator-centric |
Revocation Mechanism | Time-based expiration; requires proactive key rotation | Centralized token revocation lists or short-lived tokens | Central administrator modifies roles or ACLs |
Offline Capability | Yes, tokens can be created and used without network | No, requires online validation with auth server | No, central policy decision point required |
User Data Sovereignty | High; user holds keys and controls delegation | Low; identity and permissions managed by service | None; fully controlled by system administrators |
Cross-Service Delegation | Native; tokens can embed proofs for other services | Limited; requires complex service-to-service configurations | Not applicable; confined to a single administrative domain |
Typical Latency for Access Grant | < 1 sec (local signing) | 100ms - 2 sec (network round-trip to auth server) | 10ms - 100ms (local policy check, after initial setup) |
UCAN in the Ecosystem
UCAN (User Controlled Authorization Networks) is a decentralized authorization protocol that enables users to issue their own authorization tokens, removing the need for centralized authentication servers.
Core Mechanism: Capability Tokens
A UCAN is a JWT-like token that encodes a user's capabilities (permissions). The token is self-contained, signed by the user's private key, and can be delegated. Key components include:
- iss (Issuer): The user who created the token.
- aud (Audience): The service or resource being accessed.
- att (Attenuation): The specific permissions granted.
- exp (Expiration): A mandatory, short-lived validity period.
- prf (Proof): A chain of previous UCANs proving the delegation path.
Key Feature: Delegation
UCAN's defining feature is delegation without a central authority. A user can create a new UCAN token that grants a subset of their own permissions to another agent (e.g., a bot or service). This creates a verifiable chain of authorization where:
- Each link in the chain is cryptographically signed.
- Permissions can only be reduced (attenuated), never expanded.
- The final resource server can validate the entire chain back to the root user without contacting an auth server.
Architectural Shift: No Central Auth Server
UCAN eliminates the traditional OAuth-style authorization server. Instead of a service checking permissions with a central database (e.g., "Does Alice have write access?"), it cryptographically verifies the UCAN token's signature chain and attenuation. This enables:
- Offline-first application design.
- Reduced latency and single points of failure.
- User sovereignty over identity and access credentials.
Related Concept: DID (Decentralized Identifier)
UCANs are often used in conjunction with DIDs. The iss and aud fields in a UCAN are typically DIDs, not traditional usernames. This pairing creates a fully decentralized identity and access stack:
- DID: Provides the persistent, verifiable identifier (the "who").
- UCAN: Provides the revocable, delegatable authorization (the "what they can do").
- Together, they enable trust without centralized registries.
Technical Implementation & Libraries
UCAN is a specification with implementations in multiple languages, promoting interoperability. Key technical notes:
- Token Format: Based on CBOR or JSON, signed with Ed25519 or secp256k1.
- Validation: A resource server must check the signature chain, expiration, and that the
attpermissions satisfy the requested action. - Libraries: Official implementations include TypeScript/JavaScript (
ucans) and Rust, with community ports for other languages.
Technical Deep Dive
A deep dive into User Controlled Authorization Networks (UCAN), a decentralized authorization protocol that enables users to delegate permissions without relying on centralized servers.
UCAN (User Controlled Authorization Networks) is a decentralized authorization protocol that allows a user to cryptographically delegate capabilities to another agent without requiring a centralized server. It works by having an issuer sign a JWT-like token containing a capability (a specific permission) and an attenuation (a set of restrictions like expiration). The recipient, or delegate, can then present this token, along with a proof chain back to the original user, to a resource host to gain access. This creates a web of trust where authorization is verified through cryptographic signatures rather than checking a central database.
Security Model & Considerations
UCAN (User Controlled Authorization Networks) is a decentralized authorization protocol that enables users to issue their own capability tokens, shifting control from centralized servers to the end-user. This section details its core security mechanisms and architectural considerations.
Capability-Based Security Model
UCAN implements a capability-based security model, where authorization is a transferable token representing a specific right (e.g., 'write to this file') rather than an identity check. This enforces the principle of least privilege by default.
- Tokens are bearer instruments: Possession of the token is proof of the capability.
- Delegation is explicit: A user can delegate a subset of their rights by issuing a new, scoped token without involving the original service.
- Revocation is resource-specific: Since capabilities are resource-scoped, revoking one does not affect others.
Decentralized Proof-of-Possession
Authorization in UCAN is verified through cryptographic proof-of-possession, not a centralized authority. A UCAN token (a JWT) is signed by the issuer's private key, and any service can validate it using the corresponding public key.
- No central auth server: Services do not need to call a central OAuth server to validate tokens.
- Offline verification: Tokens can be verified as long as the service has the issuer's public key, enabling offline-first applications.
- Auditability: The chain of signatures from the root user to the final token provides a verifiable delegation trail.
Attenuation & Delegation Chains
A core feature is attenuation, the ability to create new tokens with equal or fewer permissions than the parent token. This creates a delegation chain rooted in the user's initial key.
- Scoping: A token granting 'write access to folder A' can be attenuated to grant 'write access to file A1'.
- Expiry reduction: A delegated token must have an expiry time less than or equal to its parent, preventing indefinite delegation.
- Chain validation: Services validate the entire signature chain to ensure every delegation was authorized and properly attenuated.
Revocation & Key Rotation
UCAN handles revocation differently than session-based systems. Since tokens are bearer instruments, the primary revocation mechanism is key rotation at the root.
- Revoke by rotating keys: If a user's root private key is compromised, they generate a new key pair. All tokens signed by the old key become invalid.
- Short-lived tokens: Encouraging short expiry (ttl) limits the blast radius of a compromised token.
- Resource-led revocation: Some implementations use revocation lists stored with the resource provider for more granular, immediate control.
Considerations for Service Design
Adopting UCAN requires specific architectural patterns from service developers.
- Stateless validation: Services must be designed to validate tokens without shared state, relying on embedded signatures and public key resolution (e.g., via DID).
- Public key infrastructure: Requires a reliable way to resolve the issuer's public key, often using Decentralized Identifiers (DIDs).
- Capability discovery: Users and services need methods to discover what capabilities are available and how to request them, often through capability manifests.
Comparison to OAuth 2.0
UCAN addresses several limitations of the dominant OAuth 2.0 standard in decentralized contexts.
- User Control: OAuth relies on centralized authorization servers; UCAN is user-issued.
- Offline Access: OAuth requires online validation; UCAN tokens can be verified offline.
- Delegation Granularity: OAuth scopes are coarse and app-defined; UCAN enables fine-grained, user-defined capability delegation.
- Architecture: OAuth is designed for client-server web models; UCAN is designed for peer-to-peer and local-first applications.
Common Misconceptions About UCAN
UCAN (User Controlled Authorization Networks) is a decentralized authorization protocol, but several persistent myths obscure its core mechanics and value proposition. This section addresses the most frequent misunderstandings.
No, UCAN is a fundamentally different, decentralized authorization standard that does not rely on a central server. While OAuth and API keys require a central authority (like Google or a backend server) to issue and validate tokens, a UCAN token is a self-contained capability signed by the user's own private key. The token itself contains the proof of delegation and permissions, allowing any service that knows the user's public key to verify it without contacting an issuer. This shifts control from service providers to the end-user.
Frequently Asked Questions (FAQ)
Essential questions and answers about User Controlled Authorization Networks (UCAN), a decentralized authentication and authorization standard.
UCAN (User Controlled Authorization Networks) is a decentralized authorization protocol that enables users to issue their own authorization tokens without relying on a central server. It works by using cryptographic signatures: a user signs a token (a JWT-like structure) that grants specific capabilities (like "read file X") to another entity (a delegate). The delegate can then present this token, along with a proof chain back to the original user's key, to a service provider (like a storage node) to access resources. This creates a capability-based security model where authority is user-originated and verifiable without online checks to an issuer.
Further Reading & Resources
Explore the core components, related protocols, and foundational concepts that define the UCAN architecture for decentralized authorization.
Related Concept: Capability-Based Security
UCAN implements a capability-based security model, a paradigm where authority is held by unforgeable tokens (capabilities). This contrasts with identity-based access control (e.g., ACLs). Key principles include:
- Principle of Least Authority: Delegation is scoped and attenuated.
- Object-Capability Model: Capabilities are both a reference to a resource and the permission to use it.
- Delegation as a First-Class Operation: Rights can be passed along a chain of trust.
Get In Touch
today.
Our experts will offer a free quote and a 30min call to discuss your project.