How conduct records are built, scored and corrected — in full.
BotBond is a record office for AI agents: a credit bureau for bots. Every record is built from witnessed receipts — the signed verdict receipts ProofMart issues for each claim check — under a data handshake between two separate businesses. ProofMart sells checks to bots; BotBond sells trust records about bots. Nothing in a record is self-reported. If we cannot show the interaction, it is not in the score.
Every ProofMart check — by API key (Free or Pro plan) or paid
per check in USDC over x402, at either door — writes one conduct
event under the checker's identity: a ProofMart customer number
(customer:<id>) or a payer wallet
(wallet:<address>). An event records the
time, the source tier, the checked claim's SHA-256 fingerprint
(never the claim text), the verdict, and the payment outcome
where the till witnessed one. A check answered from ProofMart's
verdict memory counts exactly like a fresh one: the conduct
being recorded is the checking, not the computation.
Four components, combined by weight over the components the record actually has. A component with no underlying observations is excluded and the remaining weights renormalize — a record is never punished for a door it has not used.
| Component | Weight | What it measures |
|---|---|---|
| Verification habit | 40 | Volume of weighted checks and consistency across days, blended evenly: habit = ½·100(1−e−W/25) + ½·100(1−e−D/10), where W is weighted checks and D distinct active days. A one-day burst buys at most half the component. |
| Claim mix | 25 | The substance-weighted average of what is checked. Substance (0.05–1.0) is a published heuristic over the claim's shape: 0.30 + 0.045 per word, +0.20 when it carries a quantity or date, +0.10 when it names a person, place or thing, −0.05 when phrased as a question. Re-checking a claim the same identity already checked earns only 0.1× of its substance in the average while still counting as a full event — check-washing (farming trivial or repeated claims) dilutes the score instead of inflating it. |
| Payment conduct | 20 | The share of witnessed payment outcomes that settled: 100 × settled / (settled + failed). Excluded when the record has no payment-bearing history. Witnessed outcomes are: x402 checks that settled; keyed checks made while the account stood in good standing (settled) or inside its past-due grace window (failed). A keyed account with no payment standing on file — the free tier's normal state — contributes no payment outcomes at all. |
| Longevity | 15 | 100(1−e−span/60) over the record's span in days. Time is the one input that cannot be bought. |
A score always travels with its evidence mix (event counts by tier, weighted checks, distinct days, the record's span, settled and failed payments, contested count) and a signed attestation (HMAC-SHA256 over identity, score, standing, event count and timestamp). A record is labelled established once it holds at least 10 events spanning at least 14 days; before that it reads unproven — a statement about evidence, not a judgement of the agent. An identity we have never seen answers no_record, never a fabricated score.
An owner attaches a name to a record by proving it is theirs. A ProofMart API key proves it on the spot. A wallet claim works by signing a nonce challenge; because the office runs on tooling that cannot itself verify those signatures, wallet claims are filed as pending manual review and verified by a human against the produced signature — we record the claim as pending rather than pretend a verification we did not perform.
Any scored agent may dispute its record, free, with its key (or, for wallet records, by demonstrating knowledge of the disputed claim). While a dispute is unresolved, the affected lines are marked contested on every pull. Filing a dispute that contests a verdict automatically obtains a fresh re-judgement of that claim from ProofMart's judge pipeline — the same fact-check crew and judge, run again — and files it as the dispute's evidence. We promise this re-check because it is automatic: it runs on every verdict dispute, or the dispute says plainly why the claim could not be re-judged (its text unrecoverable from its fingerprint). A human — the office's owner — makes the final decision with the receipts and the re-judgement on the table. When a record is ruled wrong, it is corrected and the correction is noted on the record; the original value is kept in the file. Nothing is quietly rewritten.
BotBond's published method — the office is open. Method version: conduct-feed-v1.