@joystream/cli v1.5.1
@joystream/cli
Command Line Interface for Joystream community and governance activities
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 COMMANDAlternatively:
$ yarn workspace @joystream/cli link
$ joystream-cli COMMANDFirst 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:
- Set the correct Joystream node websocket endpoint. You can do this by executing
api:setUriand choosing one of the suggested endpoints of providing your own url. To verify the currently used Joystream node websocket endpoint you can executeapi:getUri. - 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:createChannelwill need to fetch the available storage node endnpoints in order to upload the channel assets). In order to do that, executeapi:setQueryNodeEndpointand choose one of the suggested endpoints or provide your own url. You can useapi:getQueryNodeEndpointany time to verify the currently set endpoint. - In order to use your existing keys within the CLI, you can import them using
account:importcommand. 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 theaccount:importcommand 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 executeworking-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. - 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. Executingautocompletecommand will provide you the instructions on how to set this up. - That's it! The CLI is now be fully set up! Feel free to use the
--helpflag 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:createjoystream-cli account:export DESTPATHjoystream-cli account:forgetjoystream-cli account:importjoystream-cli account:info [ADDRESS]joystream-cli account:listjoystream-cli account:transferTokensjoystream-cli advanced-transactions:constructSetCodeCalljoystream-cli advanced-transactions:constructTxCalljoystream-cli advanced-transactions:constructUnsignedTxjoystream-cli advanced-transactions:constructUnsignedTxApproveMsjoystream-cli advanced-transactions:constructUnsignedTxFinalApproveMsjoystream-cli advanced-transactions:constructUnsignedTxInitiateMsjoystream-cli advanced-transactions:constructWrappedTxCalljoystream-cli api:getQueryNodeEndpointjoystream-cli api:getUrijoystream-cli api:inspectjoystream-cli api:setQueryNodeEndpoint [ENDPOINT]joystream-cli api:setUri [URI]joystream-cli apps:createAppjoystream-cli apps:updateAppjoystream-cli autocomplete [SHELL]joystream-cli content:addCuratorToGroup [GROUPID] [CURATORID]joystream-cli content:channel CHANNELIDjoystream-cli content:channelPayoutProof CHANNELIDjoystream-cli content:channelPayoutProofAtByteOffset BYTEOFFSETjoystream-cli content:channelPayoutsPayloadHeaderjoystream-cli content:channelsjoystream-cli content:claimChannelReward CHANNELIDjoystream-cli content:createChanneljoystream-cli content:createCuratorGroupjoystream-cli content:createVideojoystream-cli content:createVideoCategory NAME [DESCRIPTION] [PARENTCATEGORYID]joystream-cli content:curatorGroup IDjoystream-cli content:curatorGroupsjoystream-cli content:deleteChanneljoystream-cli content:deleteChannelAssetsAsModeratorjoystream-cli content:deleteVideojoystream-cli content:deleteVideoAssetsAsModeratorjoystream-cli content:directChannelPaymentjoystream-cli content:generateChannelPayoutsCommitmentjoystream-cli content:generateChannelPayoutsPayloadjoystream-cli content:getPayoutsOnchainCommitmentjoystream-cli content:removeChannelAssetsjoystream-cli content:removeCuratorFromGroup [GROUPID] [CURATORID]joystream-cli content:reuploadAssetsjoystream-cli content:setChannelVisibilityAsModeratorjoystream-cli content:setCuratorGroupStatus [ID] [STATUS]joystream-cli content:setVideoVisibilityAsModeratorjoystream-cli content:updateChannel CHANNELIDjoystream-cli content:updateChannelPayoutsProposaljoystream-cli content:updateChannelStateBloatBond VALUEjoystream-cli content:updateCuratorGroupPermissions [ID]joystream-cli content:updateVideo VIDEOIDjoystream-cli content:updateVideoStateBloatBond VALUEjoystream-cli content:video VIDEOIDjoystream-cli content:videos [CHANNELID]joystream-cli council:fundBudgetjoystream-cli fee-profile:addForumPostjoystream-cli fee-profile:addVideoCommentjoystream-cli fee-profile:buyMembershipjoystream-cli fee-profile:createChanneljoystream-cli fee-profile:createForumThreadjoystream-cli fee-profile:createVideojoystream-cli fee-profile:deleteChanneljoystream-cli fee-profile:deleteForumPostjoystream-cli fee-profile:deleteForumThreadjoystream-cli fee-profile:deleteVideojoystream-cli forum:addPostjoystream-cli forum:categoriesjoystream-cli forum:categoryjoystream-cli forum:createCategoryjoystream-cli forum:createThreadjoystream-cli forum:deleteCategoryjoystream-cli forum:moderatePostjoystream-cli forum:moderateThreadjoystream-cli forum:moveThreadjoystream-cli forum:postsjoystream-cli forum:setStickiedThreadsjoystream-cli forum:threadsjoystream-cli forum:updateCategoryArchivalStatusjoystream-cli forum:updateCategoryModeratorStatusjoystream-cli help [COMMAND]joystream-cli membership:addStakingAccountjoystream-cli membership:buyjoystream-cli membership:detailsjoystream-cli membership:memberRemark MESSAGEjoystream-cli membership:updatejoystream-cli membership:updateAccountsjoystream-cli sign-offline:signUnsignedTxjoystream-cli staking:validatejoystream-cli util:decodeMessagejoystream-cli util:encodeMessagejoystream-cli util:messageStructurejoystream-cli working-groups:application WGAPPLICATIONIDjoystream-cli working-groups:applyjoystream-cli working-groups:cancelOpening OPENINGIDjoystream-cli working-groups:createOpeningjoystream-cli working-groups:decreaseWorkerStake WORKERID AMOUNTjoystream-cli working-groups:evictWorker WORKERIDjoystream-cli working-groups:fillOpeningjoystream-cli working-groups:increaseStake AMOUNTjoystream-cli working-groups:leaveRolejoystream-cli working-groups:openingjoystream-cli working-groups:openingsjoystream-cli working-groups:overviewjoystream-cli working-groups:removeUpcomingOpeningjoystream-cli working-groups:setDefaultGroupjoystream-cli working-groups:slashWorker WORKERID AMOUNTjoystream-cli working-groups:updateGroupMetadatajoystream-cli working-groups:updateRewardAccount [ADDRESS]joystream-cli working-groups:updateRoleAccount [ADDRESS]joystream-cli working-groups:updateWorkerReward WORKERID NEWREWARDjoystream-cli working-groups:verifyValidator MEMBERID
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 exportSee 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 removeSee 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:inspectSee code: src/commands/account/info.ts
joystream-cli account:list
List all available accounts
USAGE
$ joystream-cli account:listSee 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:getQueryNodeEndpointSee code: src/commands/api/getQueryNodeEndpoint.ts
joystream-cli api:getUri
Get current api WS provider uri
USAGE
$ joystream-cli api:getUriSee 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=1See 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 useSee 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 possibleSee 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 possibleSee 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-cacheSee 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 possibleSee 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 possibleSee 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 possibleSee 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 fileSee 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 fileSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 possibleSee 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 feeSee 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 USDSee 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 feeSee 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 the2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago