1.5.1 • Published 1 month ago

@joystream/cli v1.5.1

Weekly downloads
1
License
GPL-3.0-only
Repository
github
Last release
1 month ago

@joystream/cli

Command Line Interface for Joystream community and governance activities

oclif Version Downloads/week License

Usage

$ npm install -g @joystream/cli
$ joystream-cli COMMAND
running command...
$ joystream-cli (-v|--version|version)
@joystream/cli/1.5.1 darwin-arm64 node-v18.6.0
$ joystream-cli --help [COMMAND]
USAGE
  $ joystream-cli COMMAND
...

Development

To run a command in developemnt environment (from the root of Joystream monorepo, without installing the package):

  $ yarn && yarn workspace @joystream/types build && yarn workspace @joystream/metadata-protobuf build
  $ ./cli/bin/run COMMAND # OR:
  $ yarn joystream-cli COMMAND

Alternatively:

  $ yarn workspace @joystream/cli link
  $ joystream-cli COMMAND

First steps

When using the CLI for the first time there are a few common steps you might want to take in order to configure the CLI:

  1. Set the correct Joystream node websocket endpoint. You can do this by executing api:setUri and choosing one of the suggested endpoints of providing your own url. To verify the currently used Joystream node websocket endpoint you can execute api:getUri.
  2. Set the Joystream query node endpoint. This is optional, but some commands (for example: content:createChannel) will require a connection to the query node in order to fetch the data they need complete the requested operations (ie. content:createChannel will need to fetch the available storage node endnpoints in order to upload the channel assets). In order to do that, execute api:setQueryNodeEndpoint and choose one of the suggested endpoints or provide your own url. You can use api:getQueryNodeEndpoint any time to verify the currently set endpoint.
  3. In order to use your existing keys within the CLI, you can import them using account:import command. You can provide json backup files exported from Pioneer or Polkadot{.js} extension as an input. You can also use raw mnemonic or seed phrases. See the account:import command documentation for the full list of supported inputs. The key to sign the transaction(s) with will be determined based on the required permissions, depending on the command you execute. For example, if you execute working-groups:updateRewardAccount --group storageProviders, the CLI will look for a storage provider role key among your available keys. If multiple execution contexts are available, the CLI will prompt you to choose the desired one.
  4. Optionally: You may also find it useful to get the first part of the command (before the colon) autocompleted when you press [Tab] while typing the command name in the console. Executing autocomplete command will provide you the instructions on how to set this up.
  5. That's it! The CLI is now be fully set up! Feel free to use the --help flag to investigate the available commands or take a look at the commands documentation below.

Useful environment settings

  • FORCE_COLOR=0 - disables output coloring. This will make the output easier to parse in case it's redirected to a file or used within a script.
  • AUTO_CONFIRM=true - this will make the CLI skip asking for any confirmations (can be useful when creating bash scripts).

Commands

joystream-cli account:create

Create a new account

USAGE
  $ joystream-cli account:create

OPTIONS
  --name=name               Account name
  --type=(sr25519|ed25519)  Account type (defaults to sr25519)

See code: src/commands/account/create.ts

joystream-cli account:export DESTPATH

Export account(s) to given location

USAGE
  $ joystream-cli account:export DESTPATH

ARGUMENTS
  DESTPATH  Path where the exported files should be placed

OPTIONS
  -a, --all        If provided, exports all existing accounts into "exported_accounts" folder inside given path
  -n, --name=name  Name of the account to export

See code: src/commands/account/export.ts

joystream-cli account:forget

Forget (remove) account from the list of available accounts

USAGE
  $ joystream-cli account:forget

OPTIONS
  --address=address  Address of the account to remove
  --name=name        Name of the account to remove

See code: src/commands/account/forget.ts

joystream-cli account:import

Import account using mnemonic phrase, seed, suri or json backup file

USAGE
  $ joystream-cli account:import

OPTIONS
  --backupFilePath=backupFilePath  Path to account backup JSON file
  --mnemonic=mnemonic              Mnemonic phrase
  --name=name                      Account name
  --password=password              Account password
  --seed=seed                      Secret seed
  --suri=suri                      Substrate uri
  --type=(sr25519|ed25519)         Account type (defaults to sr25519)

See code: src/commands/account/import.ts

joystream-cli account:info [ADDRESS]

Display detailed information about specified account

USAGE
  $ joystream-cli account:info [ADDRESS]

ARGUMENTS
  ADDRESS  An address to inspect (can also be provided interavtively)

ALIASES
  $ joystream-cli account:inspect

See code: src/commands/account/info.ts

joystream-cli account:list

List all available accounts

USAGE
  $ joystream-cli account:list

See code: src/commands/account/list.ts

joystream-cli account:transferTokens

Transfer tokens from any of the available accounts

USAGE
  $ joystream-cli account:transferTokens

OPTIONS
  --amount=amount  (required) Amount of tokens to transfer
  --from=from      Address of the sender (can also be provided interactively)
  --to=to          Address of the recipient (can also be provided interactively)

See code: src/commands/account/transferTokens.ts

joystream-cli advanced-transactions:constructSetCodeCall

Construct a "system.setCode" call.

USAGE
  $ joystream-cli advanced-transactions:constructSetCodeCall

OPTIONS
  -o, --output=output              (required) Path to the file where the call should be saved
  --address=address                (required) The address that is performing the final call.
  --codeOutput=codeOutput          Path to where the parsed wasm code shold be saved.

  --lifetime=lifetime              [default: 64] Lifetime of the transaction, from creation to included on chain, in
                                   blocks before it becomes invalid.

  --nonceIncrement=nonceIncrement  [default: 0] If you are preparing multiple transactions from the samme account,
                                   before broadcasting them, you need to increase the nonce by 1 for each. This value
                                   will be added to the nonce read from the chain.

  --tip=tip                        [default: 0] Optional "tip" (in base value) for faster block inclusion.

  --wasmPath=wasmPath              (required) The address that is performing the final call.

See code: src/commands/advanced-transactions/constructSetCodeCall.ts

joystream-cli advanced-transactions:constructTxCall

Construct a call that as argument for a transaction, or to wrap in another call.

USAGE
  $ joystream-cli advanced-transactions:constructTxCall

OPTIONS
  -o, --output=output              (required) Path to the file where the output JSON should be saved.
  --address=address                (required) The address that is performing the (final) transaction.

  --lifetime=lifetime              [default: 64] Lifetime of the transaction, from creation to included on chain, in
                                   blocks before it becomes invalid.

  --method=method                  (required) The method of the extrinsic

  --module=module                  (required) The module (a.k.a. section) of the extrinsic

  --nonceIncrement=nonceIncrement  [default: 0] If you are preparing multiple transactions from the samme account,
                                   before broadcasting them, you need to increase the nonce by 1 for each. This value
                                   will be added to the nonce read from the chain.

  --tip=tip                        [default: 0] Optional "tip" (in base value) for faster block inclusion.

See code: src/commands/advanced-transactions/constructTxCall.ts

joystream-cli advanced-transactions:constructUnsignedTx

Create a simple unsigned transaction, for signing offline.

USAGE
  $ joystream-cli advanced-transactions:constructUnsignedTx

OPTIONS
  -o, --output=output              (required) Path to the file where the output JSON should be saved.
  --address=address                (required) The address that is performing the transaction.

  --lifetime=lifetime              Lifetime of the transaction, from constructed to included in a block, in blocks
                                   before it becomes invalid. Must be a power of two between 4 and 65536

  --method=method                  (required) The method of the extrinsic

  --module=module                  (required) The module of the extrinsic

  --nonceIncrement=nonceIncrement  [default: 0] If you are preparing multiple transactions from the samme account,
                                   before broadcasting them, you need to increase the nonce by 1 for each. This value
                                   will be added to the nonce read from the chain.

  --tip=tip                        [default: 0] Optional "tip" (in base value) for faster block inclusion.

See code: src/commands/advanced-transactions/constructUnsignedTx.ts

joystream-cli advanced-transactions:constructUnsignedTxApproveMs

Approve a transaction from a multisig account, as initiated by another signer.

USAGE
  $ joystream-cli advanced-transactions:constructUnsignedTxApproveMs

OPTIONS
  -i, --input=input                  Path to JSON file to use as input (if not specified - the input can be provided
                                     interactively)

  -o, --output=output                (required) Path to the file where the output JSON should be saved.

  --addressMs=addressMs              The address of the multisig that is performing the transaction.

  --addressSigner=addressSigner      (required) The address of the signer that is approving the multisig transaction.

  --inputCall=inputCall              The hex-encoded call that is to be executed by the multisig if successfull.

  --inputCallFile=inputCallFile      Path to a JSON file with the hex-encoded call that is to be executed by the
                                     multisig if successfull.

  --lifetime=lifetime                Lifetime of the transaction, from constructed to included in a block, in blocks
                                     before it becomes invalid. Must be a power of two between 4 and 65536

  --nonceIncrement=nonceIncrement    [default: 0] If you are preparing multiple transactions from the samme account,
                                     before broadcasting them, you need to increase the nonce by 1 for each. This value
                                     will be added to the nonce read from the chain.

  --others=others                    Comma separated list of the accounts (other than the addressSigner) who can approve
                                     this call. Ignored if "input" is provided.

  --threshold=threshold              How many (m) of the n signatories (signer+others), are required to sign/approve the
                                     transaction. Ignored if "input" is provided.

  --timepointHeight=timepointHeight  Reference to the blockheight of the transaction that initiated the multisig
                                     transaction. Ignored if "input" is provided.

  --timepointIndex=timepointIndex    Reference to the extrinsic index in the "timepointHeight block. Ignored if "input"
                                     is provided.

  --tip=tip                          [default: 0] Optional "tip" (in base value) for faster block inclusion.

See code: src/commands/advanced-transactions/constructUnsignedTxApproveMs.ts

joystream-cli advanced-transactions:constructUnsignedTxFinalApproveMs

Final approval of a transaction from a multisig account, as initiated by another signer.

USAGE
  $ joystream-cli advanced-transactions:constructUnsignedTxFinalApproveMs

OPTIONS
  -i, --input=input                  Path to JSON file to use as input (if not specified - the input can be provided
                                     interactively)

  -o, --output=output                (required) Path to the file where the output JSON should be saved.

  --addressMs=addressMs              The address of the multisig that is performing the transaction.

  --addressSigner=addressSigner      (required) The address of the signer that is approving the multisig transaction.

  --inputCall=inputCall              The hex-encoded call that is to be executed by the multisig if successfull.

  --inputCallFile=inputCallFile      Path to a JSON file with the hex-encoded call that is to be executed by the
                                     multisig if successfull.

  --lifetime=lifetime                Lifetime of the transaction, from constructed to included in a block, in blocks
                                     before it becomes invalid. Must be a power of two between 4 and 65536

  --nonceIncrement=nonceIncrement    [default: 0] If you are preparing multiple transactions from the samme account,
                                     before broadcasting them, you need to increase the nonce by 1 for each. This value
                                     will be added to the nonce read from the chain.

  --others=others                    Comma separated list of the accounts (other than the addressSigner) who can approve
                                     this call. Ignored if "input" is provided.

  --threshold=threshold              How many (m) of the n signatories (signer+others), are required to sign/approve the
                                     transaction. Ignored if "input" is provided.

  --timepointHeight=timepointHeight  Reference to the blockheight of the transaction that initiated the multisig
                                     transaction. Ignored if "input" is provided.

  --timepointIndex=timepointIndex    Reference to the extrinsic index in the "timepointHeight block. Ignored if "input"
                                     is provided.

  --tip=tip                          [default: 0] Optional "tip" (in base value) for faster block inclusion.

See code: src/commands/advanced-transactions/constructUnsignedTxFinalApproveMs.ts

joystream-cli advanced-transactions:constructUnsignedTxInitiateMs

Initiate a call (transaction) from a multisig account, as the first signer.

USAGE
  $ joystream-cli advanced-transactions:constructUnsignedTxInitiateMs

OPTIONS
  -i, --input=input                Path to JSON file to use as input (if not specified - the input can be provided
                                   interactively)

  -o, --output=output              (required) Path to the file where the output JSON should be saved.

  --addressMs=addressMs            The address of the multisig that is performing the transaction.

  --addressSigner=addressSigner    (required) The address of the signer that is initiating the multisig transaction.

  --inputCall=inputCall            The hex-encoded call that is to be executed by the multisig if successfull.

  --inputCallFile=inputCallFile    Path to a JSON file with the hex-encoded call that is to be executed by the multisig
                                   if successfull.

  --lifetime=lifetime              Lifetime of the transaction, from constructed to included in a block, in blocks
                                   before it becomes invalid. Must be a power of two between 4 and 65536

  --nonceIncrement=nonceIncrement  [default: 0] If you are preparing multiple transactions from the samme account,
                                   before broadcasting them, you need to increase the nonce by 1 for each. This value
                                   will be added to the nonce read from the chain.

  --others=others                  Comma separated list of the accounts (other than the addressSigner) who can approve
                                   this call. Ignored if "input" is provided.

  --threshold=threshold            How many (m) of the n signatories (signer+others), are required to sign/approve the
                                   transaction. Ignored if "input" is provided.

  --tip=tip                        [default: 0] Optional "tip" (in base value) for faster block inclusion.

See code: src/commands/advanced-transactions/constructUnsignedTxInitiateMs.ts

joystream-cli advanced-transactions:constructWrappedTxCall

Construct a wrapped transaction call.

USAGE
  $ joystream-cli advanced-transactions:constructWrappedTxCall

OPTIONS
  -o, --output=output              (required) Path to the file where the output JSON should be saved.
  --address=address                (required) The address that is performing the (final) transaction.
  --fullOutput=fullOutput          Path to the file where the full output should be saved
  --inputCall=inputCall            The hex-encoded call that is to be executed by the multisig if successfull.

  --inputCallFile=inputCallFile    Path to a JSON file with the hex-encoded call that is to be executed by the multisig
                                   if successfull.

  --lifetime=lifetime              [default: 64] Lifetime of the transaction, from creation to included on chain, in
                                   blocks before it becomes invalid.

  --method=method                  (required) The method of the extrinsic

  --module=module                  (required) The module (a.k.a. section) of the extrinsic

  --nonceIncrement=nonceIncrement  [default: 0] If you are preparing multiple transactions from the samme account,
                                   before broadcasting them, you need to increase the nonce by 1 for each. This value
                                   will be added to the nonce read from the chain.

  --tip=tip                        [default: 0] Optional "tip" (in base value) for faster block inclusion.

See code: src/commands/advanced-transactions/constructWrappedTxCall.ts

joystream-cli api:getQueryNodeEndpoint

Get current query node endpoint

USAGE
  $ joystream-cli api:getQueryNodeEndpoint

See code: src/commands/api/getQueryNodeEndpoint.ts

joystream-cli api:getUri

Get current api WS provider uri

USAGE
  $ joystream-cli api:getUri

See code: src/commands/api/getUri.ts

joystream-cli api:inspect

Lists available node API modules/methods and/or their description(s), or calls one of the API methods (depending on provided arguments and flags)

USAGE
  $ joystream-cli api:inspect

OPTIONS
  -M, --module=module
      Specifies the api module, ie. "system", "staking" etc.
      If no "--method" flag is provided then all methods in that module will be listed along with the descriptions.

  -a, --callArgs=callArgs
      Specifies the arguments to use when calling a method. Multiple arguments can be separated with a comma, ie.
      "-a=arg1,arg2".
      You can omit this flag even if the method requires some aguments.
      In that case you will be promted to provide value for each required argument.
      Ommiting this flag is recommended when input parameters are of more complex types (and it's hard to specify them as
      just simple comma-separated strings)

  -e, --exec
      Provide this flag if you want to execute the actual call, instead of displaying the method description (which is
      default)

  -m, --method=method
      Specifies the api method to call/describe.

  -t, --type=type
      Specifies the type/category of the inspected request (ie. "query", "consts" etc.).
      If no "--module" flag is provided then all available modules in that type will be listed.
      If this flag is not provided then all available types will be listed.

EXAMPLES
  $ api:inspect
  $ api:inspect -t=query
  $ api:inspect -t=query -M=members
  $ api:inspect -t=query -M=members -m=membershipById
  $ api:inspect -t=query -M=members -m=membershipById -e
  $ api:inspect -t=query -M=members -m=membershipById -e -a=1

See code: src/commands/api/inspect.ts

joystream-cli api:setQueryNodeEndpoint [ENDPOINT]

Set query node endpoint

USAGE
  $ joystream-cli api:setQueryNodeEndpoint [ENDPOINT]

ARGUMENTS
  ENDPOINT  Query node endpoint for the CLI to use

See code: src/commands/api/setQueryNodeEndpoint.ts

joystream-cli api:setUri [URI]

Set api WS provider uri

USAGE
  $ joystream-cli api:setUri [URI]

ARGUMENTS
  URI  Uri of the node api WS provider (if skipped, a prompt will be displayed)

See code: src/commands/api/setUri.ts

joystream-cli apps:createApp

Creates app for current member

USAGE
  $ joystream-cli apps:createApp

OPTIONS
  -i, --input=input          Path to JSON file containing app details
  -s, --skip                 If true command won't prompt missing fields
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible

See code: src/commands/apps/createApp.ts

joystream-cli apps:updateApp

Updates app of given ID

USAGE
  $ joystream-cli apps:updateApp

OPTIONS
  -i, --input=input          Path to JSON file containing app details
  -s, --skip                 If true command won't prompt missing fields
  --appId=appId              (required) ID of the app to update
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible

See code: src/commands/apps/updateApp.ts

joystream-cli autocomplete [SHELL]

display autocomplete installation instructions

USAGE
  $ joystream-cli autocomplete [SHELL]

ARGUMENTS
  SHELL  shell type

OPTIONS
  -r, --refresh-cache  Refresh cache (ignores displaying instructions)

EXAMPLES
  $ joystream-cli autocomplete
  $ joystream-cli autocomplete bash
  $ joystream-cli autocomplete zsh
  $ joystream-cli autocomplete --refresh-cache

See code: @oclif/plugin-autocomplete

joystream-cli content:addCuratorToGroup [GROUPID] [CURATORID]

Add Curator to existing Curator Group.

USAGE
  $ joystream-cli content:addCuratorToGroup [GROUPID] [CURATORID]

ARGUMENTS
  GROUPID    ID of the Curator Group
  CURATORID  ID of the curator

OPTIONS
  -p,
  --permissions=UpdateChannelMetadata|ManageNonVideoChannelAssets|ManageChannelCollaborators|UpdateVideoMetadata|AddVide
  o|ManageVideoAssets|DeleteChannel|DeleteVideo|ManageVideoNfts|AgentRemark|TransferChannel|ClaimChannelReward|WithdrawF
  romChannelBalance|IssueCreatorToken|ClaimCreatorTokenPatronage|InitAndManageCreatorTokenSale|CreatorTokenIssuerTransfe
  r|MakeCreatorTokenPermissionless|ReduceCreatorTokenPatronageRate|ManageRevenueSplits|DeissueCreatorToken|AmmControl
      List of permissions to associate with the curator, e.g. -p ManageChannelCollaborators UpdateVideoMetadata

  --useMemberId=useMemberId
      Try using the specified member id as context whenever possible

  --useWorkerId=useWorkerId
      Try using the specified worker id as context whenever possible

See code: src/commands/content/addCuratorToGroup.ts

joystream-cli content:channel CHANNELID

Show Channel details by id.

USAGE
  $ joystream-cli content:channel CHANNELID

ARGUMENTS
  CHANNELID  Name or ID of the Channel

OPTIONS
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/channel.ts

joystream-cli content:channelPayoutProof CHANNELID

Show payout information for a channel.

USAGE
  $ joystream-cli content:channelPayoutProof CHANNELID

ARGUMENTS
  CHANNELID  ID of the Channel

OPTIONS
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/channelPayoutProof.ts

joystream-cli content:channelPayoutProofAtByteOffset BYTEOFFSET

Get channel payout record from serialized payload at given byte.

USAGE
  $ joystream-cli content:channelPayoutProofAtByteOffset BYTEOFFSET

ARGUMENTS
  BYTEOFFSET  Byte offset of payout record from start of payload

OPTIONS
  --path=path  Path to the serialized payload file
  --url=url    URL to the serialized payload file

See code: src/commands/content/channelPayoutProofAtByteOffset.ts

joystream-cli content:channelPayoutsPayloadHeader

Get header from serialized payload file.

USAGE
  $ joystream-cli content:channelPayoutsPayloadHeader

OPTIONS
  --path=path  Path to the protobuf serialized payload file
  --url=url    URL to the protobuf serialized payload file

See code: src/commands/content/channelPayoutsPayloadHeader.ts

joystream-cli content:channels

List existing content directory channels.

USAGE
  $ joystream-cli content:channels

OPTIONS
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/channels.ts

joystream-cli content:claimChannelReward CHANNELID

Claim channel payout reward for a given channel id.

USAGE
  $ joystream-cli content:claimChannelReward CHANNELID

ARGUMENTS
  CHANNELID  ID of the Channel

OPTIONS
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/claimChannelReward.ts

joystream-cli content:createChannel

Create channel inside content directory.

USAGE
  $ joystream-cli content:createChannel

OPTIONS
  -i, --input=input                (required) Path to JSON file to use as input
  --context=(Member|CuratorGroup)  Actor context to execute the command in (Member/CuratorGroup)
  --useMemberId=useMemberId        Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId        Try using the specified worker id as context whenever possible

See code: src/commands/content/createChannel.ts

joystream-cli content:createCuratorGroup

Create new Curator Group.

USAGE
  $ joystream-cli content:createCuratorGroup

OPTIONS
  -p, --permissions=permissions  Path to JSON file containing moderation permissions by channel privilege level to use
                                 as input

  --status=(ACTIVE|INACTIVE)     (required) Status of newly created Curator Group: (ACTIVE/INACTIVE)

  --useMemberId=useMemberId      Try using the specified member id as context whenever possible

  --useWorkerId=useWorkerId      Try using the specified worker id as context whenever possible

See code: src/commands/content/createCuratorGroup.ts

joystream-cli content:createVideo

Create video (non nft) under specific channel inside content directory.

USAGE
  $ joystream-cli content:createVideo

OPTIONS
  -c, --channelId=channelId               (required) ID of the Channel
  -i, --input=input                       (required) Path to JSON file to use as input
  --context=(Owner|Curator|Collaborator)  Actor context to execute the command in (Owner/Curator/Collaborator)
  --useMemberId=useMemberId               Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId               Try using the specified worker id as context whenever possible

See code: src/commands/content/createVideo.ts

joystream-cli content:createVideoCategory NAME [DESCRIPTION] [PARENTCATEGORYID]

Create video category inside content directory.

USAGE
  $ joystream-cli content:createVideoCategory NAME [DESCRIPTION] [PARENTCATEGORYID]

ARGUMENTS
  NAME              Video category name
  DESCRIPTION       Video category description
  PARENTCATEGORYID  Parent category ID

OPTIONS
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/createVideoCategory.ts

joystream-cli content:curatorGroup ID

Show Curator Group details by ID.

USAGE
  $ joystream-cli content:curatorGroup ID

ARGUMENTS
  ID  ID of the Curator Group

OPTIONS
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/curatorGroup.ts

joystream-cli content:curatorGroups

List existing Curator Groups.

USAGE
  $ joystream-cli content:curatorGroups

OPTIONS
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/curatorGroups.ts

joystream-cli content:deleteChannel

Delete the channel and optionally all associated data objects.

USAGE
  $ joystream-cli content:deleteChannel

OPTIONS
  -c, --channelId=channelId               (required) ID of the Channel
  -f, --force                             Force-remove all associated channel data objects
  --context=(Owner|Curator|Collaborator)  Actor context to execute the command in (Owner/Curator/Collaborator)
  --useMemberId=useMemberId               Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId               Try using the specified worker id as context whenever possible

See code: src/commands/content/deleteChannel.ts

joystream-cli content:deleteChannelAssetsAsModerator

Delete the channel assets.

USAGE
  $ joystream-cli content:deleteChannelAssetsAsModerator

OPTIONS
  -a, --assetIds=assetIds    (required) List of data object IDs to delete
  -c, --channelId=channelId  (required) ID of the Channel
  -r, --rationale=rationale  (required) Reason for removing the channel assets by moderator
  --context=(Lead|Curator)   Actor context to execute the command in (Lead/Curator)
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/deleteChannelAssetsAsModerator.ts

joystream-cli content:deleteVideo

Delete the video and optionally all associated data objects.

USAGE
  $ joystream-cli content:deleteVideo

OPTIONS
  -f, --force                             Force-remove all associated video data objects
  -v, --videoId=videoId                   (required) ID of the Video
  --context=(Owner|Curator|Collaborator)  Actor context to execute the command in (Owner/Curator/Collaborator)
  --useMemberId=useMemberId               Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId               Try using the specified worker id as context whenever possible

See code: src/commands/content/deleteVideo.ts

joystream-cli content:deleteVideoAssetsAsModerator

Delete the video assets.

USAGE
  $ joystream-cli content:deleteVideoAssetsAsModerator

OPTIONS
  -a, --assetIds=assetIds    (required) List of data object IDs to delete
  -r, --rationale=rationale  (required) Reason for removing the video assets by moderator
  -v, --videoId=videoId      (required) ID of the Video
  --context=(Lead|Curator)   Actor context to execute the command in (Lead/Curator)
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/deleteVideoAssetsAsModerator.ts

joystream-cli content:directChannelPayment

Make direct payment to channel's reward account by any member .

USAGE
  $ joystream-cli content:directChannelPayment

OPTIONS
  -r, --rationale=rationale      (required) Reason for the payment

  -v, --videoId=videoId          video ID for which payment is being made. If not provided, payment is supposed to be a
                                 channel wide tip

  --amount=amount                (required) JOY amount to be paid

  --channelId=channelId          ID of the channel to be paid

  --rewardAccount=rewardAccount  Reward account of the channel to be paid

  --useMemberId=useMemberId      Try using the specified member id as context whenever possible

  --useWorkerId=useWorkerId      Try using the specified worker id as context whenever possible

See code: src/commands/content/directChannelPayment.ts

joystream-cli content:generateChannelPayoutsCommitment

Generate merkle root (commitment) from channel payouts payload.

USAGE
  $ joystream-cli content:generateChannelPayoutsCommitment

OPTIONS
  --path=path                Path to the serialized payload file
  --url=url                  URL to the serialized payload file
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/generateChannelPayoutsCommitment.ts

joystream-cli content:generateChannelPayoutsPayload

Generate serialized channel payouts payload from JSON input.

USAGE
  $ joystream-cli content:generateChannelPayoutsPayload

OPTIONS
  -i, --input=input          (required) Path to JSON file containing channel payouts vector
  -o, --out=out              (required) Path to output file where serialized channel payouts payload will be saved
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/generateChannelPayoutsPayload.ts

joystream-cli content:getPayoutsOnchainCommitment

Get on-chain commitment (merkle root) for channel payouts payload.

USAGE
  $ joystream-cli content:getPayoutsOnchainCommitment

OPTIONS
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/getPayoutsOnchainCommitment.ts

joystream-cli content:removeChannelAssets

Remove data objects associated with the channel or any of its videos.

USAGE
  $ joystream-cli content:removeChannelAssets

OPTIONS
  -c, --channelId=channelId               (required) ID of the Channel
  -o, --objectId=objectId                 (required) ID of an object to remove
  --context=(Owner|Curator|Collaborator)  Actor context to execute the command in (Owner/Curator/Collaborator)
  --useMemberId=useMemberId               Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId               Try using the specified worker id as context whenever possible

See code: src/commands/content/removeChannelAssets.ts

joystream-cli content:removeCuratorFromGroup [GROUPID] [CURATORID]

Remove Curator from Curator Group.

USAGE
  $ joystream-cli content:removeCuratorFromGroup [GROUPID] [CURATORID]

ARGUMENTS
  GROUPID    ID of the Curator Group
  CURATORID  ID of the curator

OPTIONS
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/removeCuratorFromGroup.ts

joystream-cli content:reuploadAssets

Allows reuploading assets that were not successfully uploaded during channel/video creation

USAGE
  $ joystream-cli content:reuploadAssets

OPTIONS
  -i, --input=input          (required) Path to JSON file containing array of assets to reupload (contentIds and paths)
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/reuploadAssets.ts

joystream-cli content:setChannelVisibilityAsModerator

Set channel visibility as moderator.

USAGE
  $ joystream-cli content:setChannelVisibilityAsModerator

OPTIONS
  -c, --channelId=channelId      (required) ID of the channel
  -r, --rationale=rationale      (required) Reason for changing visibility of channel
  -s, --status=(VISIBLE|HIDDEN)  (required) The visibility status of the channel
  --context=(Lead|Curator)       Actor context to execute the command in (Lead/Curator)
  --useMemberId=useMemberId      Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId      Try using the specified worker id as context whenever possible

See code: src/commands/content/setChannelVisibilityAsModerator.ts

joystream-cli content:setCuratorGroupStatus [ID] [STATUS]

Set Curator Group status (Active/Inactive).

USAGE
  $ joystream-cli content:setCuratorGroupStatus [ID] [STATUS]

ARGUMENTS
  ID      ID of the Curator Group
  STATUS  New status of the group (1 - active, 0 - inactive)

OPTIONS
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/setCuratorGroupStatus.ts

joystream-cli content:setVideoVisibilityAsModerator

Set video visibility as moderator.

USAGE
  $ joystream-cli content:setVideoVisibilityAsModerator

OPTIONS
  -r, --rationale=rationale      (required) Reason for changing visibility of video
  -s, --status=(VISIBLE|HIDDEN)  (required) The visibility status of the video
  -v, --videoId=videoId          (required) ID of the Video
  --context=(Lead|Curator)       Actor context to execute the command in (Lead/Curator)
  --useMemberId=useMemberId      Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId      Try using the specified worker id as context whenever possible

See code: src/commands/content/setVideoVisibilityAsModerator.ts

joystream-cli content:updateChannel CHANNELID

Update existing content directory channel.

USAGE
  $ joystream-cli content:updateChannel CHANNELID

ARGUMENTS
  CHANNELID  ID of the Channel

OPTIONS
  -i, --input=input                       (required) Path to JSON file to use as input
  --context=(Owner|Curator|Collaborator)  Actor context to execute the command in (Owner/Curator/Collaborator)
  --useMemberId=useMemberId               Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId               Try using the specified worker id as context whenever possible

See code: src/commands/content/updateChannel.ts

joystream-cli content:updateChannelPayoutsProposal

Create channel payouts proposal.

USAGE
  $ joystream-cli content:updateChannelPayoutsProposal

OPTIONS
  -b, --exactExecutionBlock=exactExecutionBlock  The Block at which the proposal should be automatically executed
  -d, --description=description                  (required) Description of the proposal
  -e, --channelCashoutsEnabled                   Whether cashouts be enabled/disabled
  -p, --payloadFilePath=payloadFilePath          Path to protobuf serialized file containing channel payouts payload
  -s, --stakingAccountId=stakingAccountId        (required) Proposer staking account Id
  -t, --title=title                              (required) Title of the proposal
  --max=max                                      Maximum cashout amount allowed to a channel
  --min=min                                      Minimum cashout amount allowed to a channel
  --useMemberId=useMemberId                      Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId                      Try using the specified worker id as context whenever possible

See code: src/commands/content/updateChannelPayoutsProposal.ts

joystream-cli content:updateChannelStateBloatBond VALUE

Update channel state bloat bond.

USAGE
  $ joystream-cli content:updateChannelStateBloatBond VALUE

ARGUMENTS
  VALUE  New state bloat bond value

OPTIONS
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/updateChannelStateBloatBond.ts

joystream-cli content:updateCuratorGroupPermissions [ID]

Update existing Curator Group.

USAGE
  $ joystream-cli content:updateCuratorGroupPermissions [ID]

ARGUMENTS
  ID  ID of the Curator Group

OPTIONS
  -p, --permissions=permissions  (required) Path to JSON file containing moderation permissions by channel privilege
                                 level to use as input

  --useMemberId=useMemberId      Try using the specified member id as context whenever possible

  --useWorkerId=useWorkerId      Try using the specified worker id as context whenever possible

See code: src/commands/content/updateCuratorGroupPermissions.ts

joystream-cli content:updateVideo VIDEOID

Update video under specific id.

USAGE
  $ joystream-cli content:updateVideo VIDEOID

ARGUMENTS
  VIDEOID  ID of the Video

OPTIONS
  -i, --input=input                       (required) Path to JSON file to use as input
  --context=(Owner|Curator|Collaborator)  Actor context to execute the command in (Owner/Curator/Collaborator)
  --useMemberId=useMemberId               Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId               Try using the specified worker id as context whenever possible

See code: src/commands/content/updateVideo.ts

joystream-cli content:updateVideoStateBloatBond VALUE

Update video state bloat bond.

USAGE
  $ joystream-cli content:updateVideoStateBloatBond VALUE

ARGUMENTS
  VALUE  New state bloat bond value

OPTIONS
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/updateVideoStateBloatBond.ts

joystream-cli content:video VIDEOID

Show Video details by id.

USAGE
  $ joystream-cli content:video VIDEOID

ARGUMENTS
  VIDEOID  ID of the Video

OPTIONS
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/video.ts

joystream-cli content:videos [CHANNELID]

List existing content directory videos.

USAGE
  $ joystream-cli content:videos [CHANNELID]

ARGUMENTS
  CHANNELID  ID of the Channel

OPTIONS
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible
  --useWorkerId=useWorkerId  Try using the specified worker id as context whenever possible

See code: src/commands/content/videos.ts

joystream-cli council:fundBudget

Fund council budget by some member.

USAGE
  $ joystream-cli council:fundBudget

OPTIONS
  --amount=amount            (required) Funding amount
  --rationale=rationale      (required) Reason of funding the budget
  --useMemberId=useMemberId  Try using the specified member id as context whenever possible

See code: src/commands/council/fundBudget.ts

joystream-cli fee-profile:addForumPost

Create fee profile of forum.add_post extrinsic.

USAGE
  $ joystream-cli fee-profile:addForumPost

OPTIONS
  -e, --editable           If specified - `editable` parameter is set to true when estimating the costs
  -j, --joyPrice=joyPrice  [default: 6] Joy price in USD cents for estimating costs in USD
  -p, --postLen=postLen    [default: 200] Post length to use for estimating tx fee

See code: src/commands/fee-profile/addForumPost.ts

joystream-cli fee-profile:addVideoComment

Create fee profile of members.member_remark extrinsic (video comment case).

USAGE
  $ joystream-cli fee-profile:addVideoComment

OPTIONS
  -c, --commentLen=commentLen  [default: 50] Comment length to use for estimating tx fee
  -j, --joyPrice=joyPrice      [default: 6] Joy price in USD cents for estimating costs in USD

See code: src/commands/fee-profile/addVideoComment.ts

joystream-cli fee-profile:buyMembership

Create fee profile of members.buy_membership extrinsic.

USAGE
  $ joystream-cli fee-profile:buyMembership

OPTIONS
  -E, --externalResourcesCount=externalResourcesCount  [default: 1] Number of external resources (part of metadata) to
                                                       use for estimating tx fee

  -a, --aboutLength=aboutLength                        [default: 0] Length of the member's about text (part of metadata)
                                                       to use for estimating tx fee

  -e, --externalResourceLength=externalResourceLength  [default: 25] Length of a single external resource url (part of
                                                       metadata) to use for estimating tx fee

  -h, --handleLength=handleLength                      [default: 10] Length of the membership handle to use for
                                                       estimating tx fee

  -j, --joyPrice=joyPrice                              [default: 6] Joy price in USD cents for estimating costs in USD

  -n, --nameLength=nameLength                          [default: 10] Length of the member's name (part of metadata) to
                                                       use for estimating tx fee

  -u, --avatarUriLength=avatarUriLength                [default: 25] Length of the member's avatar uri (part of
                                                       metadata) to use for estimating tx fee

See code: src/commands/fee-profile/buyMembership.ts

joystream-cli fee-profile:createChannel

Create fee profile of content.create_channel extrinsic.

USAGE
  $ joystream-cli fee-profile:createChannel

OPTIONS
  -C, --collaboratorsNum=collaboratorsNum              [default: 0] Number of channel collaborators to use for
                                                       estimating tx fee

  -D, --distributionBucketsNum=distributionBucketsNum  Number of distribution buckets to use for estimating tx fee.
                                                       By default this number will be based on the current chain's
                                                       dynamic bag policy for channel bags

  -S, --storageBucketsNum=storageBucketsNum            Number of storage buckets to use for estimating tx fee.
                                                       By default this number will be based on the current chain's
                                                       dynamic bag policy for channel bags

  -a, --avatarSize=avatarSize                          [default: 1] Avatar size in MB to use when estimating the