solmate-reputation
Portable 5-dimension reputation scoring with time-based decay and Hedera HCS anchoring. Built for Web3 social apps.
Extracted from Sol Mate Trust API. No ORM or framework dependencies — bring your own storage.
Install
pip install solmate-reputation
Usage
from solmate_reputation import ReputationDimensions, ReputationEngine, EventType, HCSAnchor, apply_decay
# Scoring
engine = ReputationEngine()
score = ReputationDimensions() # starts at 50/100 per dimension
score = engine.apply_event(score, EventType.MEETUP_COMPLETED)
# reliability +5, meetup_completion +5, response_rate +2
score = engine.apply_event(score, EventType.NO_SHOW)
# reliability -15, meetup_completion -10
print(score.composite) # 0-100 weighted composite
# Time decay
from datetime import datetime, timedelta
last_active = datetime.utcnow() - timedelta(days=14)
score = apply_decay(score, last_active)
# -2pt on reliability/response_rate/meetup_completion (2 weeks)
# HCS anchoring (optional — no-ops if not configured)
hcs = HCSAnchor(topic_id="0.0.1234567")
hcs.anchor_reputation_event(
user_id="user-123",
event_type="meetup_completed",
dimension_deltas={"reliability": 5, "meetup_completion": 5},
composite_before=60.0,
composite_after=63.2,
)
Event Types
| Event | reliability | safety | response_rate | meetup_completion | consent |
|---|---|---|---|---|---|
MEETUP_COMPLETED |
+5 | — | +2 | +5 | — |
NO_SHOW |
-15 | — | — | -10 | — |
HARASSMENT_REPORT |
— | -20 | — | — | -10 |
STAKE_SLASHED |
-20 | -10 | — | — | — |
STAKE_REFUNDED |
+3 | — | — | +3 | — |
CONSENT_CONFIRMED |
— | — | — | — | +5 |
Composite Score
composite = reliability × 0.30 + safety × 0.30 + response_rate × 0.15
+ meetup_completion × 0.15 + consent × 0.10
Decay
Decay applies -1pt/week to reliability, response_rate, meetup_completion for inactive users. Floor at 10.
from solmate_reputation import bulk_decay
def save_score(user_id, score):
db.update(user_id, score)
bulk_decay(
users=[(u.id, u.score, u.last_active) for u in db.query(...)],
on_update=save_score,
days_inactive_threshold=7,
)
HCS Anchoring
Set environment variables or pass directly:
HEDERA_ACCOUNT_ID=0.0.9876
HEDERA_PRIVATE_KEY=your-ed25519-hex
HEDERA_TOPIC_ID=0.0.1234567
HEDERA_NETWORK=testnet # or mainnet
HCSAnchor no-ops gracefully when not configured.
License
MIT — extracted from Sol Mate Trust API. Built for EasyA × Consensus Miami 2026.
Metadata
Release files for solmate-reputation 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 | |
|---|---|---|---|---|
| solmate_reputation-0.1.0.tar.gz | 7.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| solmate_reputation-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.8 kB
Release files / solmate_reputation-0.1.0.tar.gz
| Download URL | solmate_reputation-0.1.0.tar.gz |
|---|---|
| Size | 7.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fee5f3da629b2c4a6b6e1deb7d83baa476e9e8ddbab8c273f4b566aa39f26cac
|
|
BLAKE2b-256 checksum How to use checksums |
2298e6c49c84133270e12ede16d7ce336266a7105f2d3c01f256b4ba83d12be4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / solmate_reputation-0.1.0-py3-none-any.whl
| Download URL | solmate_reputation-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8c5fa6c637ec5e00abfd10fdab2e5653dd4de8177144f488d44345fb75856571
|
|
BLAKE2b-256 checksum How to use checksums |
219c5fea29f84d4b12a6c65c32c62b42fdd309a73d16d69db2b9e25a29b87697
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Security for solmate-reputation 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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.