Laboratory-Protocol Compiler

Compile a liquid-handling plan (Flex robot, pipettes, deck labware, liquids, transfer/distribute/serial-dilute/mix/delay steps) into a self-contained Python protocol, run a static volume tracker and a real opentrons simulation, and return a pass/fail report with platemap, reagent-usage, and simulation-log artifacts. This proves the protocol runs, never that the experiment is scientifically valid.

OtherLiveeip155:8453Exactvia cdp
LabOpentronsLiquid-handlingProtocolLife-science
Calls · 30d
1
This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 13 snapshots so far.
$2.45
Verified settled volume
23 settlements proven x402 by their on-chain EIP-3009 marker.
$0.150
Listed price
As published in the catalog. Always read the live 402 before paying.
1
Calls · 30d
Upstream's own call count for this endpoint, not ours.
1
Unique payers · 30d
Last called 2026-09-11 20:07Z
Upstream on-chain volume
Reported by the source catalog.
Paid to
0x26026370fe8b2bb17af9092a17691c76519366da

The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.

Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Provider

The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.

Accepts

The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.

0.15USDC≈ $0.15 USD
on Base · exact scheme

Pay 0.15 USDC on Base to 0x2602…366da. The signed payment is good for 5 minutes.

USD Coin contract
0x8335…02913
Payment window
5 minutes
As published
150000 smallest units
The catalog’s raw entry
[
  {
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "extra": {
      "name": "USD Coin",
      "version": "2"
    },
    "payTo": "0x26026370fe8b2bb17af9092a17691c76519366da",
    "amount": "150000",
    "scheme": "exact",
    "network": "eip155:8453",
    "maxTimeoutSeconds": 300
  }
]

Extensions

{
  "bazaar": {
    "info": {
      "input": {
        "body": {
          "name": "PCR setup with 8-sample column and column-12 dilution series",
          "robot": "flex",
          "steps": [
            {
              "kind": "distribute",
              "dests": {
                "wells": "A1:H12",
                "labware": "plate"
              },
              "newTip": "once",
              "source": {
                "well": "A1",
                "labware": "mmix_res"
              },
              "volumeUl": 20
            },
            {
              "dest": {
                "well": "A1",
                "labware": "plate"
              },
              "kind": "transfer",
              "newTip": "always",
              "source": {
                "well": "A1",
                "labware": "tubes"
              },
              "volumeUl": 5
            },
            {
              "dest": {
                "well": "B1",
                "labware": "plate"
              },
              "kind": "transfer",
              "newTip": "always",
              "source": {
                "well": "A2",
                "labware": "tubes"
              },
              "volumeUl": 5
            },
            {
              "dest": {
                "well": "C1",
                "labware": "plate"
              },
              "kind": "transfer",
              "newTip": "always",
              "source": {
                "well": "B1",
                "labware": "tubes"
              },
              "volumeUl": 5
            },
            {
              "dest": {
                "well": "D1",
                "labware": "plate"
              },
              "kind": "transfer",
              "newTip": "always",
              "source": {
                "well": "B2",
                "labware": "tubes"
              },
              "volumeUl": 5
            },
            {
              "dest": {
                "well": "E1",
                "labware": "plate"
              },
              "kind": "transfer",
              "newTip": "always",
              "source": {
                "well": "C1",
                "labware": "tubes"
              },
              "volumeUl": 5
            },
            {
              "dest": {
                "well": "F1",
                "labware": "plate"
              },
              "kind": "transfer",
              "newTip": "always",
              "source": {
                "well": "C2",
                "labware": "tubes"
              },
              "volumeUl": 5
            },
            {
              "dest": {
                "well": "G1",
                "labware": "plate"
              },
              "kind": "transfer",
              "newTip": "always",
              "source": {
                "well": "D1",
                "labware": "tubes"
              },
              "volumeUl": 5
            },
            {
              "dest": {
                "well": "H1",
                "labware": "plate"
              },
              "kind": "transfer",
              "newTip": "always",
              "source": {
                "well": "D2",
                "labware": "tubes"
              },
              "volumeUl": 5
            },
            {
              "kind": "serial_dilute",
              "mixUl": 15,
              "wells": "A12:H12",
              "newTip": "always",
              "labware": "plate",
              "transferUl": 10,
              "mixRepetitions": 3
            },
            {
              "kind": "delay",
              "message": "Incubate before sealing",
              "seconds": 60
            }
          ],
          "labware": [
            {
              "id": "plate",
              "slot": "A1",
              "type": "opentrons_96_wellplate_200ul_pcr_full_skirt",
              "label": "PCR plate"
            },
            {
              "id": "tips50",
              "slot": "A2",
              "type": "opentrons_flex_96_tiprack_50ul",
              "label": "50 uL tips"
            },
            {
              "id": "mmix_res",
              "slot": "B1",
              "type": "nest_12_reservoir_15ml",
              "label": "Master mix reservoir"
            },
            {
              "id": "tubes",
              "slot": "B2",
              "type": "opentrons_24_tuberack_nest_1.5ml_snapcap",
              "label": "Sample tubes"
            }
          ],
          "liquids": [
            {
              "id": "mastermix",
              "name": "PCR master mix",
              "location": {
                "wells": "A1",
                "labware": "mmix_res",
                "volumeUl": 5000
              },
              "deadVolumeUl": 300
            },
            {
              "id": "samples",
              "name": "Patient samples",
              "location": {
                "wells": "A1:D2",
                "labware": "tubes",
                "volumeUl": 200
              },
              "deadVolumeUl": 20
            }
          ],
          "options": {
            "trashSlot": "A3",
            "defaultNewTip": "once",
            "forbidCrossLiquidTipReuse": true
          },
          "pipettes": [
            {
              "model": "flex_8channel_50",
              "mount": "left"
            },
            {
              "model": "flex_1channel_50",
              "mount": "right"
            }
          ]
        },
        "type": "http",
        "method": "POST",
        "bodyType": "json"
      },
      "output": {
        "type": "json",
        "example": {
          "robot": "flex",
          "tools": {
            "apiLevel": "2.20",
            "opentrons": "9.1.2"
          },
          "wells": [
            {
              "well": "A1",
              "labware": "mmix_res",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 3080
            },
            {
              "well": "A1",
              "labware": "plate",
              "liquids": [
                "mastermix",
                "samples"
              ],
              "volumeUl": 25
            },
            {
              "well": "A2",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "A3",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "A4",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "A5",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "A6",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "A7",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "A8",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "A9",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "A10",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "A11",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "A12",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 10
            },
            {
              "well": "B1",
              "labware": "plate",
              "liquids": [
                "mastermix",
                "samples"
              ],
              "volumeUl": 25
            },
            {
              "well": "B2",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "B3",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "B4",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "B5",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "B6",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "B7",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "B8",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "B9",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "B10",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "B11",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "B12",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "C1",
              "labware": "plate",
              "liquids": [
                "mastermix",
                "samples"
              ],
              "volumeUl": 25
            },
            {
              "well": "C2",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "C3",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "C4",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "C5",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "C6",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "C7",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "C8",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "C9",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "C10",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "C11",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "C12",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "D1",
              "labware": "plate",
              "liquids": [
                "mastermix",
                "samples"
              ],
              "volumeUl": 25
            },
            {
              "well": "D2",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "D3",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "D4",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "D5",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "D6",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "D7",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "D8",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "D9",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "D10",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "D11",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "D12",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "E1",
              "labware": "plate",
              "liquids": [
                "mastermix",
                "samples"
              ],
              "volumeUl": 25
            },
            {
              "well": "E2",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "E3",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "E4",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "E5",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "E6",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "E7",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "E8",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "E9",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "E10",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "E11",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "E12",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "F1",
              "labware": "plate",
              "liquids": [
                "mastermix",
                "samples"
              ],
              "volumeUl": 25
            },
            {
              "well": "F2",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "F3",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "F4",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "F5",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "F6",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "F7",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "F8",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "F9",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "F10",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "F11",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "F12",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "G1",
              "labware": "plate",
              "liquids": [
                "mastermix",
                "samples"
              ],
              "volumeUl": 25
            },
            {
              "well": "G2",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "G3",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "G4",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "G5",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "G6",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "G7",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "G8",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "G9",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "G10",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "G11",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "G12",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "H1",
              "labware": "plate",
              "liquids": [
                "mastermix",
                "samples"
              ],
              "volumeUl": 25
            },
            {
              "well": "H2",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "H3",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "H4",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "H5",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "H6",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "H7",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "H8",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "H9",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "H10",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "H11",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 20
            },
            {
              "well": "H12",
              "labware": "plate",
              "liquids": [
                "mastermix"
              ],
              "volumeUl": 30
            },
            {
              "well": "A1",
              "labware": "tubes",
              "liquids": [
                "samples"
              ],
              "volumeUl": 195
            },
            {
              "well": "A2",
              "labware": "tubes",
              "liquids": [
                "samples"
              ],
              "volumeUl": 195
            },
            {
              "well": "B1",
              "labware": "tubes",
              "liquids": [
                "samples"
              ],
              "volumeUl": 195
            }
          ],
          "checks": [
            {
              "code": "plan_valid",
              "detail": "111 elementary transfer(s) across 4 labware and 2 pipette(s) resolved cleanly",
              "status": "passed"
            },
            {
              "code": "labware_compatible",
              "detail": "every pipette has a compatible tip rack and every multi-channel step is column-aligned",
              "status": "passed"
            },
            {
              "code": "volumes_within_capacity",
              "detail": "no well exceeds its fill limit",
              "status": "passed"
            },
            {
              "code": "liquids_sufficient",
              "detail": "every source liquid has enough usable volume",
              "status": "passed"
            },
            {
              "code": "pipette_ranges_respected",
              "detail": "every transfer volume is within its pipette's range",
              "status": "passed"
            },
            {
              "code": "tips_sufficient",
              "detail": "loaded tip racks cover every pickup",
              "status": "passed"
            },
            {
              "code": "tip_reuse_safe",
              "detail": "no tip touched two different liquids without a fresh pickup",
              "status": "passed"
            },
            {
              "code": "simulation_passed",
              "detail": "147 simulated command(s)",
              "status": "passed"
            }
          ],
          "status": "passed",
          "liquids": [
            {
              "id": "mastermix",
              "name": "PCR master mix",
              "consumedUl": 1920,
              "availableUl": 5000,
              "remainingUl": 3080,
              "shortfallUl": 0
            },
            {
              "id": "samples",
              "name": "Patient samples",
              "consumedUl": 40,
              "availableUl": 1600,
              "remainingUl": 1560,
              "shortfallUl": 0
            }
          ],
          "summary": {
            "steps": 11,
            "labware": 4,
            "liquids": 2,
            "tipsUsed": {
              "left": 8,
              "right": 15
            },
            "transfers": 111,
            "estimatedMinutes": 13.63
          },
          "findings": [],
          "warnings": [],
          "artifacts": [
            {
              "href": "https://lab.api.williamrobinson.dev/v1/lab/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/protocol.py",
              "name": "protocol.py",
              "sha256": "02d424abe63b8fd8b2717803b5f3690504e09d695142ece16d8b0f03f7174dba",
              "mediaType": "text/x-python; charset=utf-8",
              "sizeBytes": 6561
            },
            {
              "href": "https://lab.api.williamrobinson.dev/v1/lab/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/platemap.csv",
              "name": "platemap.csv",
              "sha256": "9dc370d60f4ac51c9036bc6d33d90c5af5d24a74ed2adae0a1b7ade1fd76d9f9",
              "mediaType": "text/csv; charset=utf-8",
              "sizeBytes": 2425
            },
            {
              "href": "https://lab.api.williamrobinson.dev/v1/lab/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/platemap.svg",
              "name": "platemap.svg",
              "sha256": "c2dc914c4c34cb6d879352e0ed8d66e3f285904e82e3f61ba27b659ba03fc70d",
              "mediaType": "image/svg+xml",
              "sizeBytes": 23733
            },
            {
              "href": "https://lab.api.williamrobinson.dev/v1/lab/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/reagents.csv",
              "name": "reagents.csv",
              "sha256": "3dabbe14d42a323cf294de9b0219d8d66f2cc5867ab4ea86c4925aca057cf7ce",
              "mediaType": "text/csv; charset=utf-8",
              "sizeBytes": 196
            },
            {
              "href": "https://lab.api.williamrobinson.dev/v1/lab/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/simulation-log.txt",
              "name": "simulation-log.txt",
              "sha256": "11946c6bdbe0ad5d64ecdc45d36fca4422bde6327a0cd9be02e8ebfa2a60d1bb",
              "mediaType": "text/plain; charset=utf-8",
              "sizeBytes": 12799
            },
            {
              "href": "https://lab.api.williamrobinson.dev/v1/lab/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/report.json",
              "name": "report.json",
              "sha256": "bccaa49a8943c4008b6ea10c0126367ec6bc64489151a08de291d9ad834ba173",
              "mediaType": "application/json",
              "sizeBytes": 10756
            }
          ],
          "expiresAt": "2026-09-12T08:10:35.369Z",
          "truncated": true,
          "simulation": {
            "ok": true,
            "ran": true,
            "error": null,
            "commands": 147
          },
          "limitations": [
            "Simulation proves the protocol is executable by Opentrons robot software; it is not proof that the underlying experiment is scientifically valid.",
            "No liquid-class or viscosity modelling is performed; every transfer is assumed ideal (no air gaps, splashing, or evaporation effects).",
            "The static volume tracker assumes declared dead volumes are accurate; it cannot detect physically inaccessible liquid the caller did not declare.",
            "OT-2 robots are not supported in v1; every generated protocol targets Opentrons Flex only.",
            "The simulator does not check well overfill; the well_overflow finding above is this compiler's own static check."
          ]
        }
      }
    },
    "schema": {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "input"
      ],
      "properties": {
        "input": {
          "type": "object",
          "required": [
            "type",
            "method",
            "bodyType",
            "body"
          ],
          "properties": {
            "body": {
              "type": "object",
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "required": [
                "name",
                "robot",
                "pipettes",
                "labware",
                "liquids",
                "steps",
                "options"
              ],
              "properties": {
                "name": {
                  "type": "string",
                  "maxLength": 200,
                  "minLength": 1
                },
                "robot": {
                  "const": "flex",
                  "description": "Opentrons Flex only; OT-2 is not supported (opentrons 9.x's simulator refuses OT-2 protocols)."
                },
                "steps": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "required": [
                          "kind",
                          "source",
                          "dest",
                          "volumeUl"
                        ],
                        "properties": {
                          "dest": {
                            "type": "object",
                            "required": [
                              "labware",
                              "well"
                            ],
                            "properties": {
                              "well": {
                                "type": "string",
                                "pattern": "^[A-P](?:[1-9]|1[0-9]|2[0-4])$",
                                "description": "A single well, e.g. \"A1\" (rows A-P, columns 1-24)."
                              },
                              "labware": {
                                "type": "string",
                                "pattern": "^[A-Za-z0-9_-]{1,32}$",
                                "description": "Caller-assigned identifier, unique within its array."
                              }
                            },
                            "additionalProperties": false
                          },
                          "kind": {
                            "const": "transfer"
                          },
                          "newTip": {
                            "enum": [
                              "always",
                              "once",
                              "never"
                            ],
                            "type": "string"
                          },
                          "source": {
                            "type": "object",
                            "required": [
                              "labware",
                              "well"
                            ],
                            "properties": {
                              "well": {
                                "type": "string",
                                "pattern": "^[A-P](?:[1-9]|1[0-9]|2[0-4])$",
                                "description": "A single well, e.g. \"A1\" (rows A-P, columns 1-24)."
                              },
                              "labware": {
                                "type": "string",
                                "pattern": "^[A-Za-z0-9_-]{1,32}$",
                                "description": "Caller-assigned identifier, unique within its array."
                              }
                            },
                            "additionalProperties": false
                          },
                          "volumeUl": {
                            "type": "number",
                            "maximum": 10000,
                            "description": "Microlitres.",
                            "exclusiveMinimum": 0
                          },
                          "mixAfterUl": {
                            "type": "number",
                            "maximum": 10000,
                            "description": "Microlitres.",
                            "exclusiveMinimum": 0
                          },
                          "mixAfterRepetitions": {
                            "type": "integer",
                            "maximum": 20,
                            "minimum": 1
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "required": [
                          "kind",
                          "source",
                          "dests",
                          "volumeUl"
                        ],
                        "properties": {
                          "kind": {
                            "const": "distribute"
                          },
                          "dests": {
                            "type": "object",
                            "required": [
                              "labware",
                              "wells"
                            ],
                            "properties": {
                              "wells": {
                                "type": "string",
                                "pattern": "^[A-P](?:[1-9]|1[0-9]|2[0-4])(?::[A-P](?:[1-9]|1[0-9]|2[0-4]))?$",
                                "description": "A well or well range: \"A1\", \"A1:H1\" (column), \"A1:A12\" (row), or \"A1:H12\" (rectangle), expanded row-major."
                              },
                              "labware": {
                                "type": "string",
                                "pattern": "^[A-Za-z0-9_-]{1,32}$",
                                "description": "Caller-assigned identifier, unique within its array."
                              }
                            },
                            "additionalProperties": false
                          },
                          "newTip": {
                            "enum": [
                              "always",
                              "once",
                              "never"
                            ],
                            "type": "string"
                          },
                          "source": {
                            "type": "object",
                            "required": [
                              "labware",
                              "well"
                            ],
                            "properties": {
                              "well": {
                                "type": "string",
                                "pattern": "^[A-P](?:[1-9]|1[0-9]|2[0-4])$",
                                "description": "A single well, e.g. \"A1\" (rows A-P, columns 1-24)."
                              },
                              "labware": {
                                "type": "string",
                                "pattern": "^[A-Za-z0-9_-]{1,32}$",
                                "description": "Caller-assigned identifier, unique within its array."
                              }
                            },
                            "additionalProperties": false
                          },
                          "volumeUl": {
                            "type": "number",
                            "maximum": 10000,
                            "description": "Microlitres.",
                            "exclusiveMinimum": 0
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "required": [
                          "kind",
                          "labware",
                          "wells",
                          "transferUl",
                          "mixUl",
                          "mixRepetitions"
                        ],
                        "properties": {
                          "kind": {
                            "const": "serial_dilute"
                          },
                          "mixUl": {
                            "type": "number",
                            "maximum": 10000,
                            "description": "Microlitres.",
                            "exclusiveMinimum": 0
                          },
                          "wells": {
                            "type": "string",
                            "pattern": "^[A-P](?:[1-9]|1[0-9]|2[0-4])(?::[A-P](?:[1-9]|1[0-9]|2[0-4]))?$",
                            "description": "A well or well range: \"A1\", \"A1:H1\" (column), \"A1:A12\" (row), or \"A1:H12\" (rectangle), expanded row-major."
                          },
                          "newTip": {
                            "enum": [
                              "always",
                              "once",
                              "never"
                            ],
                            "type": "string"
                          },
                          "labware": {
                            "type": "string",
                            "pattern": "^[A-Za-z0-9_-]{1,32}$",
                            "description": "Caller-assigned identifier, unique within its array."
                          },
                          "transferUl": {
                            "type": "number",
                            "maximum": 10000,
                            "description": "Microlitres.",
                            "exclusiveMinimum": 0
                          },
                          "mixRepetitions": {
                            "type": "integer",
                            "maximum": 20,
                            "minimum": 1
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "required": [
                          "kind",
                          "target",
                          "volumeUl",
                          "repetitions"
                        ],
                        "properties": {
                          "kind": {
                            "const": "mix"
                          },
                          "newTip": {
                            "enum": [
                              "always",
                              "once",
                              "never"
                            ],
                            "type": "string"
                          },
                          "target": {
                            "type": "object",
                            "required": [
                              "labware",
                              "wells"
                            ],
                            "properties": {
                              "wells": {
                                "type": "string",
                                "pattern": "^[A-P](?:[1-9]|1[0-9]|2[0-4])(?::[A-P](?:[1-9]|1[0-9]|2[0-4]))?$",
                                "description": "A well or well range: \"A1\", \"A1:H1\" (column), \"A1:A12\" (row), or \"A1:H12\" (rectangle), expanded row-major."
                              },
                              "labware": {
                                "type": "string",
                                "pattern": "^[A-Za-z0-9_-]{1,32}$",
                                "description": "Caller-assigned identifier, unique within its array."
                              }
                            },
                            "additionalProperties": false
                          },
                          "volumeUl": {
                            "type": "number",
                            "maximum": 10000,
                            "description": "Microlitres.",
                            "exclusiveMinimum": 0
                          },
                          "repetitions": {
                            "type": "integer",
                            "maximum": 20,
                            "minimum": 1
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "required": [
                          "kind",
                          "seconds"
                        ],
                        "properties": {
                          "kind": {
                            "const": "delay"
                          },
                          "message": {
                            "type": "string",
                            "maxLength": 500,
                            "minLength": 1
                          },
                          "seconds": {
                            "type": "integer",
                            "maximum": 3600,
                            "minimum": 1
                          }
                        },
                        "additionalProperties": false
                      }
                    ]
                  },
                  "maxItems": 200,
                  "minItems": 1
                },
                "labware": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "id",
                      "type",
                      "slot"
                    ],
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9_-]{1,32}$",
                        "description": "Caller-assigned identifier, unique within its array."
                      },
                      "slot": {
                        "enum": [
                          "A1",
                          "A2",
                          "A3",
                          "B1",
                          "B2",
                          "B3",
                          "C1",
                          "C2",
                          "C3",
                          "D1",
                          "D2",
                          "D3"
                        ],
                        "type": "string"
                      },
                      "type": {
                        "enum": [
                          "opentrons_96_wellplate_200ul_pcr_full_skirt",
                          "corning_96_wellplate_360ul_flat",
                          "nest_96_wellplate_2ml_deep",
                          "corning_384_wellplate_112ul_flat",
                          "nest_12_reservoir_15ml",
                          "nest_1_reservoir_195ml",
                          "opentrons_24_tuberack_nest_1.5ml_snapcap",
                          "opentrons_flex_96_tiprack_50ul",
                          "opentrons_flex_96_tiprack_200ul",
                          "opentrons_flex_96_tiprack_1000ul"
                        ],
                        "type": "string"
                      },
                      "label": {
                        "type": "string",
                        "maxLength": 128,
                        "minLength": 1
                      }
                    },
                    "additionalProperties": false
                  },
                  "maxItems": 12,
                  "minItems": 1
                },
                "liquids": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "id",
                      "name",
                      "location"
                    ],
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9_-]{1,32}$",
                        "description": "Caller-assigned identifier, unique within its array."
                      },
                      "name": {
                        "type": "string",
                        "maxLength": 200,
                        "minLength": 1
                      },
                      "location": {
                        "type": "object",
                        "required": [
                          "labware",
                          "wells",
                          "volumeUl"
                        ],
                        "properties": {
                          "wells": {
                            "type": "string",
                            "pattern": "^[A-P](?:[1-9]|1[0-9]|2[0-4])(?::[A-P](?:[1-9]|1[0-9]|2[0-4]))?$",
                            "description": "A well or well range: \"A1\", \"A1:H1\" (column), \"A1:A12\" (row), or \"A1:H12\" (rectangle), expanded row-major."
                          },
                          "labware": {
                            "type": "string",
                            "pattern": "^[A-Za-z0-9_-]{1,32}$",
                            "description": "Caller-assigned identifier, unique within its array."
                          },
                          "volumeUl": {
                            "type": "number",
                            "maximum": 300000,
                            "exclusiveMinimum": 0
                          }
                        },
                        "additionalProperties": false
                      },
                      "deadVolumeUl": {
                        "type": "number",
                        "maximum": 50000,
                        "minimum": 0
                      }
                    },
                    "additionalProperties": false
                  },
                  "maxItems": 32
                },
                "options": {
                  "type": "object",
                  "required": [
                    "trashSlot",
                    "defaultNewTip",
                    "forbidCrossLiquidTipReuse"
                  ],
                  "properties": {
                    "trashSlot": {
                      "enum": [
                        "A1",
                        "B1",
                        "C1",
                        "D1",
                        "A3",
                        "B3",
                        "C3",
                        "D3"
                      ],
                      "type": "string",
                      "description": "Flex default is A3. Column 1 or 3 only (column 2 and the column-4 staging area are not valid trash locations)."
                    },
                    "defaultNewTip": {
                      "enum": [
                        "always",
                        "once",
                        "never"
                      ],
                      "type": "string"
                    },
                    "forbidCrossLiquidTipReuse": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                "pipettes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "mount",
                      "model"
                    ],
                    "properties": {
                      "model": {
                        "enum": [
                          "flex_1channel_50",
                          "flex_1channel_1000",
                          "flex_8channel_50",
                          "flex_8channel_1000"
                        ],
                        "type": "string"
                      },
                      "mount": {
                        "enum": [
                          "left",
                          "right"
                        ],
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  },
                  "maxItems": 2,
                  "minItems": 1
                }
              },
              "additionalProperties": false
            },
            "type": {
              "type": "string",
              "const": "http"
            },
            "method": {
              "enum": [
                "POST"
              ],
              "type": "string"
            },
            "bodyType": {
              "enum": [
                "json",
                "form-data",
                "text"
              ],
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "required": [
            "type"
          ],
          "properties": {
            "type": {
              "type": "string"
            },
            "example": {
              "type": "object",
              "$defs": {
                "check": {
                  "type": "object",
                  "required": [
                    "code",
                    "status",
                    "detail"
                  ],
                  "properties": {
                    "code": {
                      "type": "string"
                    },
                    "detail": {
                      "type": "string"
                    },
                    "status": {
                      "enum": [
                        "passed",
                        "failed",
                        "not_checked"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "required": [
                "status",
                "tools",
                "robot",
                "summary",
                "liquids",
                "wells",
                "findings",
                "simulation",
                "checks",
                "warnings",
                "limitations",
                "truncated",
                "expiresAt",
                "artifacts"
              ],
              "properties": {
                "robot": {
                  "const": "flex"
                },
                "tools": {
                  "type": "object",
                  "required": [
                    "opentrons",
                    "apiLevel"
                  ],
                  "properties": {
                    "apiLevel": {
                      "type": "string"
                    },
                    "opentrons": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                "wells": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "labware",
                      "well",
                      "volumeUl",
                      "liquids"
                    ],
                    "properties": {
                      "well": {
                        "type": "string"
                      },
                      "labware": {
                        "type": "string"
                      },
                      "liquids": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "volumeUl": {
                        "type": "number",
                        "minimum": 0
                      }
                    },
                    "additionalProperties": false
                  },
                  "maxItems": 100
                },
                "checks": {
                  "type": "array",
                  "items": {
                    "$ref": "#/properties/output/properties/example/$defs/check"
                  }
                },
                "status": {
                  "enum": [
                    "passed",
                    "failed"
                  ],
                  "type": "string"
                },
                "liquids": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "id",
                      "name",
                      "availableUl",
                      "consumedUl",
                      "remainingUl",
                      "shortfallUl"
                    ],
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "consumedUl": {
                        "type": "number"
                      },
                      "availableUl": {
                        "type": "number"
                      },
                      "remainingUl": {
                        "type": "number"
                      },
                      "shortfallUl": {
                        "type": "number"
                      }
                    },
                    "additionalProperties": false
                  },
                  "maxItems": 32
                },
                "summary": {
                  "type": "object",
                  "required": [
                    "steps",
                    "transfers",
                    "tipsUsed",
                    "estimatedMinutes",
                    "labware",
                    "liquids"
                  ],
                  "properties": {
                    "steps": {
                      "type": "integer",
                      "maximum": 200,
                      "minimum": 0
                    },
                    "labware": {
                      "type": "integer",
                      "maximum": 12,
                      "minimum": 0
                    },
                    "liquids": {
                      "type": "integer",
                      "maximum": 32,
                      "minimum": 0
                    },
                    "tipsUsed": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "integer",
                        "minimum": 0
                      }
                    },
                    "transfers": {
                      "type": "integer",
                      "maximum": 2000,
                      "minimum": 0
                    },
                    "estimatedMinutes": {
                      "type": "number",
                      "minimum": 0
                    }
                  },
                  "additionalProperties": false
                },
                "findings": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "step",
                      "code",
                      "severity",
                      "detail"
                    ],
                    "properties": {
                      "code": {
                        "type": "string"
                      },
                      "step": {
                        "type": "integer",
                        "minimum": -1
                      },
                      "detail": {
                        "type": "string"
                      },
                      "severity": {
                        "enum": [
                          "error",
                          "warning"
                        ],
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  },
                  "maxItems": 100
                },
                "warnings": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "maxLength": 4096
                  },
                  "maxItems": 100
                },
                "artifacts": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "name",
                      "mediaType",
                      "sizeBytes",
                      "sha256",
                      "href"
                    ],
                    "properties": {
                      "href": {
                        "type": "string",
                        "format": "uri"
                      },
                      "name": {
                        "enum": [
                          "protocol.py",
                          "platemap.csv",
                          "platemap.svg",
                          "reagents.csv",
                          "simulation-log.txt",
                          "report.json"
                        ],
                        "type": "string"
                      },
                      "sha256": {
                        "type": "string",
                        "pattern": "^[a-f0-9]{64}$"
                      },
                      "mediaType": {
                        "type": "string",
                        "maxLength": 128,
                        "minLength": 1
                      },
                      "sizeBytes": {
                        "type": "integer",
                        "minimum": 0
                      }
                    },
                    "additionalProperties": false
                  },
                  "maxItems": 6
                },
                "expiresAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "truncated": {
                  "type": "boolean"
                },
                "simulation": {
                  "type": "object",
                  "required": [
                    "ran",
                    "ok",
                    "commands",
                    "error"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "ran": {
                      "type": "boolean"
                    },
                    "error": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "commands": {
                      "type": "integer",
                      "minimum": 0
                    }
                  },
                  "additionalProperties": false
                },
                "limitations": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "maxLength": 4096
                  },
                  "maxItems": 16
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    }
  },
  "builder-code": {
    "info": {
      "s": [
        "cdp_sdk_server"
      ]
    },
    "schema": {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "a": {
          "type": "string",
          "pattern": "^[a-z0-9_]{1,32}$",
          "description": "App builder code"
        },
        "s": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[a-z0-9_]{1,32}$"
          },
          "maxItems": 11,
          "description": "Service builder codes"
        },
        "w": {
          "type": "string",
          "pattern": "^[a-z0-9_]{1,32}$",
          "description": "Wallet builder code"
        }
      },
      "additionalProperties": false
    }
  },
  "payment-identifier": {
    "info": {
      "required": true
    },
    "schema": {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "required"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[a-zA-Z0-9_-]+$",
          "maxLength": 128,
          "minLength": 16
        },
        "required": {
          "type": "boolean"
        }
      }
    }
  },
  "eip2612GasSponsoring": {},
  "erc20ApprovalGasSponsoring": {}
}

Provenance

Seen in the source catalog
2026-09-11 20:07Z
Last indexed by Roundhouse
2026-09-24 17:30Z
Last enriched (probe, favicon, geo)
2026-09-11 20:16Z
x402 version
2
Max timeout
300s
Liveness probe
HTTP 404
Report

Hand this page to an agent

Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.

GET api.roundhouseai.io/v0/endpoints

This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 13 snapshots so far. Verified volume counts only settlements with an on-chain EIP-3009 marker.

Open skill.md
Show the prompt
Using Roundhouse, look up the x402 service Laboratory-Protocol Compiler and tell me whether it is
worth paying: what a call costs, whether the endpoint answered when last probed, and what
its payment record actually shows.

curl -s 'https://api.roundhouseai.io/v0/endpoints?q=Laboratory-Protocol%20Compiler'
curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>'

Then call it: read the price from the live 402 at https://lab.api.williamrobinson.dev/v1/lab/compile, never from
a cached figure, and pay with an x402 client.

The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except
/v0/unified* and /v0/endpoints. Mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402,
or use an organization key from https://roundhouseai.io/dashboard/team.

If you do not have Roundhouse tools or skills installed, read
https://roundhouseai.io/skill.md first — it is the whole procedure.