Skip to content

Repository files navigation

image

Kudos

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)

The Key Insight

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.


The Model

At its core, Kudos is:

  1. Fix a budget for a class of value For example: You may budget $100/month for open source.

  2. Record attribution events
    Users or their software generate kudos for identifiers (email, username, DID, etc.).

  3. 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.


High-level system:

  • 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

Architecture

Signal Layer

Clients emit append-only kudos events.

Allocation Layer

Cycles aggregate events and compute proportional distributions deterministically.

Settlement Layer

Identifiers resolve to verified subjects. Compliance and eligibility rules are enforced before payout.


Repo Structure

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

Packages

PackageDescription
@kudos-protocol/pool-corePure logic: schemas, validation, normalization, errors
@kudos-protocol/portsInterface contracts: StoragePort, AuthPort, SinkPort, etc.
@kudos-protocol/serverFastify HTTP server + plugin for /core/v1/* routes
@kudos-protocol/storage-sqliteSQLite storage adapter (reference)
@kudos-protocol/storage-postgresPostgreSQL storage adapter (production)
@kudos-protocol/worker-outboxOutbox polling worker + ConsoleSink
@kudos-protocol/loggingStructured logger
@kudos-protocol/subject-hashDeterministic subject hashing

Identity & Subjects

Kudos uses a light-weight canonical identity abstraction called a Subject.

A Subject is:

type + opaque identifier

Example:

email:matt@example.com

Other examples:

github:octocatdomain: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.


Usage

In a Moon is built using kudos.

License

MIT License. See LICENSE.

About

Kudos: the protocol powering the Web's attribution economy

Topics

Resources

Code of conduct

Contributing

Stars

7 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages