iExec SDK CLI
May 19, 2026 · View on GitHub
iExec SDK CLI
Use the iExec decentralized marketplace for off-chain computing from your terminal.
Content
Install
All three major OS are supported (linux, OSX, windows).
Using Nodejs
npm -g install iexec # install the cli
iexec --version
iexec --help
Using Docker
Requirements: Docker.
# For Linux users
echo 'alias iexec='"'"'docker run -e DEBUG=$DEBUG --interactive --tty --rm -v /tmp:/tmp -v $(pwd):/iexec-project -v /home/$(whoami)/.ethereum/keystore:/home/node/.ethereum/keystore -w /iexec-project iexechub/iexec-sdk:latest'"'"'' >> ~/.bash_aliases && source ~/.bashrc
# For Mac OSX users
echo 'alias iexec='"'"'docker run -e DEBUG=$DEBUG --interactive --tty --rm -v /tmp:/tmp -v $(pwd):/iexec-project -v /Users/$(whoami)/Library/Ethereum/keystore:/home/node/.ethereum/keystore -w /iexec-project iexechub/iexec-sdk:latest'"'"'' >> ~/.bash_profile && source ~/.bash_profile
Now run iexec --version to check all is working.
Upgrade
- Nodejs: run
npm -g install iexec - Docker: run
docker pull iexechub/iexec-sdk
Quick start
- Init project
- SDK CLI for Dapp developers
- SDK CLI for Dataset providers
- SDK CLI for Workerpools
- SDK CLI for Requesters
- SDK CLI for workers
Init project
required steps before following any other workflow.
iexec init # create all required files
iexec wallet show # show your wallet
iexec storage init # initialize your remote storage
NB: iExec SDK CLI access the blockchain through RPC nodes Default RPCs are provided for convenience. As these RPC nodes are shared across all users and are subject to limitations, you must use your own API keys or better your own node.
Get API keys for backend services:
You can add your RPC as
hostin thechains.jsonconfiguration file:{ "default": ..., "chains": { ... "arbitrum-mainnet": { "host": "https://<your_node_url>", } } }Check your current host:
iexec info
SDK CLI for Dapp developers
First go through Init project
Deploy an app
iexec app count # check if you have already deployed apps
iexec app init # reset app fields in iexec.json
iexec app deploy # deploy app on Ethereum and get an address
iexec app show # show details of deployed app
Run an app
iexec app run [address] # run an application on iExec at market price
Sell your app on the Marketplace
iexec orderbook app <address> # check if you have valid sell orders for your app on the Marketplace
iexec app publish [address] # publish an apporder on the Marketplace and get an orderHash
iexec order show --app [orderHash] # show your order on the Marketplace
iexec order cancel --app <orderHash> # cancel your order
SDK CLI for Dataset providers
First go through Init project
Encrypt your dataset
cp 'myAwesomeDataset.file' ./datasets/original # copy your dataset file or folder into the dataset/original/ folder
iexec dataset encrypt # generate a secret key for each file or folder in dataset/original/ and encrypt it, also output the encrypted file checksum to use for deployment.
cat ./.secrets/dataset/myAwesomeDataset.file.secret # this is the secret key for decrypting the dataset
cat ./datasets/encrypted/myAwesomeDataset.file.enc # this is the encrypted dataset, you must share this file at a public url
Deploy your dataset
iexec dataset count # check if you have already deployed datasets
iexec dataset init # reset dataset fields in iexec.json
iexec dataset deploy # deploy dataset on Ethereum
iexec dataset show # show details of deployed dataset
Securely share the dataset secret key
Disclaimer: The secrets pushed in the Secret Management Service will be shared with the worker to process the dataset in the therms your specify in the dataset order. Make sure to always double check your selling policy in the dataset order before signing it.
iexec dataset push-secret # Push the secret in the Secret Management Service (sms)
Sell your dataset on the Marketplace
iexec orderbook dataset <address> # check if you have valid sell orders for your dataset on the Marketplace
iexec dataset publish [address] --tag tee --app-restrict <address> # publish a datasetorder (restricted to specific app running in Trusted Execution Environment) on the Marketplace and get an orderHash
iexec order show --dataset [orderHash] # show your order on the Marketplace
iexec order cancel --dataset <orderHash> # cancel your order
SDK CLI for Workerpools
First go through Init project
Deploy a workerpool
iexec workerpool count # check if you have already deployed workerpools
iexec workerpool init # reset workerpool fields in iexec.json
iexec workerpool deploy # deploy workerpool on Ethereum
iexec workerpool show # show details of deployed workerpool
Sell your computing power at limit price on the Marketplace
iexec orderbook workerpool [address] --category <id> # check if you have valid sell orders for your workerpool on the Marketplace
iexec workerpool publish # publish a workerpoolorder on the Marketplace and get an orderHash
iexec order cancel --workerpool <orderHash> # cancel your order
Sell your computing power at market price on the Marketplace
iexec orderbook requester --category <id> # find a requestorder ask you want to fill in your category
iexec orderbook app <address> # find a compatible apporder
iexec orderbook dataset <address> # find a compatible datasetorder
iexec order init --workerpool # reset workerpoolorder fields in iexec.json
iexec order sign --workerpool # sign your workerpoolorder
iexec order fill --request <orderHash> --app <orderHash> --dataset <orderHash> # send the orders and get a dealid
iexec deal show <dealid> # show the detail of the deal you concludes
SDK CLI for Requesters
First go through Init project
Top up your iExec account to buy computation
iexec account show # show your iExec account
iexec account deposit 200 # deposit RLC from your wallet to your account
iexec account show # make sure you have enough staked RCL to buy computation
Buy computation at market price on the Marketplace
iexec app run [address] [--dataset [address] --args <args> --category <id> --input-files <fileURLs> --secret <secretMapping...>] # run an iExec application at market price
Or Buy computation at limit price on the Marketplace
iexec app request-execution [address] [--dataset [address] --args <args> --category <id> --input-files <fileURLs> --secret <secretMapping...>] # publish a requestorder on the Marketplace and get an orderHash
iexec order show --request <orderHash> --deals # show your order on the Marketplace and check the deals
Watch your Deals, your Tasks and download the results
iexec deal show <dealid> # show your deal details, get the taskids
iexec task show <taskid> # show the status of your task
iexec task show <taskid> --watch # wait until the task is COMPLETED or FAILED
iexec task show <taskid> --download [fileName] # download the result of your COMPLETED task
Use results encryption
iexec result generate-encryption-keypair # generate private/public RSA key pair for result encryption
iexec result push-encryption-key # share the public RSA key with the secret management service, all your results will be encrypted with this key
# Go through the normal buy process and download the result of the computation #
iexec result decrypt [encryptedResultsFilePath] # decrypt the result with the private RSA key
SDK CLI for workers
First go through Init project
Top up your iExec account to stake
iexec account deposit 200 # deposit RLC from your wallet to your account
iexec account show # make sure you have enough stake to join a workerpool
Withdraw your working reward
iexec account show # view your available stake
iexec account withdraw 1000 # withdraw RLC from your account to your wallet
API
iexec
iExec SDK
Usage:
iexec [command] [options]
Options:
| option | description |
|---|---|
| -V, --version | output the version number |
Commands:
- init
- iexec wallet
- iexec account
- iexec app
- iexec dataset
- iexec workerpool
- iexec requester
- iexec order
- iexec orderbook
- iexec deal
- iexec task
- iexec storage
- iexec result
- iexec category
- info
iexec init
init a new project
Usage:
iexec init [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --unencrypted | generate unsafe unencrypted wallet in working directory (--keystoredir option is ignored) |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --force | force perform action without prompting user |
| --skip-wallet | skip creating a new wallet |
iexec wallet
manage local ethereum wallet
Usage:
iexec wallet <command> [options]
Commands:
iexec wallet create
create a new wallet
Usage:
iexec wallet create [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --unencrypted | generate unsafe unencrypted wallet in working directory (--keystoredir option is ignored) |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --force | force wallet creation even if old wallet exists |
iexec wallet import
import a wallet from an ethereum private key
Usage:
iexec wallet import <privateKey> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --unencrypted | generate unsafe unencrypted wallet in working directory (--keystoredir option is ignored) |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --force | force wallet creation even if old wallet exists |
iexec wallet show
show address wallet details
Usage:
iexec wallet show [address] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --show-private-key | allow displaying wallet private key |
iexec wallet send-ether
send ether to an address (default unit ether)
Usage:
iexec wallet send-ether <amount> [unit] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
| --force | force perform action without prompting user |
| --to <address> | receiver address |
iexec wallet send-RLC
send RLC to an address (default unit RLC)
Usage:
iexec wallet send-RLC <amount> [unit] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
| --force | force perform action without prompting user |
| --to <address> | receiver address |
iexec wallet sweep
send all ether and RLC to an address
Usage:
iexec wallet sweep [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
| --force | force perform action without prompting user |
| --to <address> | receiver address |
iexec account
manage iExec account
Usage:
iexec account <command> [options]
Commands:
iexec account deposit
deposit RLC onto your iExec account (default unit nRLC)
Usage:
iexec account deposit <amount> [unit] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
iexec account withdraw
withdraw RLC from your iExec account (default unit nRLC)
Usage:
iexec account withdraw <amount> [unit] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
iexec account show
show account iExec details
Usage:
iexec account show [address] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
iexec account approve
approve spender to spend up to amount of RLC from your iExec account (default unit nRLC)
Usage:
iexec account approve <amount> <spender> [unit] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
iexec account allowance
check the amount of allowance approved for the specified spender to use your iExec account (specify --user to see another user's allowance)
Usage:
iexec account allowance <spender> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --user <address> | custom user address |
iexec account revoke
revoke the approval for the spender to use your iExec account
Usage:
iexec account revoke <spender> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
iexec app
manage iExec apps
Usage:
iexec app <command> [options]
Commands:
iexec app init
init a new app
Usage:
iexec app init [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
iexec app deploy
deploy a new app
Usage:
iexec app deploy [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
iexec app show
show user app details
Usage:
iexec app show [addressOrIndex] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --user <address> | custom user address |
iexec app count
get user app count
Usage:
iexec app count [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --user <address> | custom user address |
iexec app check-secret
check if a secret exists in the secret management service
Usage:
iexec app check-secret [appAddress] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --chain <name> | chain name from "chain.json" |
iexec app push-secret
push the app secret to the secret management service
Usage:
iexec app push-secret [appAddress] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --secret-value <secretValue> | secret value (unsafe) |
iexec app publish
publish a apporder on the marketplace to make the app publicly available (use options to set custom usage restriction)
Usage:
iexec app publish [appAddress] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --force | force perform action without prompting user |
| --price <amount unit...> | price per task (default unit nRLC) |
| --volume <volume> | number of run |
| --tag <tag> | specify tags * usage: --tag tag1,tag2 |
| --dataset-restrict <address> | restrict usage to specific dataset |
| --workerpool-restrict <address> | restrict usage to specific workerpool |
| --requester-restrict <address> | restrict usage to specific requester |
| --skip-preflight-check | skip preflight check, this may result in task execution fail |
iexec app unpublish
unpublish last published apporder for from the marketplace
Usage:
iexec app unpublish [appAddress] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --force | force perform action without prompting user |
| --all | unpublish all orders |
iexec app run
run an iExec application at market price (default run last deployed app)
Usage:
iexec app run [appAddress] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
| --force | force perform action without prompting user |
| --watch | watch execution status changes |
| --dataset <address|"deployed"> | dataset address, use "deployed" to use last deployed from "deployed.json" |
| --workerpool <address|"deployed"> | workerpool address, use "deployed" to use last deployed from "deployed.json" |
| --args <string> | specify the arguments to pass to the app |
| --input-files <fileUrl> | specify the URL of input files to be used by the app * usage: --input-files https://example.com/foo.txt,https://example.com/bar.zip |
| --secret <secretMapping...> | specify the requester secrets mappings (<appSecretKey>=<requesterSecretName>) to use in the app (only available for TEE tasks, use with --tag tee) * usage: * [command] [args] --secret 1=login 2=password * [command] [args] --secret 1=login --secret 2=password * [command] --secret 1=login --secret 2=password -- [args] * please note that this option is variadic, any number of mappings can be passed, use -- to stop the list |
| --category <id> | id of the task category |
| --tag <tag> | specify tags * usage: --tag tag1,tag2 |
| --storage-provider <"dropbox"|"ipfs"> | specify the storage to use to store the result archive |
| --callback <address> | specify the callback address of the request |
| --encrypt-result | encrypt the result archive with the beneficiary public key (only available for TEE tasks, use with --tag tee) |
| --trust <integer> | trust level |
| --beneficiary <address> | specify the beneficiary of the request (default user address) |
| --params <json> | specify the params of the request * usage: --params '{"iexec_args":"do stuff","iexec_input_files":["https://example.com/file.zip"\]}' |
| --skip-preflight-check | skip preflight check, this may result in task execution fail |
iexec app request-execution
request an iExec application execution at limit price
Usage:
iexec app request-execution <appAddress> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --force | force perform action without prompting user |
| --dataset <address> | dataset address |
| --workerpool <address> | workerpool address |
| --app-price <amount unit...> | app price per task (default unit nRLC) |
| --dataset-price <amount unit...> | dataset price per task (default unit nRLC) |
| --workerpool-price <amount unit...> | workerpool price per task (default unit nRLC) |
| --args <string> | specify the arguments to pass to the app |
| --input-files <fileUrl> | specify the URL of input files to be used by the app * usage: --input-files https://example.com/foo.txt,https://example.com/bar.zip |
| --secret <secretMapping...> | specify the requester secrets mappings (<appSecretKey>=<requesterSecretName>) to use in the app (only available for TEE tasks, use with --tag tee) * usage: * [command] [args] --secret 1=login 2=password * [command] [args] --secret 1=login --secret 2=password * [command] --secret 1=login --secret 2=password -- [args] * please note that this option is variadic, any number of mappings can be passed, use -- to stop the list |
| --category <id> | id of the task category |
| --tag <tag> | specify tags * usage: --tag tag1,tag2 |
| --volume <volume> | number of run |
| --storage-provider <"dropbox"|"ipfs"> | specify the storage to use to store the result archive |
| --callback <address> | specify the callback address of the request |
| --encrypt-result | encrypt the result archive with the beneficiary public key (only available for TEE tasks, use with --tag tee) |
| --trust <integer> | trust level |
| --beneficiary <address> | specify the beneficiary of the request (default user address) |
| --params <json> | specify the params of the request * usage: --params '{"iexec_args":"do stuff","iexec_input_files":["https://example.com/file.zip"\]}' |
| --skip-preflight-check | skip preflight check, this may result in task execution fail |
iexec app transfer
transfer the ownership of the app to an address
Usage:
iexec app transfer <appAddress> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
| --force | force perform action without prompting user |
| --to <address> | receiver address |
iexec dataset
manage iExec datasets
Usage:
iexec dataset <command> [options]
Commands:
iexec dataset init
init a new dataset
Usage:
iexec dataset init [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --encrypted | init datasets folder tree for dataset encryption |
| --tee | use the Trusted Execution Environment template |
| --dataset-keystoredir <path> | specify dataset TEE key directory |
| --original-dataset-dir <path> | specify the original dataset directory |
| --encrypted-dataset-dir <path> | specify the encrypted dataset directory |
iexec dataset deploy
deploy a new dataset
Usage:
iexec dataset deploy [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
iexec dataset show
show user dataset details
Usage:
iexec dataset show [addressOrIndex] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --user <address> | custom user address |
iexec dataset count
get user dataset count
Usage:
iexec dataset count [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --user <address> | custom user address |
iexec dataset encrypt
for each file in the original dataset directory, generate a key, create an encrypted copy of the file in the encrypted dataset directory and compute the encrypted file's checksum
Usage:
iexec dataset encrypt [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --force | force perform action without prompting user |
| --dataset-keystoredir <path> | specify dataset TEE key directory |
| --original-dataset-dir <path> | specify the original dataset directory |
| --encrypted-dataset-dir <path> | specify the encrypted dataset directory |
iexec dataset push-secret
push the dataset secret to the secret management service (default push the last secret generated, use --secret-path <secretPath> to overwrite)
Usage:
iexec dataset push-secret [datasetAddress] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --secret-path <secretPath> | push the secret from a file |
iexec dataset check-secret
check if a secret exists in the secret management service
Usage:
iexec dataset check-secret [datasetAddress] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --chain <name> | chain name from "chain.json" |
iexec dataset publish
publish a datasetorder on the marketplace to make the dataset publicly available (use options to set custom usage restriction)
Usage:
iexec dataset publish [datasetAddress] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --force | force perform action without prompting user |
| --price <amount unit...> | price per task (default unit nRLC) |
| --volume <volume> | number of run |
| --tag <tag> | specify tags * usage: --tag tag1,tag2 |
| --app-restrict <address> | restrict usage to specific app |
| --workerpool-restrict <address> | restrict usage to specific workerpool |
| --requester-restrict <address> | restrict usage to specific requester |
| --skip-preflight-check | skip preflight check, this may result in task execution fail |
iexec dataset unpublish
unpublish last published datasetorder for from the marketplace
Usage:
iexec dataset unpublish [datasetAddress] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --force | force perform action without prompting user |
| --all | unpublish all orders |
iexec dataset transfer
transfer the ownership of the dataset to an address
Usage:
iexec dataset transfer <datasetAddress> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
| --force | force perform action without prompting user |
| --to <address> | receiver address |
iexec workerpool
manage iExec workerpools
Usage:
iexec workerpool <command> [options]
Commands:
iexec workerpool init
init a new workerpool
Usage:
iexec workerpool init [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
iexec workerpool deploy
deploy a new workerpool
Usage:
iexec workerpool deploy [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
iexec workerpool show
show user workerpool details
Usage:
iexec workerpool show [addressOrIndex] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --user <address> | custom user address |
iexec workerpool count
get user workerpool count
Usage:
iexec workerpool count [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --user <address> | custom user address |
iexec workerpool publish
publish a workerpoolorder on the marketplace to make the workerpool publicly available (use options to set custom usage restriction)
Usage:
iexec workerpool publish [workerpoolAddress] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --force | force perform action without prompting user |
| --category <id> | id of the task category |
| --price <amount unit...> | price per task (default unit nRLC) |
| --volume <volume> | number of run |
| --tag <tag> | specify tags * usage: --tag tag1,tag2 |
| --trust <integer> | trust level |
| --app-restrict <address> | restrict usage to specific app |
| --dataset-restrict <address> | restrict usage to specific dataset |
| --requester-restrict <address> | restrict usage to specific requester |
iexec workerpool unpublish
unpublish last published workerpoolorder for from the marketplace
Usage:
iexec workerpool unpublish [workerpoolAddress] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --force | force perform action without prompting user |
| --all | unpublish all orders |
iexec workerpool transfer
transfer the ownership of the workerpool to an address
Usage:
iexec workerpool transfer <workerpoolAddress> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
| --force | force perform action without prompting user |
| --to <address> | receiver address |
iexec requester
commands for the requester
Usage:
iexec requester <command> [options]
Commands:
iexec requester push-secret
push a requester named secret to the secret management service
Usage:
iexec requester push-secret <secretName> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --secret-value <secretValue> | secret value (unsafe) |
iexec requester check-secret
check if a secret exists in the secret management service
Usage:
iexec requester check-secret <secretName> [requesterAddress] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
iexec order
manage iExec marketplace orders
Usage:
iexec order <command> [options]
Commands:
iexec order init
init a new order
Usage:
iexec order init [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --app | init an app sell order |
| --dataset | init a dataset sell order |
| --workerpool | init a workerpool sell order |
| --request | init a buy request order |
iexec order sign
sign orders from "iexec.json" and store them into "orders.json"
Usage:
iexec order sign [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --force | force perform action without prompting user |
| --app | sign an selling apporder |
| --dataset | sign a selling datasetorder |
| --workerpool | sign a selling workerpoolorder |
| --request | sign a buying requestorder |
| --skip-preflight-check | skip preflight check, this may result in task execution fail |
iexec order fill
fill an order to execute a work
Usage:
iexec order fill [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
| --force | force perform action without prompting user |
| --app <orderHash> | specify the app order from the marketplace to fill |
| --dataset <orderHash> | specify the dataset order from the marketplace to fill |
| --workerpool <orderHash> | specify the workerpool order from the marketplace to fill |
| --request <orderHash> | specify the requestorder from the marketplace to fill |
| --params <json> | specify the params of the request, existing request order will be ignored * usage: --params '{"iexec_args":"do stuff","iexec_input_files":["https://example.com/file.zip"\]}' |
| --skip-preflight-check | skip preflight check, this may result in task execution fail |
iexec order publish
publish a signed order
Usage:
iexec order publish [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --force | force perform action without prompting user |
| --app | publish a signed apporder on iExec marketplace |
| --dataset | publish a signed datasetorder on iExec marketplace |
| --workerpool | publish a signed workerpoolorder on iExec marketplace |
| --request | publish a signed requestorder on iExec marketplace |
| --skip-preflight-check | skip preflight check, this may result in task execution fail |
iexec order unpublish
unpublish a signed order
Usage:
iexec order unpublish [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --force | force perform action without prompting user |
| --app [orderHash] | unpublish a signed apporder from iExec marketplace |
| --dataset [orderHash] | unpublish a signed datasetorder from iExec marketplace |
| --workerpool [orderHash] | unpublish a signed workerpoolorder from iExec marketplace |
| --request [orderHash] | unpublish a signed requestorder from iExec marketplace |
iexec order cancel
cancel an order
Usage:
iexec order cancel [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
| --force | force perform action without prompting user |
| --app | cancel a signed apporder |
| --dataset | cancel a signed datasetorder |
| --workerpool | cancel a signed workerpoolorder |
| --request | cancel a signed requestorder |
iexec order show
show marketplace order details
Usage:
iexec order show [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --chain <name> | chain name from "chain.json" |
| --app [orderHash] | show an apporder |
| --dataset [orderHash] | show a datasetorder |
| --workerpool [orderHash] | show a workerpoolorder |
| --request [orderHash] | show a requestorder |
| --deals | show the deals produced by the order |
iexec orderbook
show marketplace orderbook
Usage:
iexec orderbook <command> [options]
Commands:
iexec orderbook app
show marketplace app orderbook details
Usage:
iexec orderbook app <address> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --chain <name> | chain name from "chain.json" |
| --tag <tag> | specify exact tags * usage: --tag tag1,tag2 |
| --require-tag <tag> | specify minimum required tags * usage: --require-tag tag1,tag2 |
| --max-tag <tag> | specify maximum tags (exclude not listed tags) * usage: --max-tag tag1,tag2 |
| --min-volume <integer> | specify minimum volume |
| --dataset <address> | include private orders for specified dataset |
| --workerpool <address> | include private orders for specified workerpool |
| --requester <address> | include private orders for specified requester |
| --dataset-strict | fetch orders created strictly for the specified dataset |
| --workerpool-strict | fetch orders created strictly for the specified workerpool |
| --requester-strict | fetch orders created strictly for the specified requester |
iexec orderbook dataset
show marketplace dataset orderbook details
Usage:
iexec orderbook dataset <address> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --chain <name> | chain name from "chain.json" |
| --tag <tag> | specify exact tags * usage: --tag tag1,tag2 |
| --require-tag <tag> | specify minimum required tags * usage: --require-tag tag1,tag2 |
| --max-tag <tag> | specify maximum tags (exclude not listed tags) * usage: --max-tag tag1,tag2 |
| --min-volume <integer> | specify minimum volume |
| --app <address> | include private orders for specified app |
| --workerpool <address> | include private orders for specified workerpool |
| --requester <address> | include private orders for specified requester |
| --app-strict | fetch orders created strictly for the specified app |
| --requester-strict | fetch orders created strictly for the specified requester |
| --workerpool-strict | fetch orders created strictly for the specified workerpool |
iexec orderbook workerpool
show marketplace workerpools orderbook details
Usage:
iexec orderbook workerpool [address] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --chain <name> | chain name from "chain.json" |
| --category <id> | specify the work category |
| --tag <tag> | specify exact tags * usage: --tag tag1,tag2 |
| --require-tag <tag> | specify minimum required tags * usage: --require-tag tag1,tag2 |
| --max-tag <tag> | specify maximum tags (exclude not listed tags) * usage: --max-tag tag1,tag2 |
| --min-volume <integer> | specify minimum volume |
| --min-trust <integer> | specify minimum trust |
| --app <address> | include private orders for specified app |
| --dataset <address> | include private orders for specified dataset |
| --requester <address> | include private orders for specified requester |
| --dataset-strict | fetch orders created strictly for the specified dataset |
| --app-strict | fetch orders created strictly for the specified app |
| --requester-strict | fetch orders created strictly for the specified requester |
iexec orderbook requester
show marketplace requesters orderbook details
Usage:
iexec orderbook requester [address] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --chain <name> | chain name from "chain.json" |
| --category <id> | specify the work category |
| --tag <tag> | specify exact tags * usage: --tag tag1,tag2 |
| --require-tag <tag> | specify minimum required tags * usage: --require-tag tag1,tag2 |
| --max-tag <tag> | specify maximum tags (exclude not listed tags) * usage: --max-tag tag1,tag2 |
| --min-volume <integer> | specify minimum volume |
| --max-trust <integer> | specify maximum trust |
| --app <address> | filter by app |
| --dataset <address> | filter by dataset |
| --beneficiary <address> | filter by beneficiary |
| --workerpool <address> | include private orders for specified workerpool |
| --workerpool-strict | fetch orders created strictly for the specified workerpool |
iexec deal
manage iExec deals
Usage:
iexec deal <command> [options]
Commands:
iexec deal show
show user deal details
Usage:
iexec deal show <dealid> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --watch | watch execution status changes |
iexec deal claim
claim a deal that is not COMPLETED
Usage:
iexec deal claim <dealid> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
iexec task
manage iExec tasks
Usage:
iexec task <command> [options]
Commands:
iexec task show
show user task details
Usage:
iexec task show <taskid> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --watch | watch execution status changes |
| --download [fileName] | download a task result data to local filesystem, if completed |
| --decrypt | decrypt an encrypted result |
| --beneficiary-keystoredir <path> | specify beneficiary TEE keys directory |
| --beneficiary-key-file <fileName> | specify beneficiary TEE key file to use |
iexec task debug
show task debug information
Usage:
iexec task debug <taskid> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --logs | show application logs |
iexec task claim
claim a task that is not COMPLETED
Usage:
iexec task claim <taskid> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
iexec storage
manage remote storage
Usage:
iexec storage <command> [options]
Commands:
iexec storage init
initialize the remote storage
Usage:
iexec storage init <provider> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --force-update | update if already exists |
| --token <token> | storage provider authorization token (unsafe) |
iexec storage check
check if the remote storage is initialized
Usage:
iexec storage check <provider> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --user <address> | custom user address |
iexec result
manage results encryption
Usage:
iexec result <command> [options]
Commands:
iexec result generate-encryption-keypair
Alias: generate-keys
generate a beneficiary key pair to encrypt and decrypt the results
Usage:
iexec result generate-encryption-keypair [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --force | force perform action without prompting user |
| --beneficiary-keystoredir <path> | specify beneficiary TEE keys directory |
iexec result decrypt
decrypt encrypted results with beneficiary key
Usage:
iexec result decrypt [encryptedResultsPath] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --force | force perform action without prompting user |
| --beneficiary-keystoredir <path> | specify beneficiary TEE keys directory |
| --beneficiary-key-file <fileName> | specify beneficiary TEE key file to use |
iexec result push-encryption-key
Alias: push-secret
push the public encryption key to the secret management service
Usage:
iexec result push-encryption-key [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --force-update | update if already exists |
| --secret-path <secretPath> | push the secret from a file |
iexec result check-encryption-key
Alias: check-secret
check if a secret exists in the secret management service
Usage:
iexec result check-encryption-key [address] [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
iexec category
manage iExec categories
Usage:
iexec category <command> [options]
Commands:
iexec category init
init a new category
Usage:
iexec category init [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
iexec category create
create a new category
Usage:
iexec category create [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --password <password> | password used to encrypt the wallet (unsafe) |
| --wallet-file <walletFileName> | specify the name of the wallet file to use |
| --wallet-address <walletAddress> | specify the address of the wallet to use |
| --keystoredir <path> | specify the wallet directory <"global"|"local"|custom> |
| --chain <name> | chain name from "chain.json" |
| --confirms <blockCount> | set custom block count to wait for transactions confirmation (default 1 block) |
iexec category show
show category details
Usage:
iexec category show <index> [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --chain <name> | chain name from "chain.json" |
iexec category count
count protocol categories
Usage:
iexec category count [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --chain <name> | chain name from "chain.json" |
iexec info
show iExec contracts addresses
Usage:
iexec info [options]
Options:
| option | description |
|---|---|
| --raw | use raw output |
| --quiet | stop prompting updates |
| --chain <name> | chain name from "chain.json" |
Files
wallet
To write on the blockchain, prove their identity and manage their assets, iExec's users need a wallet.
Wallet files are generated by iexec init and iexec wallet commands and stored in the Ethereum keystore.
The keystore location depends on your OS:
- Linux : ~/.ethereum/keystore
- Mac: ~/Library/Ethereum/keystore
- Windows: ~/AppData/Roaming/Ethereum/keystore
iexec.json
The iexec.json file, located in every iExec project, describes the parameters used when creating a [app|dataset|category|workerpool], or when signing an order.
{
"app": {
"owner": "0xF048eF3d7E3B33A465E0599E641BB29421f7Df92",
"name": "VanityGen",
"type": "DOCKER",
"multiaddr": "registry.hub.docker.com/iexechub/vanitygen:1.0.0",
"checksum": "0x762a451c05e0d8097b35d6376e748798b5dc6a13290439cf67d5202f7c6f695f"
},
"dataset": {
"owner": "0xF048eF3d7E3B33A465E0599E641BB29421f7Df92",
"name": "my-dataset",
"multiaddr": "/ipfs/QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ",
"checksum": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
"workerpool": {
"owner": "0xF048eF3d7E3B33A465E0599E641BB29421f7Df92",
"description": "my workerpool"
},
"category": {
"name": "CAT1",
"description": "my category N°1",
"workClockTimeRef": 100
},
"order": {
"apporder": {
"app": "0x0000000000000000000000000000000000000000",
"appprice": "0",
"volume": "1",
"tag": "0x0000000000000000000000000000000000000000000000000000000000000000",
"datasetrestrict": "0x0000000000000000000000000000000000000000",
"workerpoolrestrict": "0x0000000000000000000000000000000000000000",
"requesterrestrict": "0x0000000000000000000000000000000000000000"
},
"datasetorder": {
"dataset": "0x0000000000000000000000000000000000000000",
"datasetprice": "0",
"volume": "1",
"tag": "0x0000000000000000000000000000000000000000000000000000000000000000",
"apprestrict": "0x0000000000000000000000000000000000000000",
"workerpoolrestrict": "0x0000000000000000000000000000000000000000",
"requesterrestrict": "0x0000000000000000000000000000000000000000"
},
"workerpoolorder": {
"workerpool": "0x0000000000000000000000000000000000000000",
"workerpoolprice": "0",
"volume": "1",
"category": "1",
"trust": "100",
"tag": "0x0000000000000000000000000000000000000000000000000000000000000000",
"apprestrict": "0x0000000000000000000000000000000000000000",
"datasetrestrict": "0x0000000000000000000000000000000000000000",
"requesterrestrict": "0x0000000000000000000000000000000000000000"
},
"requestorder": {
"app": "0x0000000000000000000000000000000000000000",
"appmaxprice": "0",
"dataset": "0x0000000000000000000000000000000000000000",
"datasetmaxprice": "0",
"workerpool": "0x0000000000000000000000000000000000000000",
"workerpoolmaxprice": "0",
"volume": "1",
"category": "1",
"trust": "100",
"tag": "0x0000000000000000000000000000000000000000000000000000000000000000",
"beneficiary": "0x0000000000000000000000000000000000000000",
"callback": "0x0000000000000000000000000000000000000000",
"params": "{ \"iexec_args\": \"--help\" }"
}
}
}
chain.json
The chain.json file, located in every iExec project, describes the parameters used when communicating with ethereum nodes and iExec Secret Management Services. They are ordered by chain name, accessible by using the --chain <chainName> option for each command of the SDK.
defaultset the default chain used by the SDK cli.chainsset the available chains- optional key
hostset the url of the ethereum node used by the SDK cli on each chain (overwrite default value). - optional key
hubset the address of the hub used by the SDK cli on each chain (overwrite default value). - optional key
smsset the url of the Secret Management Service used by the SDK cli on each chain (overwrite default value). - optional key
iexecGatewayset the url of the iexec marketplace gateway used by the SDK cli on each chain (overwrite default value). - optional key
ipfsGatewayset the url of the IPFS gateway used by the SDK cli on each chain (overwrite default value). - optional key
pocoSubgraphset the url of the PoCo subgraph used by the SDK cli on each chain (overwrite default value).
- optional key
{
"default": "arbitrum-sepolia-testnet",
"chains": {
"dev": {
"host": "http://localhost:8545",
"id": "65535",
"sms": "http://localhost:5000",
"ipfsGateway": "http://localhost:8080",
"hub": "0xC129e7917b7c7DeDfAa5Fff1FB18d5D7050fE8ca"
},
"arbitrum-sepolia-testnet": {},
"arbitrum-mainnet": {}
}
}
deployed.json
The deployed.json file, located in iExec project, locally stores your latest deployed resources address. These address are used when you run a command without specifying a resource address (example: iexec app show will show the app in deployed.json).
{
"app": {
"42": "0xa760FEfAd0a38D494890501120cB79f5EEAFeE28"
},
"workerpool": {
"42": "0xFb346A453C4D34AbA0038c274D1bd3C98099962c"
},
"dataset": {
"42": "0xB9c7647ECd48d795A9031d6fe8292C13E73372F7"
}
}
orders.json
The orders.json file, located in iExec project, locally stores your latest signed orders. This file is used when you publish an order on the Marketplace and when you fill orders without specified orders from the Marketplace.
{
"42": {
"apporder": {
"app": "0x0000000000000000000000000000000000000000",
"appprice": "0",
"volume": "1",
"tag": "0x0000000000000000000000000000000000000000000000000000000000000000",
"datasetrestrict": "0x0000000000000000000000000000000000000000",
"workerpoolrestrict": "0x0000000000000000000000000000000000000000",
"requesterrestrict": "0x0000000000000000000000000000000000000000",
"salt": "0x0000000000000000000000000000000000000000000000000000000000000000",
"sign": "0x"
},
"datasetorder": {
"dataset": "0x0000000000000000000000000000000000000000",
"datasetprice": "0",
"volume": "1",
"tag": "0x0000000000000000000000000000000000000000000000000000000000000000",
"apprestrict": "0x0000000000000000000000000000000000000000",
"workerpoolrestrict": "0x0000000000000000000000000000000000000000",
"requesterrestrict": "0x0000000000000000000000000000000000000000",
"salt": "0x0000000000000000000000000000000000000000000000000000000000000000",
"sign": "0x"
},
"workerpoolorder": {
"workerpool": "0x0000000000000000000000000000000000000000",
"workerpoolprice": "0",
"volume": "1",
"category": "1",
"trust": "100",
"tag": "0x0000000000000000000000000000000000000000000000000000000000000000",
"apprestrict": "0x0000000000000000000000000000000000000000",
"datasetrestrict": "0x0000000000000000000000000000000000000000",
"requesterrestrict": "0x0000000000000000000000000000000000000000",
"salt": "0x0000000000000000000000000000000000000000000000000000000000000000",
"sign": "0x"
},
"requestorder": {
"app": "0x0000000000000000000000000000000000000000",
"appmaxprice": "0",
"dataset": "0x0000000000000000000000000000000000000000",
"datasetmaxprice": "0",
"workerpool": "0x0000000000000000000000000000000000000000",
"workerpoolmaxprice": "0",
"volume": "1",
"category": "1",
"trust": "100",
"tag": "0x0000000000000000000000000000000000000000000000000000000000000000",
"beneficiary": "0x0000000000000000000000000000000000000000",
"callback": "0x0000000000000000000000000000000000000000",
"params": "--help",
"requester": "0x0000000000000000000000000000000000000000",
"salt": "0x0000000000000000000000000000000000000000000000000000000000000000",
"sign": "0x"
}
}
}
./secrets/
This folder is created when running iexec result generate-encryption-keypair or iexec dataset init --tee and is intended to store credentials generated by the iexec SDK CLI.
./secrets/beneficiary/
This folder stores the key pair to use for result encryption and decryption.
A key pair is generated when running iexec result generate-encryption-keypair
Public keys name follow the pattern userAddress_key.pub , this key is shared with the workers when running iexec result push-encryption-key
Private keys name follow the pattern userAddress_key this should never be shared with third party, the private key is used by the SDK CLI to decrypt a result when running iexec result decrypt.
./secrets/datasets/
This folder stores the AES keys used for dataset encryption.
A key is generated for each dataset file when running iexec dataset encrypt.
The key file is named after the dataset file name, last key generated is also stored in ./secrets/datasets/dataset.key to be used as default secret to share with workers when running iexec dataset push-secret.
./datasets/
This folder is created when running iexec dataset init --tee and is intended to store datasets files.
./datasets/original/
Paste your original dataset files in this folder and run iexec dataset encrypt to encrypt them.
./datasets/encrypted/
This folder stores the encrypted datasets files.
An encrypted dataset file is created for each dataset file when running iexec dataset encrypt.
The encrypted dataset file is named after the dataset file name.
The encrypted dataset files must be upload on a public file system and referenced in multiaddr when running iexec dataset deploy.
Interoperability
If your program is not written in javascript, your last option to use the SDK would be to spawn it as a separate process (sometimes called FORK operation). After each SDK run you should check the exit code returned by the SDK to know if the operation was successful or not echo $?:
- 0 = successful
- 1 = error
Finally, you could choose to parse the SDK stdout/stderr to access more information. Use the global option --raw to get json formatted output.
ex:
iexec wallet show --raw &> out.jsoniexec wallet show --raw | jq .
Warning:
- The stdout/stderr is subject to changes (this is what makes this solution brittle)
- The node and docker version have some slight differences in their stdout/stderr