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
- Save a policy on your plan token (
PUT /v1/policy). - Check before paying:
POST /v1/policy/check(or MCPbotsrated_policy_check) with host + quote. - Get pass / warn / block with receipt links; missing facts are never a pass.
- Your client enforces it. We don’t stop or send payments.
Day-one rule conditions (planned)
| Condition | Example use |
|---|---|
payto_not_observed | Block or warn on a payTo our checks never recorded for the host (aware of services that rotate addresses) |
payto_changed_within | Warn if the payTo changed in the last N hours (for example 48 h) |
price_above_observed / listing | Warn or block when the quote is above what we observed, or above the listing |
max_amount_atomic | Your own spend cap per payment |
data_stale / no_valid_402 | Warn or block when our data is older than 24 h or the route stopped answering with a valid 402 |
mcp_tools_changed / hash pin | Warn when an MCP server's tool list changed; block if a hash you pinned drifts |
host / payTo allow and deny lists | Your private lists, applied first |
test_buy_failed_recent | Warn, 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.