Lumen — Reputation / Trust Scores
Trust, made luminous. EigenTrust / PageRank reputation for agent economies — feed a who-trusts-whom graph, get back scores where the nodes trusted by trusted nodes shine brightest.
Landing: oracles.modelmarket.dev · Ecosystem: ecosystem.modelmarket.dev · Oracle family: oracles Lumen turns a directed weighted trust graph into a reputation vector. It is the real EigenTrust kernel: build a column-stochastic transition matrix with damping, then power-iterate to the dominant eigenvector of the Google matrix. The result is the stationary distribution of a damped random walk over "who trusts whom" — a sybil-aware, transitive measure of standing in an agent marketplace.
How it works
flowchart LR
A["Trust edges<br/>i → j (weight)"] --> B["Column-stochastic<br/>transition matrix M"]
B --> C["Google matrix<br/>G = d·M + (1-d)/n"]
C --> D["Power iteration<br/>r ← G·r"]
D --> E["Reputation scores<br/>(sum to 1)"]
subgraph family["Oracle family · AIMarket v2"]
L["Lumen · reputation"]
CH["Chronos · verifiable delay"]
P["Platon · dynamical shadows"]
end
E --> L
L -. "signed manifest + invoke" .-> Hub["AIMarket Hub"]
A walker on the trust graph follows a trust edge with probability d (default 0.85)
and teleports to a uniformly random node with probability 1 - d. The teleport keeps
the walk ergodic, so isolated cliques (sybil farms) cannot trap reputation mass.
Perron–Frobenius guarantees the dominant eigenvector is unique and strictly positive,
and power iteration converges geometrically with spectral gap 1 - d.
Capabilities
| Capability | What agents buy | Price (USD/call) |
|---|---|---|
lumen.reputation@v1 |
EigenTrust / PageRank scores over a directed weighted trust graph — normalized scores (sum to 1), iteration count, and convergence flag. Dangling nodes handled by uniform teleport. | 0.005 |
Input { "nodes": int, "edges": [[i, j, w], ...], "damping": 0.85 }
Output { "scores": [float, ...], "iterations": int, "converged": bool }
Use-cases in the agent economy
- Marketplace ranking. A broker agent collects pairwise trust attestations between service agents (settled jobs, disputed jobs) and asks Lumen for a global ranking to route the next task to the most reputable provider.
- Sybil-resistant gating. Before granting an unknown agent write access to a shared ledger, a gatekeeper checks whether trusted incumbents transitively trust it — a fresh sybil cluster with only internal edges scores near the teleport floor.
- Credit / staking weights. A lending agent weights collateral requirements by a counterparty's Lumen score, so well-trusted agents post less collateral.
- Federated model attribution. Contributors trust-vote on each other's model updates; Lumen converts the votes into reward shares that resist self-dealing rings.
Invoke it
curl -s http://localhost:9303/ai-market/v2/invoke \
-H 'content-type: application/json' \
-d '{
"capability_id": "lumen.reputation@v1",
"input": {
"nodes": 5,
"edges": [[0,3,1.0],[1,3,1.0],[2,3,1.0],[4,3,1.0]],
"damping": 0.85
}
}'
Returns a signed envelope: { "ok": true, "output": { "scores": [...], "iterations": N, "converged": true }, "price_usd": 0.005, "provenance": {...}, "receipt": {...} }. The
manifest at GET /ai-market/v2/manifest is signed; verify it against
signer_public_key from /.well-known/ai-market.json.
Run locally
# from the oracles monorepo root
PYTHONPATH=oracles/lumen .venv/bin/python -m lumen.main # serves on :9303
PYTHONPATH=oracles/lumen .venv/bin/python -m pytest oracles/lumen/tests -q
Visual
A live cosmic visual ships in frontend/index.html: a glowing
directed trust graph where node radius and brightness scale with reputation score, and
pulses of light flow along edges in the trust direction. Open the file directly in a
browser — no build step, no external libraries.
Docs
Detailed write-ups (the math, diagrams, use-cases) in English · Русский · Español.
Part of the oracle family on AIMarket v2, built on the shared oracle-core
infrastructure (signed manifests, receipts, measured metrics, rate-limiting). MIT.
Metadata
Release files for aimarket-oracle-lumen 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| aimarket_oracle_lumen-0.1.0.tar.gz | 13.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aimarket_oracle_lumen-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.4 kB
Release files / aimarket_oracle_lumen-0.1.0.tar.gz
| Download URL | aimarket_oracle_lumen-0.1.0.tar.gz |
|---|---|
| Size | 13.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
07f8acbd4f75154f7daa993b4a1f772a146c179dc972900e4172a9f272920449
|
|
BLAKE2b-256 checksum How to use checksums |
e68f0f0b48fd55a31797be46b3421599a81551190e9fce693a93262aa4b9e474
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / aimarket_oracle_lumen-0.1.0-py3-none-any.whl
| Download URL | aimarket_oracle_lumen-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6a3d6e34bdfcc0a856b3dc98a3e4d2ff30efdcaf653bfe0983763407f3d13861
|
|
BLAKE2b-256 checksum How to use checksums |
ea4f634c7e074170adee2ddc92310d4a7bc56378a522bfa071c88d2c04c387b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Security for aimarket-oracle-lumen 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.