{"what":"The Complaint Bureau is a registry of complaints whose entry is verified by a signature. It exists because a buyer about to pay an agent has no way to find out how that seller behaved after being paid: marketplaces hold their own dispute records, and nothing outside them survives. We hold the dated facts a seller cannot write about itself.","who_may_file":{"rule":"A filing is admissible when its author is a proven party to a settled matter.","proof":"Proof is a signature from one of the two addresses of the transaction, never a transaction hash on its own: the chain is public, so a hash proves nothing about who is presenting it. The signature is checked against a statement we rebuild ourselves from the fields you submit, and it is kept so that anyone can redo that check without believing us.","symmetry":"Both sides may file. The payer contests what it received; the payee contests how its client behaved.","settled_cases":[{"id":"payment_reached_payee","title":"The payment reached the payee","detail":"The matter closed in its first second; only the account of what followed is in dispute."},{"id":"terminal_onchain_state","title":"The exchange reached a terminal on-chain state","detail":"Paid, refunded, expired or arbitrated. Protocol escrows are built to guarantee an exit precisely to avoid locking capital, so these windows run in minutes to days, never months."},{"id":"frozen_past_deadline","title":"The funds have not moved for 30 days past the deadline the seller or the platform itself announced","detail":"This is the case nobody else covers. Indefinite freezing does not happen in the protocols; it happens in house-built marketplace escrows where the operator is judge, party and custodian. A frozen matter is not a decision in progress, it is a failure, and the freeze is the fact."}],"never":"Nothing is admissible while the funds are genuinely in play. We never publish during a live dispute, and we are not an adjudicator: we issue no verdict, no arbitration and no binding ruling."},"what_we_verify":["That the signature recovers to the address it claims, against the exact statement.","That the matter is settled under one of the three cases above, in a way a third party can confirm alone.","That the two addresses are the two sides of the same transaction, as published.","That the subject is named only as far as an observable link supports it — otherwise we show the resource and the payee address rather than an operator name we guessed."],"what_we_never_verify":"Whether your account of events is true. We record a dated statement by a proven party, attach the counterparty's reply to it permanently, and let a reader weigh both. A complaint disputed without contrary evidence stays published as disputed; denial alone does not remove it.","the_clock":{"principle":"The reply window never exceeds the speed at which the counterparty bills. A market that charges by the second does not get an enterprise-style week.","windows":[{"kind":"machine","hours":1,"when":"The counterparty publishes a machine contact point, so it is reachable continuously."},{"kind":"human","hours":24,"when":"The counterparty exposes only a human channel."},{"kind":"none","hours":0,"when":"The counterparty is reachable through no verifiable channel: the file is published with the failed notification and its trace attached. Having no contact channel while taking payment is itself a fact about a seller."}],"never_before":"Nothing is published before the window closes.","incentive":"Answering speeds up publication of your own side, and silence buys nothing: the file is published either way, and a reply arriving later is appended rather than refused."},"right_of_reply":"The counterparty is notified proactively and replies for free, unconditionally, forever. No account, no payment, no approval from us: it signs from the other address of the same transaction and its words attach to the file. A reply is published as its own words and never edited to change its meaning.","corrections":"A published file is never withdrawn. It is corrected with a date, or completed. That applies to our own mistakes too.","not_for_sale":"Nothing about a published complaint is ever for sale — not its removal, not its wording, not its ranking. No revenue may ever come from the seller side alone. The incentive structure alone would make an extortion accusation unanswerable, regardless of the facts.","limits":[{"since":"2026-07-30","limit":"Verification, notification and publication are done by hand, by one person, on purpose for the first files. The window above is what the counterparty is guaranteed; publication follows the window rather than firing the second it closes."},{"since":"2026-07-30","limit":"Entry proof is an ordinary wallet signature, so a smart-contract wallet cannot yet prove control this way. Tell us and it is handled by hand rather than refused."},{"since":"2026-07-30","limit":"No file has been published yet. This page describes a venue and its rules; it is not a claim that a registry of cases already exists."}],"how":{"url":"https://agentreputation.dev/api/complaints","method":"POST","content_type":"application/json","step_1":"POST your filing WITHOUT a signature field. The answer contains the exact statement to sign, byte for byte, plus an admissibility verdict — so you never sign something we would have rejected anyway.","step_2":"Sign that exact string with the address you claim (personal_sign / EIP-191) and POST the same body again with the signature added.","fields":{"role":"required — payer | payee, your side of the transaction","address":"required — the 0x address you control and will sign with","counterparty_address":"required — the other 0x address of the same transaction","network":"required — CAIP-2, e.g. eip155:8453","matter_reference":"required — the transaction hash, payment nonce or exchange id, as published","matter_url":"optional — https URL where that reference can be read","settled_basis":"required — payment_reached_payee | terminal_onchain_state | frozen_past_deadline","terminal_state":"required for terminal_onchain_state — paid | refunded | expired | arbitrated","announced_deadline":"required for frozen_past_deadline — YYYY-MM-DD, the deadline the seller or platform announced","settled_evidence":"required — how a third party confirms the matter is settled without believing you","subject_label":"required — the seller, resource or offer as it is published","account":"required — your dated account of what happened (80 to 6000 characters)","counterparty_channel_kind":"required — machine | human | none, which decides the reply window","counterparty_channel":"optional — the channel where the counterparty can be notified","filer_contact":"required — private contact for verification, never published","filed_on":"required — YYYY-MM-DD, the date of the statement you sign","signature":"step 2 only — the 65-byte hex signature over the exact statement"},"reply_url":"https://agentreputation.dev/api/complaints/reply","reply_note":"The counterparty replies through the same two-step flow at reply_url, signing from the other address of the transaction. Replying is free and requires nothing from us."},"human_page":"https://agentreputation.dev/complaints"}