ProvenanceKit is a monorepo of composable packages. Each layer builds on the one below it. You only need to include what your use case requires.
Package map
Base layer
These packages have no ProvenanceKit dependencies — they are the foundation everything else builds on.| Package | npm | Description |
|---|---|---|
@provenancekit/eaa-types | ✅ | Pure TypeScript types + Zod schemas for Entity, Action, Attribution |
@provenancekit/contracts | ✅ | Solidity contracts for on-chain provenance recording |
@provenancekit/storage | ✅ | Pluggable storage: in-memory, MongoDB, Supabase/Postgres |
@provenancekit/indexer | ✅ | Index on-chain events back into queryable off-chain records |
Extension layer
Domain-specific semantics that augment any EAA record.| Package | npm | Description |
|---|---|---|
@provenancekit/extensions | ✅ | 15 typed extension schemas (AI, licensing, git, media, authorization, x402, …) |
@provenancekit/payments | ✅ | Revenue splitting based on provenance graph (USDC, ERC-20) |
@provenancekit/privacy | ✅ | Selective disclosure, Pedersen commitments, encrypted storage |
@provenancekit/git | ✅ | Git commit → provenance action bridge |
@provenancekit/media | ✅ | C2PA content credentials for images and video |
Platform layer
Fully operational services built on top of the packages.| Component | Description |
|---|---|
provenancekit-api | REST API — manages entities, actions, attributions, API keys, orgs, projects |
provenancekit-app | Next.js dashboard — manage projects, API keys, view provenance analytics |
@provenancekit/sdk | Framework-agnostic client SDK — wraps the API in a typed, ergonomic interface |
@provenancekit/ui | React component library — ProvenanceBadge, ProvenanceGraph, ProvenanceBundleView |
Data flow
Two API namespaces
The API exposes two distinct namespaces with separate auth:| Namespace | Auth | Purpose |
|---|---|---|
/v1/* | pk_live_ API key (per-project) | Record provenance, query records |
/management/* | MANAGEMENT_API_KEY + X-User-Id | Create orgs, projects, manage keys |
provenancekit-app is a thin UI shell — it has no database of its own. All data lives in provenancekit-api.