Skip to main content

Synopsis

cowboy check is the one command that says whether an actor is deployable. It compiles the target (running the PVM continuation pass), lints the artifact against the determinism and sandbox rules the interpreter enforces, and reports what one off-chain await will cost. It opens no socket.

Behavior

  1. Discover the project from the current directory (not needed with --code).
  2. Select what to check: the named target; the project’s only actor; every target when the project has several and none is named; or, with --code, a standalone Python source file (- reads stdin).
  3. Compile the selection and apply the source rules. Rules the compiler does not enforce (for example import time, allowed but superseded by the SDK) are reported as warnings located in the file the developer edits, not in the generated artifact.
  4. Print Actor target '<name>' is valid. with the build identity, code hash, and artifact size.
  5. For a target that reaches off-chain calls, print Cost per off-chain call: with the resource tier, the compressed delta size and cold-fetch units from the last build (or why they are unavailable), and the escrow formula. The compute term needs on-chain fee rates, so check prints the inputs and the formula; cowboy deploy prints the number.
Under --json the result carries target, build_identity, artifact_bytes, artifact_code_hash, requirements, experimental, unresolved_requirements, offchain_price, offchain_calls, routes, and always the project’s full targets list. A project-wide check puts each result in checked_targets.

Flags

Example

Edge Cases

  • A project with no actor targets prints No actor targets found. and exits 0; under --json the targets array is empty.
  • A rule violation fails with exit code 1 and every broken rule reported, not just the first.
  • check never reads the chain: the off-chain price section shows inputs and a formula only.