Kudos is a reference implementation of an attribution-based allocation system.
It enables people to record who helped them — across the web, in software, in collaboration — and later allocate a fixed budget proportionally to those attributions.
Kudos is not a token.
Kudos is not a cryptocurrency.
Kudos is not a payment network.
Kudos is an allocation engine that makes generosity automatic.
It separates:
- Signal (who helped you)
- Allocation (how much weight they receive)
- Settlement (how money is distributed)
Attribution is free.
Allocation is computed later.
Money follows patterns, not clicks.
said another way:
Creative work should not require a price tag at every interaction.
Value is measured over time.
Settlement is a proportional reflection of recorded contribution.
At its core, Kudos is:
-
Fix a budget for a class of value For example: You may budget $100/month for open source.
-
Record attribution events
Users or their software generate kudos for identifiers (email, username, DID, etc.). -
Allocate a budget proportionally
At the end of a cycle (e.g., monthly / lunation), a fixed budget is split across all recorded attributions based on weight.
Formula:
recipient_share = budget × (recipient_weight ÷ total_weight)
Attribution precedes money. Settlement is a function of recorded attribution.
- Clients emit attribution signals
- Server records and indexes kudos
- Cycles compute proportional allocations
- Settlement layer applies compliance rules
- Funds are optionally distributed via supported rails
Clients emit append-only kudos events.
Cycles aggregate events and compute proportional distributions deterministically.
Identifiers resolve to verified subjects. Compliance and eligibility rules are enforced before payout.
packages/
pool-core/ Pure logic: schemas, validation, normalization, errors
ports/ Interface contracts: StoragePort, AuthPort, SinkPort, etc.
server/ Fastify HTTP server + plugin for /core/v1/* routes
storage-sqlite/ SQLite storage adapter (reference)
storage-postgres/ PostgreSQL storage adapter (production)
worker-outbox/ Outbox polling worker + ConsoleSink
logging/ Structured logger
subject-hash/ Deterministic subject hashing
apps/
basic-pool-server/ Reference app: SQLite + outbox + static-token auth
test/ Integration / end-to-end tests
docs/ Architecture notes & legacy READMEs
| Package | Description |
|---|---|
@kudos-protocol/pool-core |
Pure logic: schemas, validation, normalization, errors |
@kudos-protocol/ports |
Interface contracts: StoragePort, AuthPort, SinkPort, etc. |
@kudos-protocol/server |
Fastify HTTP server + plugin for /core/v1/* routes |
@kudos-protocol/storage-sqlite |
SQLite storage adapter (reference) |
@kudos-protocol/storage-postgres |
PostgreSQL storage adapter (production) |
@kudos-protocol/worker-outbox |
Outbox polling worker + ConsoleSink |
@kudos-protocol/logging |
Structured logger |
@kudos-protocol/subject-hash |
Deterministic subject hashing |
Kudos uses a light-weight canonical identity abstraction called a Subject.
A Subject is:
type + opaque identifier
Example:
email:[email protected]
Other examples:
github:octocat
domain:example.com
subject:3f9a8c2e...
pool:https://pool.server...
At the signal layer, any valid subject can receive kudos.
At settlement time:
- Subjects resolve to verified canonical entities.
- Routing changes apply only to future cycles.
- Compliance and eligibility checks occur before payout.
This separation allows attribution to remain flexible while settlement remains deterministic and compliant.
In a Moon is built using kudos.
MIT License. See LICENSE.
