requestHash binds to those exact bytes.
What gets recognized
The classifier renders amounts as real dollars (Meow amounts are USD with two decimals — a 100x “cents” mistake is caught immediately), decodes the rail, memo and recurrence, and computes what the payload actually authorizes. The judge reasons over:
Meow PAYMENT: $6,900.00 via WIRE to counterparty 3e1b2b0a…9c21 (memo: “INV-2044 — Acme Metals”) — counterparty is an opaque saved-contact id; payee identity is UNVERIFIED unless the mandate pins this exact id; wire transfers are final once sent.That framing is what catches the classic banking failures: the wire that’s final the moment it sends, the first-time payee nobody vetted, the ACH/wire ambiguity that turns a “small reversible payment” into an unrecoverable one, the WEEKLY recurrence that multiplies a within-cap amount into a five-figure monthly drain. Because a Meow payload identifies the payee only by an opaque counterparty id, the verdict leans ESCALATE whenever the mandate depends on who gets paid and the id isn’t one your rules explicitly allow — fail closed, never allow on assumption.
Use it from your bot
Wrap the payment you were already going to create:venue is optional — Meow payment bodies are auto-detected — but because ACH and wire share the same body shape (the rail lives in the endpoint path), include the type field so the verdict covers the rail you’ll actually hit. Freeform action descriptions still work (mode: "semantic").
Use it from Claude or ChatGPT
Add the hosted connector (https://harness.chance.cc/api/mcp, see Connectors) and give your agent one standing instruction:
Before creating any Meow transfer or payment, callAgents with Meow execution tools then get gated automatically; agents without them still give you provable pre-payment checks in chat.verify_intentwith my rules as the intent and the exact request body (including the rail) as the action, withvenue: "meow". Only proceed on ALLOW; on BLOCK or ESCALATE, stop and tell me why.
How the harness knows Meow
The judge works from a versioned snapshot of Meow’s own developer docs — ACH, wire, book and crypto transfer schemas, contacts and counterparties, daily withdrawal limits, transfer statuses and the approval model, authentication and scopes, bill pay, error codes — plus a curated brief of the venue’s footguns (dollars-not-cents amounts, ACH reversibility vs wire finality, opaque counterparty ids, first-time-payee risk, recurrence math, the asymmetric per-rail limits). Docs are never fetched at verdict time: the snapshot is reviewed like code, its version is hashed into every transcript, and each page the judge consults is chained with its content hash — the receipt proves exactly which knowledge, at which version, informed the decision. See Architecture.What the receipt adds for Meow
On top of the standard proof bundle (transcript root, judge signature, onchain anchor), venue-aware verdicts carryvenue: "meow", the actionFamily, the venue actionType (ach, wire, book, crypto, ach_scheduled, set_daily_withdrawal_limit), mode: "structured", and the knowledge-snapshot version — all inside the hash-chained transcript. For payments, the transcript records the exact dollar amount, rail, counterparty id and memo the verdict was issued against — an audit trail you can hand to your controller.
Roadmap: escrowed execution — the same contract, but an ALLOW triggers submission by a Chance-held credential and a BLOCK physically never reaches the banking API. The payload-first contract above is forward-compatible with it.
