An authorization token with decentralized verification, offline attenuation and policy enforcement based on a logic language (Datalog). A Biscuit is signed with public-key cryptography so any service that knows the public key can verify it, and the holder can derive a new token with fewer rights, for instance a read-only or time-limited one, without contacting the issuer. Authorization policies are written in Datalog and can be supplied by the verifying application or carried by the token. Every token has unique revocation identifiers that reject it and all tokens attenuated from it. It suits capability-based authorization but can also express access control lists. Implementations exist in Rust, Haskell, Go, Java, JavaScript and WebAssembly, C, Python and C#; it is an Eclipse Foundation project .
OwnerEclipse Foundation (project Eclipse Biscuit); maintained and led by Geoffroy Couprie, Clément Delafargue and Cédric Corbière, with dozens of contributors over the years
Governing BodyEclipse Foundation (Eclipse Biscuit project, status Incubating); project leads Geoffroy Couprie, Clément Delafargue and Cédric Corbière
Country Not stated by the project.
Start Year 2019
StackProtobuf-serialized tokens, Ed25519 signatures, Datalog-based authorization language; Rust reference implementation compiled to WebAssembly for JavaScript; other language libraries
OriginsAn authorization token that blends public-key-verifiable tokens (as in JWT or macaroons) with offline attenuation and a logic-based policy language, so that services can verify and narrow permissions without a central authorization server
Database N/A
Query LanguageDatalog-based policy language for authorization rules, checks and facts
Data FormatsProtobuf-encoded token with signed blocks; Ed25519 signatures; a base64 text form for transport
Mobile SupportLibrary-level: Rust, WebAssembly and other language libraries; no application
Web SupportYes: online tooling lets tokens be created, attenuated, inspected and tested in a browser
Native AppsLibrary-level only
TermsFree and open source (Apache-2.0)
Funds Not stated by the project.
Based OnPublic-key tokens and capability security (JWT-style signatures, macaroon-style attenuation) with Datalog as the policy language
PermissionsCapabilities and access control lists expressed as Datalog policies; attenuation can only add restrictions
Authentication & IdentityTokens are authorization credentials signed by the issuer's key; the token's blocks can carry facts about the holder, but identity itself is left to the application
Storage ModelTokens are self-contained and carried by the holder; verifiers need only the issuer's public key
InteroperabilityA protobuf schema and a published list of test cases let new implementations be built; implementations in nine languages are listed, with differing support for newer specification versions shown in the feature table
Data PortabilityTokens can be passed between parties and attenuated offline; they are not tied to a particular service beyond the issuer's public key
Governance & Decision MakingEclipse Foundation project process with three named project leads; specification changes are made in the open repository and tracked in a roadmap issue
Protocol Maturity / StandardizationSpecification v3.3 and a stable earlier version; an Eclipse Foundation project in Incubating status; not an IETF or W3C deliverable; the project says it is still seeking an audit
Identity StandardsNo W3C DID or Verifiable Credentials mapping; the token is its own format
DID Methods Supported N/A
Key ManagementEd25519 root key held by the issuer; attenuation blocks are signed with ephemeral keys derived along the chain
Credential TypesAuthorization tokens with attenuation blocks; not identity credentials
Verification MethodAny verifier with the root public key checks the signature chain and then runs the Datalog policies against the token's facts and the request
Privacy FeaturesLimited: the token carries its facts and checks in the clear, and the authors note attenuation is visible to the verifier; the project does not claim anonymity or unlinkability
Authentication MethodsPublic-key signatures on token blocks, with optional third-party blocks signed by other parties
Revocation MechanismUnique revocation identifiers per block let a verifier reject a token and all tokens attenuated from it; expiry can be set by attenuation
Agent Types SupportedServices, users and applications that issue, hold or verify tokens
Wallet/Client TypesLibraries and online tooling; no wallet
Recovery Mechanisms Not stated by the project.
Compliance / Regulations Not stated by the project.
Credential Exchange ProtocolsNone defined: tokens are carried in headers or messages by the application
Trust FrameworkTrust in the issuer's public key; third-party blocks allow trust in other parties' signatures when the verifier chooses
Cost ModelFree to use
Censorship ResistanceHigh for verification, since a verifier needs only a public key; issuance depends on the application
See something missing or that could be improved? Let us know →