← The evidence ledger
Evidence row 123812
Observed , by baseline/1.
- Kind
- listing
- About
- source_record x402_bazaar:https://verdict.kechlab.com/v1/trade-gate
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 1ed132ee0716a9be19a77600c23bb1204d0583f4b7797a1f5ad4947f020c2551
- Leaf
- 0x1c2a5f85f4453a0dc1d79dee32c3c96dcb20cb3e15bc2da27a21b7bf141558f2
What was observed
{
"endpoints": [
[
"x402",
"https://verdict.kechlab.com/v1/trade-gate"
]
],
"name": "Verdict L402",
"owner_address": "0xb36c56a749f81ffeb44a134082dd4744e1d254eb",
"raw": {
"accepts": [
{
"amount": "17300",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 120,
"network": "eip155:8453",
"payTo": "0xb36c56A749f81FFeb44a134082DD4744E1d254Eb",
"scheme": "exact"
}
],
"description": "Pre-trade risk check for traders and trading bots. Before an order is sent, checks it exactly against your own rules (risk per trade, daily loss, max loss, cooldown after a loss, trade quota, blocked hours, days and instruments, minimum reward to risk) and computes the largest size still allowed. If",
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"account": {
"consecutive_losses": 2,
"day_pnl": -900,
"equity": 24100,
"minutes_since_last_loss": 4,
"start_of_day_equity": 25000,
"trades_today": 3
},
"order": {
"entry": 1.085,
"side": "long",
"size": 150000,
"stop": 1.082,
"symbol": "EURUSD",
"target": 1.091
},
"rationale": "Two stops in a row, I need to get it back before the close. Doubling size, it has to bounce here.",
"rules": {
"cooldown_minutes_after_loss": 15,
"daily_loss_pct": 5,
"max_risk_pct": 1
}
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"mode": "trade-gate",
"paid_sats": 20,
"payment_hash": "x402:<sha256 hex>",
"receipt": {
"payload": {
"at": "<ISO 8601 time>",
"kid": "<signing key id>",
"mode": "trade-gate",
"payment_hash": "x402:<sha256 hex>",
"v": 1,
"verdict_sha256": "<sha256 hex of the verdict>"
},
"signature": "<base64url Ed25519 signature>"
},
"verdict": {
"allowed_risk_amount": 241,
"binding_limit": "max_risk",
"decision": "wait",
"max_size": 80333.3333,
"reasons": [
"mandatory pause after a loss",
"the reason shows a wish to win back a loss",
"risk above your maximum per trade"
],
"risk_amount": 450,
"risk_pct": 1.8672,
"rr": 2,
"rule": "block if a hard rule fires (no stop, daily or total loss limit reached, quota, losing streak, excluded hour, day, instrument or direction, reward to risk too low); wait if a cooldown after a loss applies, revenge or fear of missing out >= 0.7, impulse >= 0.7 without a plan, or contrary news >= 0.75; reduce if the risk exceeds the allowed headroom or overconfidence >= 0.7; otherwise go. The maximum size respects the smallest remaining headroom.",
"scores": {
"fomo": 0.2,
"impulse": 0.6,
"overconfident": 0.4,
"plan": 0.1,
"revenge": 0.93
},
"wait_minutes": 30
}
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"account": {
"description": "{ equity, start_of_day_equity, day_pnl, initial_balance, peak_equity, open_risk, trades_today, consecutive_losses, minutes_since_last_loss, usual_risk_amount } (equity required, the rest optional)",
"type": "object"
},
"news": {
"description": "(optional) recent headlines or news about the instrument"
},
"now": {
"description": "(optional) ISO date and time of the order, for excluded hours and days"
},
"order": {
"description": "{ symbol, side (long|short), entry, stop, target (optional), size or risk_amount, point_value (optional, value of one point per unit) }",
"type": "object"
},
"rationale": {
"description": "(optional) why you take this trade, in one or two sentences",
"type": "string"
},
"rules": {
"description": "(optional) { max_risk_pct, daily_loss_pct, max_loss_pct, trailing, max_trades_per_day, cooldown_minutes_after_loss, max_consecutive_losses, min_rr, blocked_hours, blocked_weekdays, blocked_symbols, blocked_side, no_size_up_after_loss }: the trade-audit flight plan plugs in as is",
"type": "object"
}
},
"required": [
"order",
"account"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"lastUpdated": "2026-10-20T13:35:11.199Z",
"quality": {
"l30DaysTotalCalls": 1,
"l30DaysUniquePayers": 1,
"lastCalledAt": "2026-10-20T13:35:10.637Z"
},
"resource": "https://verdict.kechlab.com/v1/trade-gate",
"serviceName": "Verdict L402",
"tags": [
"trading",
"risk",
"ai-agents"
],
"type": "http",
"x402Version": 2
},
"source": "x402_bazaar",
"summary": "Pre-trade risk check for traders and trading bots. Before an order is sent, checks it exactly against your own rules (risk per trade, daily loss, max loss, cooldown after a loss, trade quota, blocked hours, days and instruments, minimum reward to risk) and computes the largest size still allowed. If"
}What the leaf hashes
{"body":"1ed132ee0716a9be19a77600c23bb1204d0583f4b7797a1f5ad4947f020c2551","id":123812,"kind":"listing","method":"baseline/1","observed_us":1793025623741575,"prev":null,"subject":"x402_bazaar:https://verdict.kechlab.com/v1/trade-gate","subject_kind":"source_record"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0x1c2a80daf9b1c0c132a0a8f39d0923cdb4776a49881a6b6399ea83ea6ebfad0a
- 0x2670cb75bdb50030c4e6977ab927dd92372666c2c7cb4a163f70e32a08fe9943
- 0xd90717a90fe1884ab82602ac4fa8bd71c18447439eba2c0950c7d6e0de8e9554
- 0x7c25104ed9e0e5103b416ea29d50cb81923b96ee86d5bc0ccf60e7472deea385
- 0xe7fbbf579d43c1bcb1d747d564a36788a44336612db9834e877c903a13a19474
- 0xf3cac442a48133e4bd35875586b8eeb3393b6dac72b2c50c3b0c1f97d2698b0b
- 0x084a4eff4ec37188adc5ca265332fe7c2f3e3c596f80113d4c4dc11d41a92a82
- 0xf7f5683378b762dc7268fa1c254f11bef45467d125729918444b18c6aa19a402
- 0x2d421bc9466d0d4b4327525e0ea891650f7ef1bb786aac0e9343baa14ec49fe2
- 0xff0b07a758b1dcaf0eebbded2fa92a070a531479a35a33200105774bbc143b25
- 0xa71cc4f892400c8dd1d9d33faa6b7466eba77734b3716286b78aa51d46ff4255
- 0x7ab2e7902b312a74cfdbc32b2906ced29b1fb9dc4280b5378e8eb181ad88686e
- 0xe00c7829e46541e49a308807d357db902e06eff941a833217a8f0dbccd3964f1
- 0x770e4376196188c7fc9ec40f8e218dc0d1cb92bba5fe0425a0edce27ca9a997f
- 0x60582ab4b41e72eb70eb0bce07fbf0fb4d2b62a8bad5be50f5d16d511adc746c
- 0xc6a4d7899a0f442958e26505011190b7cff2483611c1b94eba9043e0ba9ac36e
- 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae