Synopsis
cowboy cbqs submits CIP-39 v2 instructions to the Stream Registry system actor (0x17): provider registration and updates, account top-ups, and stream lifecycle.
All subcommands sign with the key found by key auto-discovery; none are read-only.
Parent flags:
Subcommands
cowboy cbqs provider-register
CIP-39 §4.1 RegisterProvider. Costs 5 CBY, paid to the zero address.
Behavior:
- Require at least one
--endpoint(CIP-39 §4.1 endpoint rule 1 requires a nonempty list; the CLI refuses an empty one before submission). - Build
RegisterProviderV2withaccepts_new = trueand a zerometadata_hash. - Sign and submit; print the node response and the transaction hash.
Example:
cowboy cbqs provider-update
CIP-39 §4.1 UpdateProvider. Every field is optional; only what is passed changes.
Behavior:
- An empty
--endpointlist means “leave endpoints alone”, never “clear them” — clearing would strand every stream the provider serves. --signing-keyrotates the Ed25519 key; the outgoing key is retained on chain asprevious_signing_keyso older receipts still verify. Two rotations at one height are refused.- Sign and submit.
cowboy cbqs top-up
CIP-39 §4.3 TopUpAccount. Owner-only, and the only instruction that creates a (owner, provider) account; a stream on an accountless pair is unserviceable.
Behavior:
- Derive the owner address from the signing key.
- Build
TopUpAccountV2 { owner, provider, amount }, sign, and submit.
cowboy cbqs create-stream
CIP-39 §4.2 CreateStream. Costs 5 CBY and requires the account to fund rate_per_block × (active_streams + 1).
Flags:
cowboy cbqs close-stream
CIP-39 §4.2 CloseStream. Releases the stream’s provider capacity and billing.
Flags:
Edge Cases
provider-registerfails locally with--endpoint is required at least onceif no endpoint is given.- Consensus checks only the endpoint count, length,
wss://prefix, and printable-ASCII bytes (CIP-39 §4.1); it never parses or compares endpoints. Clients dial the registered URI verbatim, so an endpoint without the path the provider serves is admitted but unreachable. --signing-keyand--admin-keymust decode to exactly 32 bytes;--providerto exactly 20;--stream-idto exactly 32.top-upis the only way to create an account for an(owner, provider)pair; create a stream only after topping up.- Every write signs with resource limits from the node’s estimate.