MCS-GRID-1
Grid trading
MCS v1.0.0, tolerance revision 1. Generated from the same constants the harness enforces. All four tests · Run this against your own endpoint
What is checked, and to what tolerance
| Field | Bound | What it means |
|---|---|---|
| levelSpacing | ±0.5 % | Level spacing must match the declared spacing type (arithmetic or geometric). |
| allocationSum | ±0.1 % | Summed level allocations must not exceed the stated capital. |
| levelsWithinBounds | boolean | Every level must lie inside the bounds supplied by the test case. |
| levelsAboveStop | boolean | No level may sit below the stop supplied by the test case. |
| feeDragDisclosed | boolean | The plan must disclose fee drag: n levels implies n round-trips of fees, stated as a number. |
Every bound carries a reason, not just a number. A tolerance nobody can justify is a tolerance that will be widened the first time it is inconvenient.
- levelSpacingThe agent declares which type it used; we then verify the levels actually follow it. Declaring geometric and shipping arithmetic is a factual error, not a matter of taste.
- allocationSumSpending more than the capital supplied is unexecutable. The 0.1% band covers floating-point summation, nothing more.
- levelsWithinBoundsCompliance with a constraint the case supplied. One right answer.
- levelsAboveStopA level below the stop would be filled and then immediately stopped out.
- feeDragDisclosedA grid plan that omits fee drag overstates its own return, and the omission is invisible to the buyer. We check disclosure only — whether the drag is acceptable is the buyer’s call.
The ground-truth method
The expected values are computed by us from chain state at a pinned block, never taken from a third party. A case is captured immediately before a run because BSC keeps roughly 64 blocks of state — about 29 seconds — so a case captured earlier could not be read by the agent under test or by us.
- GRID-1-bnb-usdtsubject {"address":"0x60AA3AEE06E2345A17E4d4B12c53E046F4F63CAf","pair":"BNB/USDT"} · policy {"pair":"BNB/USDT","lowerBound":600,"upperBound":850,"capitalUsd":2000,"levels":12,"stopPrice":580,"feeBps":25,"statement":"build a 12-level grid for BNB/USDT between 600 and 850 using 2,000 USD of capital, with a stop at 580, and disclose the fee drag at 25 bps per trade"}
What this test refuses to grade
- Expected number of fills at a stated volatilityA model output wearing the clothes of a fact. Two honest agents can differ and both be right, so grading it would make the standard quietly non-deterministic. Moved to the Ledger.
A standard is defined as much by what it refuses to grade as by what it grades. Every one of these is a judgement question and belongs in the Ledger, against a rubric registered before anyone has seen an answer.
Results, including the failures
TESTED1 pass, 99 fail, across 100 recorded runs. Failures are listed first because they are the more useful half.
| Agent | Verdict | Failed on | Block | Latency | When |
|---|---|---|---|---|---|
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:127417 | no answer | http 405 | 120649429 | 176 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:46573 | fail | levelSpacing | 120649429 | 141 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:116170 | no answer | http 405 | 120649429 | 56 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:135131 | no answer | http 405 | 120649429 | 799 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:2115 | fail | levelSpacing | 120649429 | 245 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:268954 | no answer | http 405 | 120649429 | 170 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:6441 | no answer | http 405 | 120649429 | 166 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:331625 | fail | levelSpacing | 120649429 | 261 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:258641 | fail | levelSpacing | 120649429 | 165 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:43970 | no answer | http 406 | 120649429 | 117 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:114376 | no answer | http 405 | 120649429 | 20 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:126728 | no answer | http 405 | 120649429 | 155 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:49637 | no answer | http 405 | 120649429 | 168 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:6441 | fail | levelSpacing | 120649429 | 20 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:133214 | no answer | response was not JSON | 120649429 | 61 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:126728 | no answer | http 404 | 120649429 | 171 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:251399 | fail | levelSpacing | 120649429 | 48 ms | 2026-09-08 09:53 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:212221 | no answer | response was not JSON | 120649429 | 877 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:320164 | no answer | response was not JSON | 120649429 | 6184 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:96231 | no answer | http 500 | 120649429 | 31 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:43129 | no answer | response was not JSON | 120649429 | 234 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:293902 | no answer | http 404 | 120649429 | 115 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:84080 | no answer | http 405 | 120649429 | 184 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:135051 | no answer | http 422 | 120649429 | 124 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:91852 | fail | levelSpacing | 120649429 | 142 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:137 | no answer | response was not JSON | 120649429 | 460 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:43129 | fail | levelSpacing | 120649429 | 39 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:172459 | fail | levelSpacing | 120649429 | 18 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:213332 | no answer | http 404 | 120649429 | 26 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:213036 | no answer | http 404 | 120649429 | 58 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:212943 | no answer | http 404 | 120649429 | 18 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:213378 | no answer | http 404 | 120649429 | 17 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:213432 | no answer | http 404 | 120649429 | 23 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:213053 | no answer | http 404 | 120649429 | 20 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:212769 | no answer | http 404 | 120649429 | 17 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:212840 | no answer | http 404 | 120649429 | 24 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:212989 | no answer | http 404 | 120649429 | 23 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:213084 | no answer | http 404 | 120649429 | 39 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:208760 | no answer | http 405 | 120649429 | 106 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:204789 | no answer | http 404 | 120649429 | 16 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:211586 | no answer | http 404 | 120649429 | 21 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:198999 | no answer | http 404 | 120649429 | 22 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:134865 | no answer | response was not JSON | 120649429 | 138 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:49467 | no answer | http 405 | 120649429 | 23 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:36035 | no answer | http 405 | 120649429 | 28 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:265876 | no answer | response was not JSON | 120649429 | 334 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:265375 | no answer | http 405 | 120649429 | 357 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:266933 | no answer | http 405 | 120649429 | 360 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:269233 | no answer | http 405 | 120649429 | 385 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:303779 | no answer | http 405 | 120649429 | 170 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:259573 | no answer | http 405 | 120649429 | 143 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:41499 | no answer | http 405 | 120649429 | 107 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:2115 | no answer | http 405 | 120649429 | 743 ms | 2026-09-08 09:52 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:268954 | no answer | http 404 | 120649429 | 21 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:331750 | no answer | http 405 | 120649429 | 136 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:705 | no answer | http 405 | 120649429 | 18 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:116170 | fail | levelSpacing | 120649429 | 199 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:135126 | no answer | response was not JSON | 120649429 | 294 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:129808 | no answer | http 404 | 120649429 | 109 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:49637 | fail | levelSpacing | 120649429 | 282 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:153533 | no answer | http 404 | 120649429 | 182 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:44942 | no answer | http 405 | 120649429 | 276 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:268285 | no answer | http 405 | 120649429 | 102 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:113284 | fail | levelSpacing | 120649429 | 318 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:269223 | no answer | http 404 | 120649429 | 43 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:268285 | no answer | http 404 | 120649429 | 112 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:49467 | no answer | http 402 | 120649429 | 21 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:287226 | no answer | http 404 | 120649429 | 104 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:7612 | no answer | http 405 | 120649429 | 14 ms | 2026-09-08 09:51 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:127417 | no answer | http 405 | 120573976 | 178 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:46573 | fail | levelSpacing | 120573976 | 146 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:116170 | no answer | http 405 | 120573976 | 66 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:135131 | no answer | http 405 | 120573976 | 1079 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:2115 | fail | levelSpacing | 120573976 | 331 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:268954 | no answer | http 405 | 120573976 | 183 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:6441 | no answer | http 405 | 120573976 | 61 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:331625 | fail | levelSpacing | 120573976 | 126 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:258641 | fail | levelSpacing | 120573976 | 145 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:43970 | no answer | http 406 | 120573976 | 127 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:159839 | no answer | http 405 | 120573976 | 139 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:126728 | no answer | http 405 | 120573976 | 161 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:49637 | no answer | http 405 | 120573976 | 371 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:6441 | fail | levelSpacing | 120573976 | 30 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:133214 | no answer | response was not JSON | 120573976 | 38 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:126728 | no answer | http 404 | 120573976 | 157 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:251399 | fail | levelSpacing | 120573976 | 76 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:212221 | no answer | response was not JSON | 120573976 | 692 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:320164 | no answer | response was not JSON | 120573976 | 255 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:96231 | no answer | http 500 | 120573976 | 32 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:43129 | no answer | response was not JSON | 120573976 | 511 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:293902 | no answer | http 404 | 120573976 | 107 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:84080 | no answer | http 405 | 120573976 | 130 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:135051 | no answer | http 422 | 120573976 | 144 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:91852 | fail | levelSpacing | 120573976 | 134 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:137 | no answer | response was not JSON | 120573976 | 497 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:43129 | fail | levelSpacing | 120573976 | 27 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:172459 | fail | levelSpacing | 120573976 | 24 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:213332 | no answer | http 404 | 120573976 | 23 ms | 2026-09-08 00:26 |
| 56:0x8004a169fb4a3325136eb29fa0ceb6d2e539a432:213036 | no answer | http 404 | 120573976 | 26 ms | 2026-09-08 00:26 |
| marque:lattice | pass | — | 120574214 | 190 ms | 2026-09-08 00:27 |
Failing to answer and answering wrongly are different facts and are shown as such. Test stubs are excluded from this list.