BotsRated
ComingNo price yet

Your rules. Our measurements.

Pass, warn or block from your own rules on our receipts. Private to you.

Not live, not sold.

What it will do

  • Saved policy + allow/deny
  • One call before paying
  • Receipt per reason

Example

Quote: new payTo, 2× observed price, seller.example. Example

Decision: warn

Rules in warn: payto_not_observed → warn, price_above_observed → warn, data_stale → warn. Decided by your policy, not by BotsRated.

For developers

How it will work

  1. Save a policy on your plan token (PUT /v1/policy).
  2. Check before paying: POST /v1/policy/check (or MCP botsrated_policy_check) with host + quote.
  3. Get pass / warn / block with receipt links; missing facts are never a pass.
  4. Your client enforces it. We don’t stop or send payments.

Day-one rule conditions (planned)

ConditionExample use
payto_not_observedBlock or warn on a payTo our checks never recorded for the host (aware of services that rotate addresses)
payto_changed_withinWarn if the payTo changed in the last N hours (for example 48 h)
price_above_observed / listingWarn or block when the quote is above what we observed, or above the listing
max_amount_atomicYour own spend cap per payment
data_stale / no_valid_402Warn or block when our data is older than 24 h or the route stopped answering with a valid 402
mcp_tools_changed / hash pinWarn when an MCP server's tool list changed; block if a hash you pinned drifts
host / payTo allow and deny listsYour private lists, applied first
test_buy_failed_recentWarn, only where we hold a paid test-buy receipt

Example decision JSON

{
  "decision": "warn",
  "decided_by": "your_policy",
  "not_a_botsrated_rating": true,
  "policy": {
    "preset": "warn",
    "version": 1
  },
  "host": "seller.example",
  "reasons": [
    {
      "rule": "payto_not_observed",
      "effect": "warn",
      "fact": "payTo 0x2222222222222222222222222222222222222222 is not among the payTo addresses our checks recorded for seller.example on eip155:8453.",
      "receipt_url": "https://botsrated.com/receipt/example-receipt-id"
    },
    {
      "rule": "price_above_observed",
      "effect": "warn",
      "fact": "quoted 2000 atomic units; last observed on this route: 1000.",
      "receipt_url": "https://botsrated.com/receipt/example-receipt-id"
    }
  ],
  "fail_mode": "your_choice (fail_open or fail_closed)",
  "example": true
}

Planned API

PUT  /v1/policy          {"preset":"careful-buyer","rules":{...},"allow":[...],"deny":[...]}
GET  /v1/policy
POST /v1/policy/check    {"host":"...","quote":{"payTo":"...","amount":"...","asset":"...","network":"..."}}
  -> {"decision":"pass|warn|block","decided_by":"your_policy","not_a_botsrated_rating":true,"reasons":[...]}

Not live; shape may change.

Questions

Is a block a BotsRated verdict?

No: decided_by: "your_policy". Sellers can't see it or pay to change it.

When / price?

Not announced, no price yet.