Skip to main content

Transaction Commands

All transaction commands follow the pattern:

qorechaind tx <module> <command> [args] [flags]
note

Set --chain-id qorechain-vladi to broadcast against the live mainnet (chain version v3.1.85), or --chain-id qorechain-diana for the testnet. If omitted, the client uses the chain-id from your local config.

Common flags apply to every tx subcommand:

FlagTypeDescription
--fromstringName or address of the signing key
--chain-idstringChain identifier (default: from config)
--feesstringTransaction fees (e.g., 500uqor)
--gasstringGas limit or auto for estimation
--gas-adjustmentfloatGas multiplier when using auto (default: 1.0)
--keyring-backendstringKeyring backend: os, file, test
--nodestringRPC endpoint (default: tcp://localhost:26657)
--broadcast-modestringsync, async, or block
-yboolSkip confirmation prompt

bank

send

Transfer tokens from one account to another.

qorechaind tx bank send <from_address> <to_address> <amount> [flags]

staking

create-validator

Create a new validator on the network.

qorechaind tx staking create-validator [flags]
FlagTypeDescription
--amountstringSelf-delegation amount (e.g., 1000000uqor)
--pubkeystringValidator consensus public key (JSON)
--monikerstringValidator display name
--commission-ratestringInitial commission rate (e.g., 0.10)
--commission-max-ratestringMaximum commission rate
--commission-max-change-ratestringMaximum daily commission change rate
--min-self-delegationstringMinimum self-delegation required

edit-validator

Edit an existing validator's description or commission.

qorechaind tx staking edit-validator [flags]

delegate

Delegate tokens to a validator.

qorechaind tx staking delegate <validator_address> <amount> [flags]

redelegate

Move delegation from one validator to another.

qorechaind tx staking redelegate <src_validator> <dst_validator> <amount> [flags]

unbond

Unbond tokens from a validator.

qorechaind tx staking unbond <validator_address> <amount> [flags]

distribution

withdraw-all-rewards

Withdraw all pending staking rewards.

qorechaind tx distribution withdraw-all-rewards [flags]

withdraw-rewards

Withdraw rewards from a specific validator.

qorechaind tx distribution withdraw-rewards <validator_address> [flags]
FlagTypeDescription
--commissionboolAlso withdraw validator commission

gov

submit-proposal

Submit a governance proposal.

qorechaind tx gov submit-proposal <proposal_file.json> [flags]

The proposal file is a JSON document specifying the proposal type, title, description, and any messages to execute.

vote

Vote on an active proposal.

qorechaind tx gov vote <proposal_id> <option> [flags]

Vote options: yes, no, abstain, no_with_veto.

deposit

Add a deposit to a proposal.

qorechaind tx gov deposit <proposal_id> <amount> [flags]

pqc

The cosmos transaction path requires a hybrid signature by default (hybrid_signature_mode = required). The gen-key and cosign commands produce the Dilithium-5 (ML-DSA-87) key and the PQCHybridSignature extension needed to transact on the cosmos path alongside the classical secp256k1 signature.

gen-key

Generate a Dilithium-5 (ML-DSA-87) post-quantum key for hybrid signing.

qorechaind tx pqc gen-key [flags]

cosign

Attach a Dilithium-5 cosignature to a transaction as a PQCHybridSignature extension, producing a hybrid (secp256k1 + ML-DSA-87) transaction. Required for cosmos-path transactions under the default required enforcement mode. Standard CosmJS / relayer tooling must produce this extension to transact; the QoreChain SDK's buildHybridTx (with includePqcPublicKey) does the equivalent.

qorechaind tx pqc cosign <unsigned_tx_file> [flags]

register-key

Register a post-quantum public key for an account.

qorechaind tx pqc register-key <algorithm> <pubkey_hex> [flags]

register-key-v2

Register a PQC key with extended metadata and attestation.

qorechaind tx pqc register-key-v2 <algorithm> <pubkey_hex> [flags]
FlagTypeDescription
--attestationstringTEE attestation data (hex)
--metadatastringAdditional key metadata (JSON)

migrate-key

Migrate an existing classical key to a hybrid PQC key pair.

qorechaind tx pqc migrate-key <algorithm> <pqc_pubkey_hex> [flags]

recover-key

Deterministically reconstruct the account's ML-DSA-87 key from its BIP-39 mnemonic (read from stdin) and store it locally (available as of chain version v3.1.85). Uses the ecosystem-standard derivation SHAKE-256("qorechain:pqc:v1|address|mnemonic").

qorechaind tx pqc recover-key <name> <address> [flags]
FlagTypeDescription
--derivationstringadapter (canonical, default) or bridge (legacy SHAKE-256(mnemonic))

rotate-key

Rotate the account's ML-DSA-87 key within the same algorithm (available as of chain version v3.1.85) — e.g. migrate a legacy-derived key to the canonical derivation, or retire a compromised key. Reads the mnemonic from stdin, dual-signs with the old and new keys, cosigns the envelope with the old key, and broadcasts. Emits only the transaction JSON on stdout (informational lines go to stderr), so it composes with -o json.

qorechaind tx pqc rotate-key [flags]
FlagTypeDescription
--old-derivationstringDerivation of the currently registered key (adapter | bridge)
--new-derivationstringDerivation of the new key (adapter | bridge)
--new-randomboolGenerate a fresh random key instead

xqore

lock

Lock QOR tokens into an xQORE governance staking position.

qorechaind tx xqore lock <amount> [flags]
FlagTypeDescription
--lock-durationstringLock duration (e.g., 30d, 90d, 180d)

unlock

Unlock xQORE back to QOR. Early unlock may incur penalties depending on the penalty tier.

qorechaind tx xqore unlock <amount> [flags]

bridge

deposit

Initiate a bridge deposit from an external chain.

qorechaind tx bridge deposit <chain_id> <amount> <asset> [flags]
FlagTypeDescription
--recipientstringRecipient address on QoreChain

withdraw

Initiate a bridge withdrawal to an external chain.

qorechaind tx bridge withdraw <chain_id> <amount> <asset> <destination_address> [flags]

update-chain-config

Activate or reconfigure a chain's bridge in a single signed transaction (available as of chain version v3.1.80). Requires the bridge_admin key or a qcb_bridge license — no governance proposal or chain upgrade. Sets the contract address, confirmation count, architecture, and status.

qorechaind tx bridge update-chain-config <chain_id> [flags] --from bridge-admin

set-verifier-bootstrap

Select a chain's active verifier and install its trust root (also bridge_admin-gated).

qorechaind tx bridge set-verifier-bootstrap <chain_id> <verifier> [flags] --from bridge-admin

crossvm

call

Send a cross-VM message between execution environments (EVM, CosmWasm, SVM).

qorechaind tx crossvm call <target_vm> <contract_address> <payload_hex> [flags]
FlagTypeDescription
--source-vmstringSource VM: evm, cosmwasm, svm
--gas-limituintGas limit for the cross-VM execution

process-queue

Manually process pending cross-VM messages (operator command).

qorechaind tx crossvm process-queue [flags]

svm

deploy-program

Deploy a BPF program to the SVM runtime.

qorechaind tx svm deploy-program <program_binary_path> [flags]
FlagTypeDescription
--program-idstringOptional program ID (base58)

execute

Execute an instruction on a deployed SVM program.

qorechaind tx svm execute <program_id> <instruction_data_hex> [flags]
FlagTypeDescription
--accountsstringComma-separated account pubkeys for the instruction

create-account

Create a new SVM account with allocated data space.

qorechaind tx svm create-account <pubkey> <space> [flags]
FlagTypeDescription
--ownerstringOwner program (base58, default: system program)

multilayer

register-sidechain

Register a new sidechain layer.

qorechaind tx multilayer register-sidechain <layer-id> <description> [flags]
FlagTypeDescription
--block-time-msuintTarget block time in ms (default 2000)
--domainsstringComma-separated supported domains (default defi)
--max-txuintMax transactions per block (default 1000)
--min-validatorsuint32Minimum validator set size (default 1)
--settlement-intervaluintSettlement interval in blocks (default 100)
--vm-typesstringComma-separated supported VM types (default evm)

register-paychain

Register a new paychain layer for high-frequency microtransactions.

qorechaind tx multilayer register-paychain <layer-id> <description> [flags]
FlagTypeDescription
--max-txuintMax transactions per block (default 5000)
--settlement-intervaluintSettlement interval in blocks (default 50)

anchor-state

Submit a state anchor (settlement) for a registered layer.

qorechaind tx multilayer anchor-state <layer-id> <layer-height> <state-root-hex> <pqc-agg-sig-hex> [flags]

route-tx

Route a transaction to the optimal layer.

qorechaind tx multilayer route-tx <tx_data_hex> [flags]
FlagTypeDescription
--target-layerstringForce routing to a specific layer

update-layer-status

Update the operational status of a layer (operator only).

qorechaind tx multilayer update-layer-status <layer_id> <status> [flags]

Status values: active, paused, draining.

challenge-anchor

Submit a fraud challenge against a state anchor.

qorechaind tx multilayer challenge-anchor <layer_id> <anchor_hash> <proof_hex> [flags]

rdk

create-rollup

Register a new rollup with the Rollup Development Kit.

qorechaind tx rdk create-rollup <rollup_id> [flags]
FlagTypeDescription
--settlement-typestringoptimistic, zk, pessimistic, sovereign
--profilestringPreset: defi, gaming, nft, enterprise, custom
--stakestringOperator stake amount
--da-enabledboolEnable native data availability

submit-batch

Submit a settlement batch for a rollup.

qorechaind tx rdk submit-batch <rollup_id> <state_root_hex> <batch_data_path> [flags]

challenge-batch

Submit a fraud challenge against a settlement batch (optimistic rollups).

qorechaind tx rdk challenge-batch <rollup_id> <batch_index> <proof_hex> [flags]

finalize-batch

Manually finalize a batch that has passed the challenge window.

qorechaind tx rdk finalize-batch <rollup_id> <batch_index> [flags]

pause-rollup

Pause a rollup (operator only).

qorechaind tx rdk pause-rollup <rollup_id> [flags]

resume-rollup

Resume a paused rollup (operator only).

qorechaind tx rdk resume-rollup <rollup_id> [flags]

stop-rollup

Permanently stop a rollup and release its stake (operator only).

qorechaind tx rdk stop-rollup <rollup_id> [flags]
note

Rollup withdrawal and cross-layer settlement are also exposed under the rdk transaction group (for example, an execute-withdrawal command that settles a withdrawal proven against a finalized batch). The exact arguments and flags depend on your rollup's settlement type and DA configuration; see the Rollup Development Kit documentation for the authoritative command surface before constructing these transactions.


babylon

submit-btc-checkpoint

Submit a BTC checkpoint for an epoch.

qorechaind tx babylon submit-btc-checkpoint <epoch> <checkpoint_hex> [flags]

btc-restake

Restake BTC via the Babylon integration.

qorechaind tx babylon btc-restake <amount> [flags]
FlagTypeDescription
--btc-tx-hashstringBitcoin transaction hash as proof

abstractaccount

create

Create an abstract account with programmable spending rules.

qorechaind tx abstractaccount create [flags]
FlagTypeDescription
--spending-rulesstringJSON file defining spending rules

update-spending-rules

Update the spending rules for an existing abstract account.

qorechaind tx abstractaccount update-spending-rules <rules_file.json> [flags]

execute-cosmos

Relay an authenticator-authorized Native-lane bank send from a canonical account (available as of chain version v3.1.85). The relayer (--from) signs and pays for the envelope; the linked key's signature over the replay-bound sign bytes is the authorization. See Linked Wallet Authenticators.

qorechaind tx abstractaccount execute-cosmos <account> <to> <amount> \
<auth_pubkey_hex> <auth_signature_hex> <nonce> --from relayer -y

execute-evm

Relay an authenticator-authorized EVM call or transfer from the canonical account's EVM address (available as of chain version v3.1.85). The nonce is the account's current EVM nonce.

qorechaind tx abstractaccount execute-evm <account> <to> <value> <data_hex> \
<auth_pubkey_hex> <auth_signature_hex> <nonce> --from relayer -y

rlconsensus

PRISM is the reinforcement-learning layer that tunes consensus parameters. These commands control the PRISM agent; the CLI module name rlconsensus and its subcommands are preserved verbatim.

set-agent-mode

Set the PRISM agent operational mode (governance only).

qorechaind tx rlconsensus set-agent-mode <mode> [flags]

Mode values: 0 (off), 1 (observe), 2 (suggest), 3 (auto).

resume-agent

Resume the PRISM agent after a circuit breaker trip.

qorechaind tx rlconsensus resume-agent [flags]

update-policy

Update the PRISM agent policy configuration (governance only).

qorechaind tx rlconsensus update-policy <policy_file.json> [flags]

update-reward-weights

Update the reward weight configuration for the PRISM agent.

qorechaind tx rlconsensus update-reward-weights [flags]
FlagTypeDescription
--throughput-weightstringWeight for throughput reward
--latency-weightstringWeight for latency reward
--security-weightstringWeight for security reward