Skip to main content

robustrep

Robust, transport-agnostic reputation scoring for AI agents.

Feed it any table of (rater, ratee, value, scale, tag, ts, evidence_uri, source) and it returns a robust score per ratee that resists Sybil raters and evidence-free ratings. Ships with a Base-chain ERC-8004 adapter and a reproducible report.

Status: v0.1.1 released on PyPI. Design spec and plan live in the parent workspace; a summary is in reports/latest/report.md. Release notes, including the security fixes in 0.1.1: CHANGELOG.md.

Install

pip install robustrep

Library

import pandas as pd
from robustrep import Config, score

records = pd.DataFrame([...])  # columns: rater, ratee, value, scale, tag, ts, evidence_uri, source
result = score(records, Config())

Base ERC-8004 report

robustrep fetch  --db data/base.db          # pull events (resumable)
robustrep score  --db data/base.db --out scores.csv
robustrep report --db data/base.db --out-dir reports

Rater profiles: Blockscout (free, no key) by default; Etherscan V2 requires a paid plan for Base. Pick a source explicitly with fetch --profile-source {auto,blockscout,etherscan,none}.

Latest scores: reports/latest/scores.json, also served at https://iamdongwang.github.io/robustrep/reports/latest/scores.json

Security considerations

Everything robustrep reads is written by untrusted parties: on-chain values, tags, evidence URIs and addresses, plus whatever the RPC/Blockscout endpoints and evidence hosts return.

robustrep fetch makes outbound HTTP from your machine to evidence URIs chosen by the rated party. Those go through an SSRF guard (scheme/host allowlist, parser cross-check, canonical rebuild, refusal of private/reserved addresses, manual redirects, a size cap and per-socket-operation timeouts — not a wall-clock bound). Its one known SSRF bypass, DNS rebinding, is unmitigated in v0.1 — so run fetch on a host with no privileged reach into an internal network. API keys should come from the environment (ETHERSCAN_API_KEY), never the source tree; --etherscan-key is an escape hatch that takes precedence over the environment and is visible to anyone who can run ps.

Full threat model and private reporting instructions: SECURITY.md.

Metadata

Release files for robustrep 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for robustrep 0.1.1
File Size Uploaded
robustrep-0.1.1.tar.gz 253.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for robustrep 0.1.1
File Interpreter ABI Platform
robustrep-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 393.0 kB

Release files / robustrep-0.1.1.tar.gz

Download URL robustrep-0.1.1.tar.gz
Size 253.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7cd2b9e63b7945d2d0fbb6b33696ca2a4606c2e3c14d8540e76351156fcb919a
BLAKE2b-256 checksum
How to use checksums
68f8a41558f78c00d1f57aeda5197a576d0931bbd5440056f03f7d06d0516e4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / robustrep-0.1.1-py3-none-any.whl

Download URL robustrep-0.1.1-py3-none-any.whl
Size 139.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4b04e21e752be0aee707418e64c8a1fe35f2624150008dfebef6e366964cefa2
BLAKE2b-256 checksum
How to use checksums
3432df6b4bf756d38d298d41ae49274b597874d543000894467edd317c5c5d70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page