# Command-Line Help for `linera` This document contains the help content for the `linera` command-line program. **Command Overview:** * [`linera`↴](#linera) * [`linera transfer`↴](#linera-transfer) * [`linera open-chain`↴](#linera-open-chain) * [`linera open-multi-owner-chain`↴](#linera-open-multi-owner-chain) * [`linera show-ownership`↴](#linera-show-ownership) * [`linera change-ownership`↴](#linera-change-ownership) * [`linera set-preferred-owner`↴](#linera-set-preferred-owner) * [`linera change-application-permissions`↴](#linera-change-application-permissions) * [`linera close-chain`↴](#linera-close-chain) * [`linera show-network-description`↴](#linera-show-network-description) * [`linera local-balance`↴](#linera-local-balance) * [`linera query-balance`↴](#linera-query-balance) * [`linera sync-balance`↴](#linera-sync-balance) * [`linera sync`↴](#linera-sync) * [`linera process-inbox`↴](#linera-process-inbox) * [`linera query-shard-info`↴](#linera-query-shard-info) * [`linera revoke-epochs`↴](#linera-revoke-epochs) * [`linera resource-control-policy`↴](#linera-resource-control-policy) * [`linera benchmark`↴](#linera-benchmark) * [`linera benchmark single`↴](#linera-benchmark-single) * [`linera benchmark multi`↴](#linera-benchmark-multi) * [`linera create-genesis-config`↴](#linera-create-genesis-config) * [`linera watch`↴](#linera-watch) * [`linera service`↴](#linera-service) * [`linera query-application`↴](#linera-query-application) * [`linera faucet`↴](#linera-faucet) * [`linera publish-module`↴](#linera-publish-module) * [`linera list-events-from-index`↴](#linera-list-events-from-index) * [`linera publish-data-blob`↴](#linera-publish-data-blob) * [`linera read-data-blob`↴](#linera-read-data-blob) * [`linera create-application`↴](#linera-create-application) * [`linera publish-and-create`↴](#linera-publish-and-create) * [`linera keygen`↴](#linera-keygen) * [`linera assign`↴](#linera-assign) * [`linera retry-pending-block`↴](#linera-retry-pending-block) * [`linera execute-operation`↴](#linera-execute-operation) * [`linera wallet`↴](#linera-wallet) * [`linera wallet show`↴](#linera-wallet-show) * [`linera wallet set-default`↴](#linera-wallet-set-default) * [`linera wallet init`↴](#linera-wallet-init) * [`linera wallet request-chain`↴](#linera-wallet-request-chain) * [`linera wallet export-genesis`↴](#linera-wallet-export-genesis) * [`linera wallet follow-chain`↴](#linera-wallet-follow-chain) * [`linera wallet forget-keys`↴](#linera-wallet-forget-keys) * [`linera wallet forget-chain`↴](#linera-wallet-forget-chain) * [`linera chain`↴](#linera-chain) * [`linera chain show-block`↴](#linera-chain-show-block) * [`linera chain show-chain-description`↴](#linera-chain-show-chain-description) * [`linera project`↴](#linera-project) * [`linera project new`↴](#linera-project-new) * [`linera project test`↴](#linera-project-test) * [`linera project publish-and-create`↴](#linera-project-publish-and-create) * [`linera net`↴](#linera-net) * [`linera net up`↴](#linera-net-up) * [`linera net helper`↴](#linera-net-helper) * [`linera validator`↴](#linera-validator) * [`linera validator add`↴](#linera-validator-add) * [`linera validator batch-query`↴](#linera-validator-batch-query) * [`linera validator update`↴](#linera-validator-update) * [`linera validator list`↴](#linera-validator-list) * [`linera validator query`↴](#linera-validator-query) * [`linera validator query-block`↴](#linera-validator-query-block) * [`linera validator remove`↴](#linera-validator-remove) * [`linera validator sync`↴](#linera-validator-sync) * [`linera storage`↴](#linera-storage) * [`linera storage delete-all`↴](#linera-storage-delete-all) * [`linera storage delete-namespace`↴](#linera-storage-delete-namespace) * [`linera storage check-existence`↴](#linera-storage-check-existence) * [`linera storage initialize`↴](#linera-storage-initialize) * [`linera storage list-namespaces`↴](#linera-storage-list-namespaces) * [`linera storage list-blob-ids`↴](#linera-storage-list-blob-ids) * [`linera storage list-chain-ids`↴](#linera-storage-list-chain-ids) * [`linera storage list-event-ids`↴](#linera-storage-list-event-ids) * [`linera completion`↴](#linera-completion) ## `linera` Client implementation and command-line tool for the Linera blockchain **Usage:** `linera [OPTIONS] ` ###### **Subcommands:** * `transfer` — Transfer funds * `open-chain` — Open (i.e. activate) a new chain deriving the UID from an existing one * `open-multi-owner-chain` — Open (i.e. activate) a new multi-owner chain deriving the UID from an existing one * `show-ownership` — Display who owns the chain, and how the owners work together proposing blocks * `change-ownership` — Change who owns the chain, and how the owners work together proposing blocks * `set-preferred-owner` — Change the preferred owner of a chain * `change-application-permissions` — Changes the application permissions configuration * `close-chain` — Close an existing chain * `show-network-description` — Print out the network description * `local-balance` — Read the current native-token balance of the given account directly from the local state * `query-balance` — Simulate the execution of one block made of pending messages from the local inbox, then read the native-token balance of the account from the local state * `sync-balance` — (DEPRECATED) Synchronize the local state of the chain with a quorum validators, then query the local balance * `sync` — Synchronize the local state of the chain with a quorum validators * `process-inbox` — Process all pending incoming messages from the inbox of the given chain by creating as many blocks as needed to execute all (non-failing) messages. Failing messages will be marked as rejected and may bounce to their sender depending on their configuration * `query-shard-info` — Query validators for shard information about a specific chain * `revoke-epochs` — Deprecates all committees up to and including the specified one * `resource-control-policy` — View or update the resource control policy * `benchmark` — Run benchmarks to test network performance * `create-genesis-config` — Create genesis configuration for a Linera deployment. Create initial user chains and print information to be used for initialization of validator setup. This will also create an initial wallet for the owner of the initial "root" chains * `watch` — Watch the network for notifications * `service` — Run a GraphQL service to explore and extend the chains of the wallet * `query-application` — Query an application with a read-only GraphQL query * `faucet` — Run a GraphQL service that exposes a faucet where users can claim tokens. This gives away the chain's tokens, and is mainly intended for testing * `publish-module` — Publish module * `list-events-from-index` — Print events from a specific chain and stream from a specified index * `publish-data-blob` — Publish a data blob of binary data * `read-data-blob` — Verify that a data blob is readable * `create-application` — Create an application * `publish-and-create` — Create an application, and publish the required module * `keygen` — Create an unassigned key pair * `assign` — Link the owner to the chain. Expects that the caller has a private key corresponding to the `public_key`, otherwise block proposals will fail when signing with it * `retry-pending-block` — Retry a block we unsuccessfully tried to propose earlier * `execute-operation` — Execute a raw user operation on an application * `wallet` — Show the contents of the wallet * `chain` — Show the information about a chain * `project` — Manage Linera projects * `net` — Manage a local Linera Network * `validator` — Manage validators in the committee * `storage` — Operation on the storage * `completion` — Generate shell completion scripts ###### **Options:** * `--send-timeout-ms ` — Timeout for sending queries (milliseconds) Default value: `4000` * `--recv-timeout-ms ` — Timeout for receiving responses (milliseconds) Default value: `4000` * `--max-pending-message-bundles ` — The maximum number of incoming message bundles to include in a block proposal Default value: `300` * `--max-block-limit-errors ` — Maximum number of message bundles to discard from a block proposal due to block limit errors before discarding all remaining bundles. Discarded bundles can be retried in the next block. Default value: `3` * `--staging-bundles-time-budget-ms ` — Time budget for staging message bundles in milliseconds. When set, limits bundle execution by wall-clock time, in addition to the count limit from `max_pending_message_bundles` * `--prioritize-bundles-from ` — Comma-separated list of chain IDs whose incoming bundles should be processed first * `--ignore-bundles-from ` — Comma-separated list of chain IDs whose incoming bundles should be ignored * `--chain-worker-ttl-ms ` — The duration in milliseconds after which an idle chain worker will free its memory. Use 0 to disable expiry Default value: `30000` * `--sender-chain-worker-ttl-ms ` — The duration, in milliseconds, after which an idle sender chain worker will free its memory. Use 0 to disable expiry Default value: `1000` * `--cross-chain-batch-size-limit ` — Maximum number of cross-chain requests coalesced into a single batch by the per-chain driver. Bounds the worst-case write-lock hold time Default value: `1000` * `--retry-delay-ms ` — Delay increment for retrying to connect to a validator Default value: `1000` * `--max-retries ` — Number of times to retry connecting to a validator Default value: `10` * `--max-backoff-ms ` — Maximum backoff delay for retrying to connect to a validator Default value: `30000` * `--notification-circuit-breaker-initial-probe-interval-ms ` — Initial probe interval (ms) for the notification circuit breaker. When a validator's notification stream exhausts retries, the circuit breaker waits this long before probing again. Doubles on each failed probe Default value: `300000` * `--notification-circuit-breaker-max-probe-interval-ms ` — Maximum probe interval (ms) for the notification circuit breaker. The probe interval doubles on each failure but is capped at this value Default value: `3600000` * `--wait-for-outgoing-messages` — Whether to wait until a quorum of validators has confirmed that all sent cross-chain messages have been delivered * `--allow-fast-blocks` — Whether to allow creating blocks in the fast round. Fast blocks have lower latency but must be used carefully so that there are never any conflicting fast block proposals * `--disable-multi-leader-jitter` — Disable the multi-leader jitter delay. By default, when proposing in a multi-leader round with index `>= 1`, the client waits a deterministic delay derived from the owner and round before re-proposing. This spreads out concurrent proposals from honest clients; the owner with the lowest `hash(owner, round)` still proposes immediately * `--long-lived-services` — (EXPERIMENTAL) Whether application services can persist in some cases between queries * `--blanket-message-policy ` — The policy for handling incoming messages Default value: `accept` Possible values: - `accept`: Automatically accept all incoming messages. Reject them only if execution fails - `reject`: Automatically reject tracked messages, ignore or skip untracked messages, but accept protected ones - `ignore`: Don't include any messages in blocks, and don't make any decision whether to accept or reject * `--restrict-chain-ids-to ` — A set of chains to restrict incoming messages from. By default, messages from all chains are accepted. To reject messages from all chains, specify an empty string * `--reject-message-bundles-without-application-ids ` — A set of application IDs. If specified, only bundles with at least one message from one of these applications will be accepted * `--reject-message-bundles-with-other-application-ids ` — A set of application IDs. If specified, only bundles where all messages are from one of these applications will be accepted * `--process-events-from-application-ids ` — A set of application IDs. If specified, only events coming from streams created by applications from this set will be processed * `--never-reject-application-ids ` — A set of application IDs whose messages must never be rejected. Bundles whose messages are all from one of these applications bypass the other rejection rules (except `--restrict-chain-ids-to`), and on execution failure they (and subsequent bundles from the same sender) are removed from the block for later retry instead of being rejected, with a warning logged. Bundles that contain any message from an application not on this list can be rejected * `--timings` — Enable timing reports during operations * `--timing-interval ` — Interval in seconds between timing reports (defaults to 5) Default value: `5` * `--quorum-grace-period ` — An additional delay, after reaching a quorum, to wait for additional validator signatures, as a fraction of time taken to reach quorum Default value: `0.2` * `--blob-download-timeout-ms ` — The delay when downloading a blob, after which we try a second validator, in milliseconds Default value: `1000` * `--cert-batch-download-timeout-ms ` — The delay when downloading a batch of certificates, after which we try a second validator, in milliseconds Default value: `1000` * `--certificate-download-batch-size ` — Maximum number of certificates that we download at a time from one validator when synchronizing one of our chains Default value: `500` * `--certificate-upload-batch-size ` — Maximum number of certificates read from local storage and uploaded to a validator at a time when synchronizing a chain Default value: `500` * `--sender-certificate-download-batch-size ` — Maximum number of sender certificates we try to download and receive in one go when syncing sender chains Default value: `20000` * `--max-concurrent-batch-downloads ` — Maximum number of certificate batches downloaded concurrently during chain sync Default value: `1` * `--max-joined-tasks ` — Maximum number of tasks that can are joined concurrently in the client Default value: `100` * `--max-event-stream-queries ` — Maximum number of event stream IDs to include in a single `PreviousEventBlocks` request. Larger sets are split into multiple requests Default value: `1000` * `--max-accepted-latency-ms ` — Maximum expected latency in milliseconds for score normalization Default value: `5000` * `--cache-ttl-ms ` — Time-to-live for cached responses in milliseconds Default value: `2000` * `--cache-max-size ` — Maximum number of entries in the cache Default value: `1000` * `--max-request-ttl-ms ` — Maximum latency for an in-flight request before we stop deduplicating it (in milliseconds) Default value: `200` * `--alpha ` — Smoothing factor for Exponential Moving Averages (0 < alpha < 1). Higher values give more weight to recent observations. Typical values are between 0.01 and 0.5. A value of 0.1 means that 10% of the new observation is considered and 90% of the previous average is retained Default value: `0.1` * `--alternative-peers-retry-delay-ms ` — Delay in milliseconds between starting requests to different peers. This helps to stagger requests and avoid overwhelming the network Default value: `150` * `--listener-skip-process-inbox` — Do not create blocks automatically to receive incoming messages. Instead, wait for an explicit mutation `processInbox` * `--listener-delay-before-ms ` — Wait before processing any notification (useful for testing) Default value: `0` * `--listener-delay-after-ms ` — Wait after processing any notification (useful for rate limiting) Default value: `0` * `--wallet ` — Sets the file storing the private state of user chains (an empty one will be created if missing) * `--keystore ` — Sets the file storing the keystore state * `-w`, `--with-wallet ` — Given an ASCII alphanumeric parameter `X`, read the wallet state and the wallet storage config from the environment variables `LINERA_WALLET_{X}` and `LINERA_STORAGE_{X}` instead of `LINERA_WALLET` and `LINERA_STORAGE` * `--storage ` — Storage configuration for the blockchain history * `--storage-max-concurrent-queries ` — The maximal number of simultaneous queries to the database * `--storage-max-stream-queries ` — The maximal number of simultaneous stream queries to the database Default value: `10` * `--storage-max-cache-size ` — The maximal memory used in the storage cache Default value: `10000000` * `--storage-max-value-entry-size ` — The maximal size of a value entry in the storage cache Default value: `1000000` * `--storage-max-find-keys-entry-size ` — The maximal size of a find-keys entry in the storage cache Default value: `1000000` * `--storage-max-find-key-values-entry-size ` — The maximal size of a find-key-values entry in the storage cache Default value: `1000000` * `--storage-max-cache-entries ` — The maximal number of entries in the storage cache Default value: `1000` * `--storage-max-cache-value-size ` — The maximal memory used in the value cache Default value: `10000000` * `--storage-max-cache-find-keys-size ` — The maximal memory used in the find_keys_by_prefix cache Default value: `10000000` * `--storage-max-cache-find-key-values-size ` — The maximal memory used in the find_key_values_by_prefix cache Default value: `10000000` * `--blob-cache-size ` — The maximal number of entries in the blob cache Default value: `1000` * `--confirmed-block-cache-size ` — The maximal number of entries in the confirmed block cache Default value: `1000` * `--certificate-cache-size ` — The maximal number of entries in the assembled certificate cache Default value: `1000` * `--certificate-raw-cache-size ` — The maximal number of entries in the raw certificate cache Default value: `1000` * `--event-cache-size ` — The maximal number of entries in the event cache Default value: `1000` * `--cache-cleanup-interval-secs ` — Interval in seconds between weak reference cleanup sweeps in value caches Default value: `30` * `--storage-replication-factor ` — The replication factor for the keyspace Default value: `1` * `--wasm-runtime ` — The WebAssembly runtime to use * `--with-application-logs` — Output log messages from contract execution * `--tokio-threads ` — The number of Tokio worker threads to use * `--tokio-blocking-threads ` — The number of Tokio blocking threads to use * `--chrome-trace-exporter` — Enable OpenTelemetry Chrome JSON exporter for trace data analysis * `--chrome-trace-file ` — Output file path for Chrome trace JSON format. Can be visualized in chrome://tracing or Perfetto UI * `--otlp-exporter-endpoint ` — OpenTelemetry OTLP exporter endpoint (requires opentelemetry feature) * `--block-cache-size ` — Size of the block cache (default: 5000) Default value: `5000` * `--execution-state-cache-size ` — Size of the execution state cache (default: 10000) Default value: `10000` ## `linera transfer` Transfer funds **Usage:** `linera transfer --from --to ` ###### **Arguments:** * `` — Amount to transfer ###### **Options:** * `--from ` — Sending chain ID (must be one of our chains) * `--to ` — Recipient account ## `linera open-chain` Open (i.e. activate) a new chain deriving the UID from an existing one **Usage:** `linera open-chain [OPTIONS]` ###### **Options:** * `--from ` — Chain ID (must be one of our chains) * `--owner ` — The new owner (otherwise create a key pair and remember it) * `--initial-balance ` — The initial balance of the new chain. This is subtracted from the parent chain's balance Default value: `0` * `--super-owner` — Whether to create a super owner for the new chain ## `linera open-multi-owner-chain` Open (i.e. activate) a new multi-owner chain deriving the UID from an existing one **Usage:** `linera open-multi-owner-chain [OPTIONS]` ###### **Options:** * `--from ` — Chain ID (must be one of our chains) * `--super-owners ` — A JSON list of the new super owners. Absence of the option leaves the current set of super owners unchanged * `--owners ` — A JSON map of the new owners to their weights. Absence of the option leaves the current set of owners unchanged * `--first-leader ` — The leader of the first single-leader round. If set to null, this is random like other rounds. Absence of the option leaves the current setting unchanged * `--multi-leader-rounds ` — The number of rounds in which every owner can propose blocks, i.e. the first round number in which only a single designated leader is allowed to propose blocks. "null" is equivalent to 2^32 - 1. Absence of the option leaves the current setting unchanged * `--open-multi-leader-rounds` — Whether the multi-leader rounds are unrestricted, i.e. not limited to chain owners. This should only be `true` on chains with restrictive application permissions and an application-based mechanism to select block proposers * `--fast-round-ms ` — The duration of the fast round, in milliseconds. "null" means the fast round will not time out. Absence of the option leaves the current setting unchanged * `--base-timeout-ms ` — The duration of the first single-leader and all multi-leader rounds. Absence of the option leaves the current setting unchanged * `--timeout-increment-ms ` — The number of milliseconds by which the timeout increases after each single-leader round. Absence of the option leaves the current setting unchanged * `--fallback-duration-ms ` — The age of an incoming tracked or protected message after which the validators start transitioning the chain to fallback mode, in milliseconds. Absence of the option leaves the current setting unchanged * `--execute-operations ` — A JSON list of applications allowed to execute operations on this chain. If set to null, all operations will be allowed. Otherwise, only operations from the specified applications are allowed, and no system operations. Absence of the option leaves current permissions unchanged * `--mandatory-applications ` — A JSON list of applications, such that at least one operation or incoming message from each of these applications must occur in every block. Absence of the option leaves current mandatory applications unchanged * `--manage-chain ` — A JSON list of applications allowed to manage the chain: close it, change application permissions, and change ownership. Absence of the option leaves current managing applications unchanged * `--call-service-as-oracle ` — A JSON list of applications that are allowed to call services as oracles on the current chain using the system API. If set to null, all applications will be able to do so. Absence of the option leaves the current value of the setting unchanged * `--make-http-requests ` — A JSON list of applications that are allowed to make HTTP requests on the current chain using the system API. If set to null, all applications will be able to do so. Absence of the option leaves the current value of the setting unchanged * `--initial-balance ` — The initial balance of the new chain. This is subtracted from the parent chain's balance Default value: `0` ## `linera show-ownership` Display who owns the chain, and how the owners work together proposing blocks **Usage:** `linera show-ownership [OPTIONS]` ###### **Options:** * `--chain-id ` — The ID of the chain whose owners will be changed ## `linera change-ownership` Change who owns the chain, and how the owners work together proposing blocks. Specify the complete set of new owners, by public key. Existing owners that are not included will be removed. **Usage:** `linera change-ownership [OPTIONS]` ###### **Options:** * `--chain-id ` — The ID of the chain whose owners will be changed * `--super-owners ` — A JSON list of the new super owners. Absence of the option leaves the current set of super owners unchanged * `--owners ` — A JSON map of the new owners to their weights. Absence of the option leaves the current set of owners unchanged * `--first-leader ` — The leader of the first single-leader round. If set to null, this is random like other rounds. Absence of the option leaves the current setting unchanged * `--multi-leader-rounds ` — The number of rounds in which every owner can propose blocks, i.e. the first round number in which only a single designated leader is allowed to propose blocks. "null" is equivalent to 2^32 - 1. Absence of the option leaves the current setting unchanged * `--open-multi-leader-rounds` — Whether the multi-leader rounds are unrestricted, i.e. not limited to chain owners. This should only be `true` on chains with restrictive application permissions and an application-based mechanism to select block proposers * `--fast-round-ms ` — The duration of the fast round, in milliseconds. "null" means the fast round will not time out. Absence of the option leaves the current setting unchanged * `--base-timeout-ms ` — The duration of the first single-leader and all multi-leader rounds. Absence of the option leaves the current setting unchanged * `--timeout-increment-ms ` — The number of milliseconds by which the timeout increases after each single-leader round. Absence of the option leaves the current setting unchanged * `--fallback-duration-ms ` — The age of an incoming tracked or protected message after which the validators start transitioning the chain to fallback mode, in milliseconds. Absence of the option leaves the current setting unchanged ## `linera set-preferred-owner` Change the preferred owner of a chain **Usage:** `linera set-preferred-owner [OPTIONS] --owner ` ###### **Options:** * `--chain-id ` — The ID of the chain whose preferred owner will be changed * `--owner ` — The new preferred owner ## `linera change-application-permissions` Changes the application permissions configuration **Usage:** `linera change-application-permissions [OPTIONS]` ###### **Options:** * `--chain-id ` — The ID of the chain to which the new permissions will be applied * `--execute-operations ` — A JSON list of applications allowed to execute operations on this chain. If set to null, all operations will be allowed. Otherwise, only operations from the specified applications are allowed, and no system operations. Absence of the option leaves current permissions unchanged * `--mandatory-applications ` — A JSON list of applications, such that at least one operation or incoming message from each of these applications must occur in every block. Absence of the option leaves current mandatory applications unchanged * `--manage-chain ` — A JSON list of applications allowed to manage the chain: close it, change application permissions, and change ownership. Absence of the option leaves current managing applications unchanged * `--call-service-as-oracle ` — A JSON list of applications that are allowed to call services as oracles on the current chain using the system API. If set to null, all applications will be able to do so. Absence of the option leaves the current value of the setting unchanged * `--make-http-requests ` — A JSON list of applications that are allowed to make HTTP requests on the current chain using the system API. If set to null, all applications will be able to do so. Absence of the option leaves the current value of the setting unchanged ## `linera close-chain` Close an existing chain. A closed chain cannot execute operations or accept messages anymore. It can still reject incoming messages, so they bounce back to the sender. **Usage:** `linera close-chain ` ###### **Arguments:** * `` — Chain ID (must be one of our chains) ## `linera show-network-description` Print out the network description **Usage:** `linera show-network-description` ## `linera local-balance` Read the current native-token balance of the given account directly from the local state. NOTE: The local balance does not reflect messages that are waiting to be picked in the local inbox, or that have not been synchronized from validators yet. Use `linera sync` then either `linera query-balance` or `linera process-inbox && linera local-balance` for a consolidated balance. **Usage:** `linera local-balance [ACCOUNT]` ###### **Arguments:** * `` — The account to read, written as `OWNER@CHAIN-ID` or simply `CHAIN-ID` for the chain balance. By default, we read the chain balance of the default chain in the wallet ## `linera query-balance` Simulate the execution of one block made of pending messages from the local inbox, then read the native-token balance of the account from the local state. NOTE: The balance does not reflect messages that have not been synchronized from validators yet. Call `linera sync` first to do so. **Usage:** `linera query-balance [ACCOUNT]` ###### **Arguments:** * `` — The account to query, written as `OWNER@CHAIN-ID` or simply `CHAIN-ID` for the chain balance. By default, we read the chain balance of the default chain in the wallet ## `linera sync-balance` (DEPRECATED) Synchronize the local state of the chain with a quorum validators, then query the local balance. This command is deprecated. Use `linera sync && linera query-balance` instead. **Usage:** `linera sync-balance [ACCOUNT]` ###### **Arguments:** * `` — The account to query, written as `OWNER@CHAIN-ID` or simply `CHAIN-ID` for the chain balance. By default, we read the chain balance of the default chain in the wallet ## `linera sync` Synchronize the local state of the chain with a quorum validators **Usage:** `linera sync [OPTIONS] [CHAIN_ID]` ###### **Arguments:** * `` — The chain to synchronize with validators. If omitted, synchronizes the default chain of the wallet ###### **Options:** * `--next-height ` — Stop synchronizing at this block height (exclusive). For instance, `--next-height 0` downloads zero blocks, `--next-height 10` downloads blocks 0 through 9 * `--until-block-time ` — Stop synchronizing at the first block with a timestamp greater than this value (inclusive). The format is `YYYY-MM-DDTHH:MM:SS` or `YYYY-MM-DD HH:MM:SS` in UTC ## `linera process-inbox` Process all pending incoming messages from the inbox of the given chain by creating as many blocks as needed to execute all (non-failing) messages. Failing messages will be marked as rejected and may bounce to their sender depending on their configuration **Usage:** `linera process-inbox [CHAIN_ID]` ###### **Arguments:** * `` — The chain to process. If omitted, uses the default chain of the wallet ## `linera query-shard-info` Query validators for shard information about a specific chain **Usage:** `linera query-shard-info ` ###### **Arguments:** * `` — The chain to query shard information for ## `linera revoke-epochs` Deprecates all committees up to and including the specified one **Usage:** `linera revoke-epochs ` ###### **Arguments:** * `` ## `linera resource-control-policy` View or update the resource control policy **Usage:** `linera resource-control-policy [OPTIONS]` ###### **Options:** * `--wasm-fuel-unit ` — Set the price per unit of Wasm fuel * `--evm-fuel-unit ` — Set the price per unit of EVM fuel * `--read-operation ` — Set the price per read operation * `--write-operation ` — Set the price per write operation * `--byte-runtime ` — Set the price per byte read from runtime * `--byte-read ` — Set the price per byte read * `--byte-written ` — Set the price per byte written * `--blob-read ` — Set the base price to read a blob * `--blob-published ` — Set the base price to publish a blob * `--blob-byte-read ` — Set the price to read a blob, per byte * `--blob-byte-published ` — The price to publish a blob, per byte * `--operation ` — Set the base price of sending an operation from a block.. * `--operation-byte ` — Set the additional price for each byte in the argument of a user operation * `--message ` — Set the base price of sending a message from a block.. * `--message-byte ` — Set the additional price for each byte in the argument of a user message * `--service-as-oracle-query ` — Set the price per query to a service as an oracle * `--http-request ` — Set the price for performing an HTTP request * `--maximum-wasm-fuel-per-block ` — Set the maximum amount of Wasm fuel per block * `--maximum-evm-fuel-per-block ` — Set the maximum amount of EVM fuel per block * `--maximum-service-oracle-execution-ms ` — Set the maximum time in milliseconds that a block can spend executing services as oracles * `--maximum-block-size ` — Set the maximum size of a block, in bytes * `--maximum-blob-size ` — Set the maximum size of data blobs, compressed bytecode and other binary blobs, in bytes * `--maximum-published-blobs ` — Set the maximum number of published blobs per block * `--maximum-bytecode-size ` — Set the maximum size of decompressed contract or service bytecode, in bytes * `--maximum-block-proposal-size ` — Set the maximum size of a block proposal, in bytes * `--maximum-bytes-read-per-block ` — Set the maximum read data per block * `--maximum-bytes-written-per-block ` — Set the maximum write data per block * `--maximum-oracle-response-bytes ` — Set the maximum size of oracle responses * `--maximum-http-response-bytes ` — Set the maximum size in bytes of a received HTTP response * `--http-request-timeout-ms ` — Set the maximum amount of time allowed to wait for an HTTP response * `--http-request-allow-list ` — Set the list of hosts that contracts and services can send HTTP requests to * `--free-application-ids ` — Set the list of application IDs for which message- and event-related fees are waived * `--flags ` — Set the protocol flags that are enabled ## `linera benchmark` Run benchmarks to test network performance **Usage:** `linera benchmark ` ###### **Subcommands:** * `single` — Start a single benchmark process, maintaining a given TPS * `multi` — Run multiple benchmark processes in parallel ## `linera benchmark single` Start a single benchmark process, maintaining a given TPS **Usage:** `linera benchmark single [OPTIONS]` ###### **Options:** * `--num-chains ` — How many chains to use Default value: `10` * `--tokens-per-chain ` — How many tokens to assign to each newly created chain. These need to cover the transaction fees per chain for the benchmark Default value: `0.1` * `--transactions-per-block ` — How many transactions to put in each block Default value: `1` * `--fungible-application-id ` — The application ID of a fungible token on the wallet's default chain. If none is specified, the benchmark uses the native token * `--bps ` — The fixed BPS (Blocks Per Second) rate that block proposals will be sent at Default value: `10` * `--close-chains` — If provided, will close the chains after the benchmark is finished. Keep in mind that closing the chains might take a while, and will increase the validator latency while they're being closed * `--health-check-endpoints ` — A comma-separated list of host:port pairs to query for health metrics. If provided, the benchmark will check these endpoints for validator health and terminate if any validator is unhealthy. Example: "127.0.0.1:21100,validator-1.some-network.linera.net:21100" * `--wrap-up-max-in-flight ` — The maximum number of in-flight requests to validators when wrapping up the benchmark. While wrapping up, this controls the concurrency level when processing inboxes and closing chains Default value: `5` * `--confirm-before-start` — Confirm before starting the benchmark * `--runtime-in-seconds ` — How long to run the benchmark for. If not provided, the benchmark will run until it is interrupted * `--delay-between-chains-ms ` — The delay between chains, in milliseconds. For example, if set to 200ms, the first chain will start, then the second will start 200 ms after the first one, the third 200 ms after the second one, and so on. This is used for slowly ramping up the TPS, so we don't pound the validators with the full TPS all at once * `--config-path ` — Path to YAML file containing chain IDs to send transfers to. If not provided, only transfers between chains in the same wallet * `--single-destination-per-block` — Transaction distribution mode. If false (default), distributes transactions evenly across chains within each block. If true, sends all transactions in each block to a single chain, rotating through chains for subsequent blocks ## `linera benchmark multi` Run multiple benchmark processes in parallel **Usage:** `linera benchmark multi [OPTIONS] --faucet ` ###### **Options:** * `--num-chains ` — How many chains to use Default value: `10` * `--tokens-per-chain ` — How many tokens to assign to each newly created chain. These need to cover the transaction fees per chain for the benchmark Default value: `0.1` * `--transactions-per-block ` — How many transactions to put in each block Default value: `1` * `--fungible-application-id ` — The application ID of a fungible token on the wallet's default chain. If none is specified, the benchmark uses the native token * `--bps ` — The fixed BPS (Blocks Per Second) rate that block proposals will be sent at Default value: `10` * `--close-chains` — If provided, will close the chains after the benchmark is finished. Keep in mind that closing the chains might take a while, and will increase the validator latency while they're being closed * `--health-check-endpoints ` — A comma-separated list of host:port pairs to query for health metrics. If provided, the benchmark will check these endpoints for validator health and terminate if any validator is unhealthy. Example: "127.0.0.1:21100,validator-1.some-network.linera.net:21100" * `--wrap-up-max-in-flight ` — The maximum number of in-flight requests to validators when wrapping up the benchmark. While wrapping up, this controls the concurrency level when processing inboxes and closing chains Default value: `5` * `--confirm-before-start` — Confirm before starting the benchmark * `--runtime-in-seconds ` — How long to run the benchmark for. If not provided, the benchmark will run until it is interrupted * `--delay-between-chains-ms ` — The delay between chains, in milliseconds. For example, if set to 200ms, the first chain will start, then the second will start 200 ms after the first one, the third 200 ms after the second one, and so on. This is used for slowly ramping up the TPS, so we don't pound the validators with the full TPS all at once * `--config-path ` — Path to YAML file containing chain IDs to send transfers to. If not provided, only transfers between chains in the same wallet * `--single-destination-per-block` — Transaction distribution mode. If false (default), distributes transactions evenly across chains within each block. If true, sends all transactions in each block to a single chain, rotating through chains for subsequent blocks * `--processes ` — The number of benchmark processes to run in parallel Default value: `1` * `--faucet ` — The faucet (which implicitly defines the network) * `--client-state-dir ` — If specified, a directory with a random name will be created in this directory, and the client state will be stored there. If not specified, a temporary directory will be used for each client * `--delay-between-processes ` — The delay between starting the benchmark processes, in seconds. If --cross-wallet-transfers is true, this will be ignored Default value: `10` * `--cross-wallet-transfers` — Whether to send transfers between chains in different wallets ## `linera create-genesis-config` Create genesis configuration for a Linera deployment. Create initial user chains and print information to be used for initialization of validator setup. This will also create an initial wallet for the owner of the initial "root" chains **Usage:** `linera create-genesis-config [OPTIONS] --committee --genesis ` ###### **Arguments:** * `` — Number of initial (aka "root") chains to create in addition to the admin chain ###### **Options:** * `--committee ` — Sets the file describing the public configurations of all validators * `--genesis ` — The output config path to be consumed by the server * `--initial-funding ` — Known initial balance of the chain Default value: `0` * `--start-timestamp ` — The start timestamp: no blocks can be created before this time * `--policy-config ` — Configure the resource control policy (notably fees) according to pre-defined settings Default value: `no-fees` Possible values: `no-fees`, `testnet` * `--wasm-fuel-unit-price ` — Set the price per unit of Wasm fuel. (This will overwrite value from `--policy-config`) * `--evm-fuel-unit-price ` — Set the price per unit of EVM fuel. (This will overwrite value from `--policy-config`) * `--read-operation-price ` — Set the price per read operation. (This will overwrite value from `--policy-config`) * `--write-operation-price ` — Set the price per write operation. (This will overwrite value from `--policy-config`) * `--byte-runtime-price ` — Set the price per byte read from runtime. (This will overwrite value from `--policy-config`) * `--byte-read-price ` — Set the price per byte read. (This will overwrite value from `--policy-config`) * `--byte-written-price ` — Set the price per byte written. (This will overwrite value from `--policy-config`) * `--blob-read-price ` — Set the base price to read a blob. (This will overwrite value from `--policy-config`) * `--blob-published-price ` — Set the base price to publish a blob. (This will overwrite value from `--policy-config`) * `--blob-byte-read-price ` — Set the price to read a blob, per byte. (This will overwrite value from `--policy-config`) * `--blob-byte-published-price ` — Set the price to publish a blob, per byte. (This will overwrite value from `--policy-config`) * `--operation-price ` — Set the base price of sending an operation from a block.. (This will overwrite value from `--policy-config`) * `--operation-byte-price ` — Set the additional price for each byte in the argument of a user operation. (This will overwrite value from `--policy-config`) * `--message-price ` — Set the base price of sending a message from a block.. (This will overwrite value from `--policy-config`) * `--message-byte-price ` — Set the additional price for each byte in the argument of a user message. (This will overwrite value from `--policy-config`) * `--service-as-oracle-query-price ` — Set the price per query to a service as an oracle * `--http-request-price ` — Set the price for performing an HTTP request * `--maximum-wasm-fuel-per-block ` — Set the maximum amount of Wasm fuel per block. (This will overwrite value from `--policy-config`) * `--maximum-evm-fuel-per-block ` — Set the maximum amount of EVM fuel per block. (This will overwrite value from `--policy-config`) * `--maximum-service-oracle-execution-ms ` — Set the maximum time in milliseconds that a block can spend executing services as oracles * `--maximum-block-size ` — Set the maximum size of a block. (This will overwrite value from `--policy-config`) * `--maximum-bytecode-size ` — Set the maximum size of decompressed contract or service bytecode, in bytes. (This will overwrite value from `--policy-config`) * `--maximum-blob-size ` — Set the maximum size of data blobs, compressed bytecode and other binary blobs, in bytes. (This will overwrite value from `--policy-config`) * `--maximum-published-blobs ` — Set the maximum number of published blobs per block. (This will overwrite value from `--policy-config`) * `--maximum-block-proposal-size ` — Set the maximum size of a block proposal, in bytes. (This will overwrite value from `--policy-config`) * `--maximum-bytes-read-per-block ` — Set the maximum read data per block. (This will overwrite value from `--policy-config`) * `--maximum-bytes-written-per-block ` — Set the maximum write data per block. (This will overwrite value from `--policy-config`) * `--maximum-oracle-response-bytes ` — Set the maximum size of oracle responses. (This will overwrite value from `--policy-config`) * `--maximum-http-response-bytes ` — Set the maximum size in bytes of a received HTTP response * `--http-request-timeout-ms ` — Set the maximum amount of time allowed to wait for an HTTP response * `--http-request-allow-list ` — Set the list of hosts that contracts and services can send HTTP requests to * `--free-application-ids ` — Set the list of application IDs for which message- and event-related fees are waived * `--flags ` — Set the protocol flags that are enabled * `--testing-prng-seed ` — Force this wallet to generate keys using a PRNG and a given seed. USE FOR TESTING ONLY * `--network-name ` — A unique name to identify this network ## `linera watch` Watch the network for notifications **Usage:** `linera watch [OPTIONS] [CHAIN_ID]` ###### **Arguments:** * `` — The chain ID to watch ###### **Options:** * `--raw` — Show all notifications from all validators ## `linera service` Run a GraphQL service to explore and extend the chains of the wallet **Usage:** `linera service [OPTIONS] --port ` ###### **Options:** * `--listener-skip-process-inbox` — Do not create blocks automatically to receive incoming messages. Instead, wait for an explicit mutation `processInbox` * `--listener-delay-before-ms ` — Wait before processing any notification (useful for testing) Default value: `0` * `--listener-delay-after-ms ` — Wait after processing any notification (useful for rate limiting) Default value: `0` * `--port ` — The port on which to run the server * `--operator-application-ids ` — Application IDs of operator applications to watch. When specified, a task processor is started alongside the node service * `--controller-id ` — A controller to execute a dynamic set of applications running on a dynamic set of chains * `--operators ` — Supported operators and their binary paths. Format: `name=path` or just `name` (uses name as path). Example: `--operators my-operator=/path/to/binary` * `--task-retry-delay-secs ` — Delay in seconds before retrying a failed operator task batch. Only relevant when operators are configured via `--operator-application-ids` or `--controller-id` Default value: `5` * `--read-only` — Run in read-only mode: disallow mutations and prevent queries from scheduling operations. Use this when exposing the service to untrusted clients * `--query-cache-size ` — Enable the application query response cache with the given per-chain capacity. Each entry stores a serialized GraphQL response keyed by (application_id, request_bytes). Incompatible with `--long-lived-services` * `--allow-subscription ` — Allow a named GraphQL subscription query. The operation name is extracted from the query string. Repeatable. Example: `--allow-subscription 'query CounterValue { getCounter { value } }'` * `--subscription-ttl-secs ` — Set a minimum TTL (in seconds) for a subscription query's cached result. When set, invalidations that arrive before the TTL expires are deferred until the remaining time elapses. Format: `Name=Secs`. Repeatable. Example: `--subscription-ttl-secs CounterValue=30` * `--pause` — Start in paused mode: do not synchronize chains from the network. The service will serve queries from local state only, without downloading new blocks or processing incoming messages ## `linera query-application` Query an application with a read-only GraphQL query **Usage:** `linera query-application [OPTIONS] --application-id ` ###### **Arguments:** * `` — The GraphQL query to send (e.g. "value" for a counter application) ###### **Options:** * `--chain-id ` — The chain on which the application is running * `--application-id ` — The application to query ## `linera faucet` Run a GraphQL service that exposes a faucet where users can claim tokens. This gives away the chain's tokens, and is mainly intended for testing **Usage:** `linera faucet [OPTIONS] --amount --storage-path [CHAIN_ID]` ###### **Arguments:** * `` — The chain that gives away its tokens ###### **Options:** * `--port ` — The port on which to run the server Default value: `8080` * `--amount ` — The number of tokens to send to each new chain * `--daily-claim-amount ` — The number of tokens to send per daily claim. Set to 0 to disable daily claims Default value: `0` * `--limit-rate-until ` — The end timestamp: The faucet will rate-limit the token supply so it runs out of money no earlier than this * `--listener-skip-process-inbox` — Do not create blocks automatically to receive incoming messages. Instead, wait for an explicit mutation `processInbox` * `--listener-delay-before-ms ` — Wait before processing any notification (useful for testing) Default value: `0` * `--listener-delay-after-ms ` — Wait after processing any notification (useful for rate limiting) Default value: `0` * `--storage-path ` — Path to the persistent storage file for faucet mappings * `--max-batch-size ` — Maximum number of operations to include in a single block (default: 100) Default value: `100` ## `linera publish-module` Publish module **Usage:** `linera publish-module [OPTIONS] [PUBLISHER]` ###### **Arguments:** * `` — Path to the Wasm file for the application "contract" bytecode * `` — Path to the Wasm file for the application "service" bytecode * `` — An optional chain ID to publish the module. The default chain of the wallet is used otherwise ###### **Options:** * `--vm-runtime ` — The virtual machine runtime to use Default value: `wasm` * `--formats ` — Optional path to an insta SNAP file containing the YAML serialization of the application's `Formats`. When provided, the formats are JSON-encoded and published as a third blob alongside the contract and service blobs; the resulting `ModuleId` carries the formats blob hash ## `linera list-events-from-index` Print events from a specific chain and stream from a specified index **Usage:** `linera list-events-from-index [OPTIONS] --stream-id [CHAIN_ID]` ###### **Arguments:** * `` — The chain to query. If omitted, query the default chain of the wallet ###### **Options:** * `--stream-id ` — The stream being considered * `--start-index ` — Index of the message to start with Default value: `0` ## `linera publish-data-blob` Publish a data blob of binary data **Usage:** `linera publish-data-blob [PUBLISHER]` ###### **Arguments:** * `` — Path to data blob file to be published * `` — An optional chain ID to publish the blob. The default chain of the wallet is used otherwise ## `linera read-data-blob` Verify that a data blob is readable **Usage:** `linera read-data-blob [READER]` ###### **Arguments:** * `` — The hash of the content * `` — An optional chain ID to verify the blob. The default chain of the wallet is used otherwise ## `linera create-application` Create an application **Usage:** `linera create-application [OPTIONS] [CREATOR]` ###### **Arguments:** * `` — The module ID of the application to create * `` — An optional chain ID to host the application. The default chain of the wallet is used otherwise ###### **Options:** * `--json-parameters ` — The shared parameters as JSON string * `--json-parameters-path ` — Path to a JSON file containing the shared parameters * `--json-argument ` — The instantiation argument as a JSON string * `--json-argument-path ` — Path to a JSON file containing the instantiation argument * `--required-application-ids ` — The list of required dependencies of application, if any ## `linera publish-and-create` Create an application, and publish the required module **Usage:** `linera publish-and-create [OPTIONS] [PUBLISHER]` ###### **Arguments:** * `` — Path to the Wasm file for the application "contract" bytecode * `` — Path to the Wasm file for the application "service" bytecode * `` — An optional chain ID to publish the module. The default chain of the wallet is used otherwise ###### **Options:** * `--vm-runtime ` — The virtual machine runtime to use Default value: `wasm` * `--json-parameters ` — The shared parameters as JSON string * `--json-parameters-path ` — Path to a JSON file containing the shared parameters * `--json-argument ` — The instantiation argument as a JSON string * `--json-argument-path ` — Path to a JSON file containing the instantiation argument * `--required-application-ids ` — The list of required dependencies of application, if any ## `linera keygen` Create an unassigned key pair **Usage:** `linera keygen` ## `linera assign` Link the owner to the chain. Expects that the caller has a private key corresponding to the `public_key`, otherwise block proposals will fail when signing with it **Usage:** `linera assign --owner --chain-id ` ###### **Options:** * `--owner ` — The owner to assign * `--chain-id ` — The ID of the chain ## `linera retry-pending-block` Retry a block we unsuccessfully tried to propose earlier. As long as a block is pending most other commands will fail, since it is unsafe to propose multiple blocks at the same height. **Usage:** `linera retry-pending-block [CHAIN_ID]` ###### **Arguments:** * `` — The chain with the pending block. If not specified, the wallet's default chain is used ## `linera execute-operation` Execute a raw user operation on an application. The operation bytes are provided as a hex string (BCS-encoded). **Usage:** `linera execute-operation [OPTIONS] --application-id --operation ` ###### **Options:** * `--application-id ` — The application to send the operation to * `--operation ` — BCS-encoded operation bytes as a hex string * `--chain-id ` — Chain ID to submit the operation on. Defaults to the wallet's default chain ## `linera wallet` Show the contents of the wallet **Usage:** `linera wallet ` ###### **Subcommands:** * `show` — Show the contents of the wallet * `set-default` — Change the wallet default chain * `init` — Initialize a wallet from the genesis configuration * `request-chain` — Request a new chain from a faucet and add it to the wallet * `export-genesis` — Export the genesis configuration to a JSON file * `follow-chain` — Add a new followed chain (i.e. a chain without keypair) to the wallet * `forget-keys` — Forgets the specified chain's keys. The chain will still be followed by the wallet * `forget-chain` — Forgets the specified chain, including the associated key pair. The default chain cannot be forgotten; switch to another chain with `set-default` first ## `linera wallet show` Show the contents of the wallet **Usage:** `linera wallet show [OPTIONS] [CHAIN_ID]` ###### **Arguments:** * `` — The chain to show the metadata ###### **Options:** * `--short` — Only print a non-formatted list of the wallet's chain IDs * `--owned` — Print only the chains that we have a key pair for ## `linera wallet set-default` Change the wallet default chain **Usage:** `linera wallet set-default ` ###### **Arguments:** * `` ## `linera wallet init` Initialize a wallet from the genesis configuration **Usage:** `linera wallet init [OPTIONS]` ###### **Options:** * `--genesis ` — The path to the genesis configuration for a Linera deployment. Either this or `--faucet` must be specified. Overrides `--faucet` if provided. * `--faucet ` — The address of a faucet * `--testing-prng-seed ` — Force this wallet to generate keys using a PRNG and a given seed. USE FOR TESTING ONLY ## `linera wallet request-chain` Request a new chain from a faucet and add it to the wallet **Usage:** `linera wallet request-chain [OPTIONS] --faucet ` ###### **Options:** * `--faucet ` — The address of a faucet * `--set-default` — Whether this chain should become the default chain ## `linera wallet export-genesis` Export the genesis configuration to a JSON file. By default, exports the genesis config from the current wallet. Alternatively, use `--faucet` to retrieve the genesis config directly from a faucet URL. **Usage:** `linera wallet export-genesis [OPTIONS] ` ###### **Arguments:** * `` — Path to save the genesis configuration JSON file ###### **Options:** * `--faucet ` — The address of a faucet to retrieve the genesis config from. If not specified, the genesis config is read from the current wallet ## `linera wallet follow-chain` Add a new followed chain (i.e. a chain without keypair) to the wallet **Usage:** `linera wallet follow-chain [OPTIONS] ` ###### **Arguments:** * `` — The chain ID ###### **Options:** * `--sync` — Synchronize the new chain and download all its blocks from the validators ## `linera wallet forget-keys` Forgets the specified chain's keys. The chain will still be followed by the wallet **Usage:** `linera wallet forget-keys ` ###### **Arguments:** * `` ## `linera wallet forget-chain` Forgets the specified chain, including the associated key pair. The default chain cannot be forgotten; switch to another chain with `set-default` first **Usage:** `linera wallet forget-chain ` ###### **Arguments:** * `` ## `linera chain` Show the information about a chain **Usage:** `linera chain ` ###### **Subcommands:** * `show-block` — Show the contents of a block * `show-chain-description` — Show the chain description of a chain ## `linera chain show-block` Show the contents of a block **Usage:** `linera chain show-block [CHAIN_ID]` ###### **Arguments:** * `` — The height of the block * `` — The chain to show the block (if not specified, the default chain from the wallet is used) ## `linera chain show-chain-description` Show the chain description of a chain **Usage:** `linera chain show-chain-description [CHAIN_ID]` ###### **Arguments:** * `` — The chain ID to show (if not specified, the default chain from the wallet is used) ## `linera project` Manage Linera projects **Usage:** `linera project ` ###### **Subcommands:** * `new` — Create a new Linera project * `test` — Test a Linera project * `publish-and-create` — Build and publish a Linera project ## `linera project new` Create a new Linera project **Usage:** `linera project new [OPTIONS] ` ###### **Arguments:** * `` — The project name. A directory of the same name will be created in the current directory ###### **Options:** * `--linera-root ` — Use the given clone of the Linera repository instead of remote crates * `--dir ` — Use the given directory for the project instead of creating a new one. The directory will be created if it doesn't exist ## `linera project test` Test a Linera project. Equivalent to running `cargo test` with the appropriate test runner. **Usage:** `linera project test [PATH]` ###### **Arguments:** * `` ## `linera project publish-and-create` Build and publish a Linera project **Usage:** `linera project publish-and-create [OPTIONS] [PATH] [NAME] [PUBLISHER]` ###### **Arguments:** * `` — The path of the root of the Linera project. Defaults to current working directory if unspecified * `` — Specify the name of the Linera project. This is used to locate the generated bytecode files. The generated bytecode files should be of the form `_{contract,service}.wasm`. Defaults to the package name in Cargo.toml, with dashes replaced by underscores. * `` — An optional chain ID to publish the module. The default chain of the wallet is used otherwise ###### **Options:** * `--vm-runtime ` — The virtual machine runtime to use Default value: `wasm` * `--json-parameters ` — The shared parameters as JSON string * `--json-parameters-path ` — Path to a JSON file containing the shared parameters * `--json-argument ` — The instantiation argument as a JSON string * `--json-argument-path ` — Path to a JSON file containing the instantiation argument * `--required-application-ids ` — The list of required dependencies of application, if any ## `linera net` Manage a local Linera Network **Usage:** `linera net ` ###### **Subcommands:** * `up` — Start a Local Linera Network * `helper` — Print a bash helper script to make `linera net up` easier to use. The script is meant to be installed in `~/.bash_profile` or sourced when needed ## `linera net up` Start a Local Linera Network **Usage:** `linera net up [OPTIONS]` ###### **Options:** * `--other-initial-chains ` — The number of initial "root" chains created in the genesis config on top of the default "admin" chain. All initial chains belong to the first "admin" wallet. It is recommended to use at least one other initial chain for the faucet Default value: `2` * `--initial-amount ` — The initial amount of native tokens credited in the initial "root" chains, including the default "admin" chain Default value: `1000000` * `--validators ` — The number of validators in the local test network Default value: `1` * `--proxies ` — The number of proxies in the local test network Default value: `1` * `--shards ` — The number of shards per validator in the local test network Default value: `1` * `--policy-config ` — Configure the resource control policy (notably fees) according to pre-defined settings Default value: `no-fees` Possible values: `no-fees`, `testnet` * `--cross-chain-queue-size ` — Number of cross-chain messages allowed before dropping them Default value: `1000` * `--cross-chain-max-retries ` — Maximum number of retries for a cross-chain message Default value: `10` * `--cross-chain-retry-delay-ms ` — Delay before retrying of cross-chain message Default value: `2000` * `--cross-chain-max-backoff-ms ` — Maximum backoff delay for cross-chain message retries Default value: `30000` * `--cross-chain-sender-delay-ms ` — Introduce a delay before sending every cross-chain message (e.g. for testing purpose) Default value: `0` * `--cross-chain-sender-failure-rate ` — Drop cross-chain messages randomly at the given rate (0 <= rate < 1) (meant for testing) Default value: `0.0` * `--testing-prng-seed ` — Force this wallet to generate keys using a PRNG and a given seed. USE FOR TESTING ONLY * `--path ` — Run with a specific path where the wallet and validator input files are. If none, then a temporary directory is created * `--external-protocol ` — External protocol used, either `grpc` or `grpcs` Default value: `grpc` * `--with-faucet` — If present, a faucet is started on a dedicated chain with its own wallet Default value: `false` * `--faucet-port ` — The port on which to run the faucet server Default value: `8080` * `--faucet-amount ` — The number of tokens to send to each new chain created by the faucet Default value: `1000` * `--with-block-exporter` — Whether to start a block exporter for each validator Default value: `false` * `--num-block-exporters ` — The number of block exporters to start Default value: `1` * `--exporter-address ` — The address of the block exporter Default value: `localhost` * `--exporter-port ` — The port on which to run the block exporter Default value: `8081` * `--http-request-allow-list ` — Set the list of hosts that contracts and services can send HTTP requests to ## `linera net helper` Print a bash helper script to make `linera net up` easier to use. The script is meant to be installed in `~/.bash_profile` or sourced when needed **Usage:** `linera net helper` ## `linera validator` Manage validators in the committee **Usage:** `linera validator ` ###### **Subcommands:** * `add` — Add a validator to the committee * `batch-query` — Query multiple validators using a JSON specification file * `update` — Apply multiple validator changes from JSON input * `list` — List all validators in the committee * `query` — Query a single validator's state and connectivity * `query-block` — Query a single validator for a block at a particular chain and height * `remove` — Remove a validator from the committee * `sync` — Synchronize chain state to a validator ## `linera validator add` Add a validator to the committee. Adds a new validator with the specified public key, account key, network address, and voting weight. The validator must not already exist in the committee. **Usage:** `linera validator add [OPTIONS] --public-key --account-key --address
` ###### **Options:** * `--public-key ` — Public key of the validator to add * `--account-key ` — Account public key for receiving payments and rewards * `--address
` — Network address where the validator can be reached (e.g., grpcs://host:port) * `--votes ` — Voting weight for consensus (default: 1) * `--skip-online-check` — Skip online connectivity verification before adding ## `linera validator batch-query` Query multiple validators using a JSON specification file. Reads validator specifications from a JSON file and queries their state. The JSON should contain an array of validator objects with publicKey and networkAddress. **Usage:** `linera validator batch-query [OPTIONS] ` ###### **Arguments:** * `` — Path to JSON file containing validator query specifications ###### **Options:** * `--chain-id ` — Chain ID to query (defaults to default chain) ## `linera validator update` Apply multiple validator changes from JSON input. Reads a JSON object mapping validator public keys to their desired state: - Key with state object (address, votes, accountKey): add or modify validator - Key with null: remove validator - Keys not present: unchanged Input can be provided via file path, stdin pipe, or shell redirect. **Usage:** `linera validator update [OPTIONS] [FILE]` ###### **Arguments:** * `` — Path to JSON file with validator changes (omit or use "-" for stdin) ###### **Options:** * `--dry-run` — Preview changes without applying them * `-y`, `--yes` — Skip confirmation prompt (use with caution) * `--skip-online-check` — Skip online connectivity checks for validators being added or modified ## `linera validator list` List all validators in the committee. Displays the current validator set with their network addresses, voting weights, and connection status. Optionally filter by minimum voting weight. **Usage:** `linera validator list [OPTIONS]` ###### **Options:** * `--chain-id ` — Chain ID to query (defaults to default chain) * `--min-votes ` — Only show validators with at least this many votes ## `linera validator query` Query a single validator's state and connectivity. Connects to a validator at the specified network address and queries its view of the blockchain state, including block height and committee information. **Usage:** `linera validator query [OPTIONS]
` ###### **Arguments:** * `
` — Network address of the validator (e.g., grpcs://host:port) ###### **Options:** * `--chain-id ` — Chain ID to query about (defaults to default chain) * `--public-key ` — Expected public key of the validator (for verification) ## `linera validator query-block` Query a single validator for a block at a particular chain and height. Connects to a validator at the specified network address and queries its view of the blockchain. **Usage:** `linera validator query-block [OPTIONS] --height
` ###### **Arguments:** * `
` — Network address of the validator (e.g., grpcs://host:port) ###### **Options:** * `--chain-id ` — Chain ID to query about (defaults to default chain) * `--public-key ` — Expected public key of the validator (for verification) * `--height ` — Block height to query about ## `linera validator remove` Remove a validator from the committee. Removes the validator with the specified public key from the committee. The validator will no longer participate in consensus. **Usage:** `linera validator remove --public-key ` ###### **Options:** * `--public-key ` — Public key of the validator to remove ## `linera validator sync` Synchronize chain state to a validator. Pushes the current chain state from local storage to a validator node, ensuring the validator has up-to-date information about specified chains. **Usage:** `linera validator sync [OPTIONS]
` ###### **Arguments:** * `
` — Network address of the validator to sync (e.g., grpcs://host:port) ###### **Options:** * `--chains ` — Chain IDs to synchronize (defaults to all chains in wallet) * `--check-online` — Verify validator is online before syncing ## `linera storage` Operation on the storage **Usage:** `linera storage ` ###### **Subcommands:** * `delete-all` — Delete all the namespaces in the database * `delete-namespace` — Delete a single namespace from the database * `check-existence` — Check existence of a namespace in the database * `initialize` — Initialize a namespace in the database * `list-namespaces` — List the namespaces in the database * `list-blob-ids` — List the blob IDs in the database * `list-chain-ids` — List the chain IDs in the database * `list-event-ids` — List the event IDs in the database ## `linera storage delete-all` Delete all the namespaces in the database **Usage:** `linera storage delete-all` ## `linera storage delete-namespace` Delete a single namespace from the database **Usage:** `linera storage delete-namespace` ## `linera storage check-existence` Check existence of a namespace in the database **Usage:** `linera storage check-existence` ## `linera storage initialize` Initialize a namespace in the database **Usage:** `linera storage initialize --genesis ` ###### **Options:** * `--genesis ` ## `linera storage list-namespaces` List the namespaces in the database **Usage:** `linera storage list-namespaces` ## `linera storage list-blob-ids` List the blob IDs in the database **Usage:** `linera storage list-blob-ids` ## `linera storage list-chain-ids` List the chain IDs in the database **Usage:** `linera storage list-chain-ids` ## `linera storage list-event-ids` List the event IDs in the database **Usage:** `linera storage list-event-ids` ## `linera completion` Generate shell completion scripts **Usage:** `linera completion ` ###### **Arguments:** * `` — The shell to generate completions for Possible values: `bash`, `elvish`, `fish`, `powershell`, `zsh`
This document was generated automatically by clap-markdown.