{"versions":{"api":"1.0.0","model":"2.0.0","analyzer":4,"meaning":"These version different things and move independently. `api` is the HTTP contract and matches the /v1 path prefix — a breaking change to a response shape means /v2. `model` is how a score is computed; it is already 2.x because the model was rewritten around ERC-8004 while the HTTP contract stayed put, which is exactly the situation separate numbers exist for. `analyzer` is the bytecode analyser, an integer rather than semver because it is a cache key: bumping it invalidates stored analyses. Quote `model` when reproducing a score."},"modelVersion":"2.0.0","approach":"Transparent weighted rules over ERC-8004 registry data plus on-chain behaviour. No machine learning, so every score decomposes into named components that a calling agent can inspect and disagree with.","erc8004":{"role":"Judgment layer. The registries are the substrate; the filtering and scoring are the product.","whyFilteringIsRequired":"The deployed Reputation Registry cannot be read at face value. A multi-chain survey through May 2026 found 41.4% / 96.3% / 92.6% of feedback records on Ethereum / BSC / Base to be sybil-flagged, and after removal 86.8% of affected agents on Base retained no valid feedback at all. The registry's only anti-self-review defence rejects the agent owner's own address, which is bypassed by funding a fresh wallet.","identityLiveness":"ERC-8004 defines no liveness predicate, so a reserved placeholder and a working agent look identical on-chain. Only 3% / 4% / 15% of agents on Ethereum / BSC / Base expose both a compliant registration file and a live service endpoint. Agents are classified into five quality categories before scoring.","tagHandling":"All feedback shares one int128 `value` field with no standard scale per tag. Booleans, 0-5 ratings, 0-100 ratings and open metrics coexist, sometimes within a single tag. Aggregation is therefore always per-tag, and any tag whose values disagree about their scale is reported without a mean.","sybilMethod":"Reviewers are clustered by first native-token funder. Influence is capped at one effective vote per cluster, so manipulation cost scales with independent funding sources rather than with wallet count.","crossChain":"Reputation is chain-scoped. Scores are statistically uncorrelated across chains, so cross-chain claims in a registration file are reported as unverified rather than merged."},"scale":"0-100, higher is safer.","riskBands":[{"band":"minimal","range":"80-100"},{"band":"low","range":"65-79"},{"band":"moderate","range":"45-64"},{"band":"elevated","range":"25-44"},{"band":"severe","range":"0-24"}],"recommendations":{"proceed":"Score >= 70, no high-severity flags, adequate confidence.","proceed_with_caution":"Score 45-69, or one high-severity flag, or confidence below 0.4.","hold":"Score 25-44, or two or more high-severity flags. Seek out-of-band confirmation.","block":"Score below 25, or any critical flag such as a blocklist hit."},"rules":[{"id":"agent_identity_quality","label":"ERC-8004 identity quality","weight":22},{"id":"agent_reputation","label":"ERC-8004 peer reputation (filtered)","weight":20},{"id":"address_age","label":"Address age","weight":16},{"id":"activity_volume","label":"Transaction volume","weight":12},{"id":"counterparty_diversity","label":"Counterparty diversity","weight":16},{"id":"failure_rate","label":"Transaction failure rate","weight":12},{"id":"fund_flow_balance","label":"Fund-flow reciprocity","weight":10},{"id":"recency","label":"Activity recency","weight":8},{"id":"contract_safety","label":"Contract static analysis","weight":20}],"weightNormalisation":"Rules that cannot be evaluated for a given address are marked inapplicable and their weight is redistributed across the rest. Missing data lowers confidence rather than the score.","hardOverrides":["A blocklist match on the queried address, the agent owner, or the agent payout wallet caps the score at 3 and forces recommendation=block.","A registered agent with no URI or an unresolvable URI caps at 40; a non-compliant registration file caps at 55; a valid file with no declared service caps at 70. Healthy wallet activity must not average a placeholder identity into a low-risk band.","Reputation that leaves no baseline after sybil filtering caps at 45; reputation that is at least 80% sybil-flagged caps at 55. Absence of honest evidence is not endorsement.","Three or more negative attestations outweighing positives caps the score at 35.","A contract query against an address with no bytecode caps the score at 40."],"confidence":"Reported separately from the score. Derived from transaction volume, address age, number of distinct attesters and whether contract analysis ran. Treat a high score with low confidence as unproven, not safe.","limitations":["On-chain history cannot observe off-chain agreements, so non-delivery is only visible through peer attestations.","Static bytecode analysis detects the presence of privileged functions, not whether they are guarded by sensible access control.","An upgradeable proxy can change behaviour after assessment; re-verify before large transfers.","Reputation systems have a cold-start problem. Low attestation counts mean the peer signal is weak, which is reflected in confidence.","Sybil clustering depends on funding-graph data. Providers without transfer history cannot supply it, and the signal is skipped rather than approximated.","For agents with many reviewers, funding provenance is sampled rather than exhaustively resolved; `reputation.sampled` reports when this happened and confidence is reduced.","An ERC-8004 registration file is self-published. A compliant file proves the operator can write JSON, not that the service behind the endpoint works."]}