Skip to main content

Synopsis

cowboy proxy manages the on-chain registry of CIP-24 CBSS proxies — the cbssd daemons that form the DKG committee for the secrets service. Operators register a proxy with its keys and stake; anyone can list proxies or submit a slashing claim with evidence. Write subcommands sign with the key found by key auto-discovery. list needs no key. Global flags:

Subcommands

cowboy proxy register

Register a CBSS proxy. Behavior:
  1. Parse the key material; --hpke-pubkey and --dkg-pubkey must be exactly 32 bytes.
  2. Build RegisterCbssProxy with the stake widened to the chain’s 256-bit amount type.
  3. Size the limits from the node’s estimate, sign and submit; print the transaction hash and the node response.
Flags: Example:

cowboy proxy deregister

Deregister a CBSS proxy. Flags:

cowboy proxy slash

Submit a CBSS proxy slashing claim. Behavior:
  1. Unless --yes is passed, print a warning that evidence is consumed on success and cannot be reused, and that an invalid claim still spends gas; require the operator to type yes. If stdin is not a terminal or non-interactive mode is on and --yes is absent, the command refuses with input_required (exit 3).
  2. Read the evidence from exactly one of --evidence-hex or --evidence-file.
  3. Sign and submit SlashCbssProxy.
Flags:

cowboy proxy list

List all registered CBSS proxies. Read-only; GET /cbss/proxies. Behavior:
  1. Fetch /cbss/proxies from the RPC URL (10-second timeout).
  2. With --json, print one versioned JSON result (proxy.list) wrapping the payload.
  3. Otherwise print one block per proxy: proxy_id, operator, network_addr, dkg_pubkey, registration and eligibility heights, health in basis points (with SUSPENDED when applicable), and unbond_at if set. With no proxies, print a notice explaining the list populates once a RegisterCbssProxy transaction lands.
Flags: Example:

Edge Cases

  • --stake is parsed as u64, so stakes above 2^64 - 1 base units cannot be submitted through this CLI even though the chain accepts larger values.
  • slash requires exactly one evidence source; neither or both is an error.
  • slash refuses to run without --yes when stdin is not a terminal or non-interactive mode is on.
  • list errors are typed: a 404 is not_found, an unreachable node is retryable, and a non-JSON or oversized body is invalid_response.
  • Write commands sign with limits from the node’s estimate; if the estimate fails, nothing is submitted.