api.craigmbrown.com/v1/services/agent.trust-badge
1.Catalog declaration
| Resource URL | https://api.craigmbrown.com/v1/services/agent.trust-badge |
| Source | cdp_bazaar |
| Declared method | POST |
| Network | eip155:8453 |
| Receiving address | 0x5e709929a4ab69ec3a8811d03417869059bc4eb9 |
| Declared price (base units) | 10000 |
| Catalog status | active |
| First seen / last seen | 2026-08-14 08:39 UTC / 2026-10-03 01:04 UTC |
| Catalog-reported calls / payers (30d) | 21 / 5 |
2.Probe history
| Probed at | Method | Verdict | HTTP | Latency | Reason |
|---|---|---|---|---|---|
| 2026-10-02 22:40 UTC | POST | pass | 402 | 39 ms | — |
| 2026-10-01 22:40 UTC | POST | pass | 402 | 47 ms | — |
| 2026-10-01 04:40 UTC | POST | pass | 402 | 432 ms | — |
| 2026-09-30 13:40 UTC | POST | pass | 402 | 411 ms | — |
| 2026-09-29 16:40 UTC | POST | pass | 402 | 2226 ms | — |
| 2026-09-28 22:40 UTC | POST | pass | 402 | 147 ms | — |
| 2026-09-28 04:40 UTC | POST | pass | 402 | 1175 ms | — |
| 2026-09-27 13:40 UTC | POST | fail | 503 | 42 ms | no_402HTTP 503 instead of 402 to an unpaid POST. |
| 2026-09-26 16:40 UTC | POST | fail | 503 | 81 ms | no_402HTTP 503 instead of 402 to an unpaid POST. |
| 2026-09-26 04:40 UTC | POST | fail | 503 | 194 ms | no_402HTTP 503 instead of 402 to an unpaid POST. |
| 2026-09-25 13:40 UTC | POST | pass | 402 | 432 ms | — |
| 2026-09-24 16:40 UTC | POST | pass | 402 | 185 ms | — |
| 2026-09-23 22:40 UTC | POST | fail | 503 | 113 ms | no_402HTTP 503 instead of 402 to an unpaid POST. |
| 2026-09-23 04:40 UTC | POST | pass | 402 | 61 ms | — |
| 2026-09-22 13:40 UTC | POST | pass | 402 | 158 ms | — |
| 2026-09-21 16:40 UTC | POST | pass | 402 | 254 ms | — |
| 2026-09-20 22:40 UTC | POST | pass | 402 | 107 ms | — |
| 2026-09-20 04:40 UTC | POST | pass | 402 | 106 ms | — |
| 2026-09-19 13:40 UTC | POST | pass | 402 | 66 ms | — |
| 2026-09-18 16:40 UTC | POST | pass | 402 | 42 ms | — |
| 2026-09-18 04:40 UTC | POST | pass | 402 | 142 ms | — |
| 2026-09-17 13:40 UTC | POST | fail | 503 | 149 ms | no_402HTTP 503 instead of 402 to an unpaid POST. |
| 2026-09-16 16:40 UTC | POST | pass | 402 | 836 ms | — |
| 2026-09-15 22:40 UTC | POST | fail | 503 | 68 ms | no_402HTTP 503 instead of 402 to an unpaid POST. |
| 2026-09-15 04:40 UTC | POST | fail | 503 | 190 ms | no_402HTTP 503 instead of 402 to an unpaid POST. |
| 2026-09-14 16:40 UTC | POST | pass | 402 | 243 ms | — |
| 2026-09-13 22:40 UTC | POST | fail | 503 | 64 ms | no_402HTTP 503 instead of 402 to an unpaid POST. |
| 2026-09-13 13:40 UTC | POST | fail | 503 | 145 ms | no_402HTTP 503 instead of 402 to an unpaid POST. |
| 2026-09-12 16:40 UTC | POST | pass | 402 | 45 ms | — |
| 2026-09-12 04:40 UTC | POST | fail | 503 | 32 ms | no_402HTTP 503 instead of 402 to an unpaid POST. |
3.L1 — real purchases
3 of 3 paid attempts settled on-chain, and 3 of those also returned a 2xx response (delivered). Each settled row carries its on-chain transaction hash, and that transaction is the evidence. On this page a receipt means the seller's own settlement receipt (PAYMENT-RESPONSE); a settled row can have none (see “tx from our index”). A settled row reads as nonce-bound when the on-chain re-read also matched the one-time signature nonce we generated for that purchase, and amount + payee when it matched amount, payee, asset and chain with no nonce on record — the binding shipped on 2026-09-04, so earlier rows carry the weaker evidence and keep their label rather than being demoted (methodology). settled is the transfer we confirmed on-chain; delivered is the response arriving. A settled row whose paid request answered 5xx counts as settled and not as delivered — definitions.
Terms in this table
settled (nonce-bound)- vet402 confirmed the USDC transfer on-chain, and the on-chain re-read also matched the one-time nonce vet402 signed for that purchase.
settled (amount + payee)- vet402 confirmed the USDC transfer on-chain; the on-chain re-read matched amount, payee, asset and chain; no nonce was on record (rows before 2026-09-04).
L2 match- the response had the fields the listing's output schema declares.
Whose side- the same words as the seller page: seller's side only after failures on two different days (UTC), marked “under re-check”; vet402's side; or not sorted (the rules).
| Attempted at | Result | HTTP | On-chain tx | Latency |
|---|---|---|---|---|
| 09-11 01:002026-09-11 01:00 UTC | settled (nonce-bound) | 200 | 0xbe0042cb…855a | 1317 ms |
| 10000 units (≈ $0.01 USDC) · L2 matchWhose side: no failure (delivered) | ||||
| 09-01 12:072026-09-01 12:07 UTC | settled (amount + payee) | 200 | 0x4351682e…41cc | 1094 ms |
| 10000 units (≈ $0.01 USDC) · L2 matchWhose side: no failure (delivered) | ||||
| 08-25 12:532026-08-25 12:53 UTC | settled (amount + payee) | 200 | 0xebc48f98…4237 | 1394 ms |
| 10000 units (≈ $0.01 USDC) · L2 matchWhose side: no failure (delivered) | ||||
Embed this record
Run this endpoint? Show the settle-through record vet402 measured — the badge reads 3/3 settled · 3 delivered and updates as the record grows. It carries the host it is about and the date it was last measured, so a saved copy cannot pass itself off as current. It states a measurement, not a rating.
[](https://vet402.com/observatory/e/85dc3959-066f-4ccb-b4b3-392366c19e6a)4.Catalog listing events
| Detected on | Event | Before | After |
|---|---|---|---|
| 2026-08-23 | relisted | {"status":"delisted"} | {"status":"active"} |
| 2026-08-18 | delisted | {"status":"active"} | {"status":"delisted"} |
unverified is not a failure; a fail is published only after two consecutive failing probes. Definitions: methodology.
5.Dispute this record
Think a measurement above is wrong? Say which probe or purchase and what you observed instead. One person reads it and replies. The record is never deleted on dispute: if it was wrong, the correction is published with the same weight; if it was right, it stands. Operators who control the receiving address can also sign a dispute via POST /api/v1/observatory/disputes (API reference), which re-measures through the normal publication gate.