Transaction Commands
All transaction commands follow the pattern:
qorechaind tx <module> <command> [args] [flags]
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:
| Flag | Type | Description |
|---|---|---|
--from | string | Name or address of the signing key |
--chain-id | string | Chain identifier (default: from config) |
--fees | string | Transaction fees (e.g., 500uqor) |
--gas | string | Gas limit or auto for estimation |
--gas-adjustment | float | Gas multiplier when using auto (default: 1.0) |
--keyring-backend | string | Keyring backend: os, file, test |
--node | string | RPC endpoint (default: tcp://localhost:26657) |
--broadcast-mode | string | sync, async, or block |
-y | bool | Skip 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]
| Flag | Type | Description |
|---|---|---|
--amount | string | Self-delegation amount (e.g., 1000000uqor) |
--pubkey | string | Validator consensus public key (JSON) |
--moniker | string | Validator display name |
--commission-rate | string | Initial commission rate (e.g., 0.10) |
--commission-max-rate | string | Maximum commission rate |
--commission-max-change-rate | string | Maximum daily commission change rate |
--min-self-delegation | string | Minimum 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]
| Flag | Type | Description |
|---|---|---|
--commission | bool | Also 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]
| Flag | Type | Description |
|---|---|---|
--attestation | string | TEE attestation data (hex) |
--metadata | string | Additional 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]
| Flag | Type | Description |
|---|---|---|
--derivation | string | adapter (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]
| Flag | Type | Description |
|---|---|---|
--old-derivation | string | Derivation of the currently registered key (adapter | bridge) |
--new-derivation | string | Derivation of the new key (adapter | bridge) |
--new-random | bool | Generate a fresh random key instead |
xqore
lock
Lock QOR tokens into an xQORE governance staking position.
qorechaind tx xqore lock <amount> [flags]
| Flag | Type | Description |
|---|---|---|
--lock-duration | string | Lock 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]
| Flag | Type | Description |
|---|---|---|
--recipient | string | Recipient 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]
| Flag | Type | Description |
|---|---|---|
--source-vm | string | Source VM: evm, cosmwasm, svm |
--gas-limit | uint | Gas 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]
| Flag | Type | Description |
|---|---|---|
--program-id | string | Optional program ID (base58) |
execute
Execute an instruction on a deployed SVM program.
qorechaind tx svm execute <program_id> <instruction_data_hex> [flags]
| Flag | Type | Description |
|---|---|---|
--accounts | string | Comma-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]
| Flag | Type | Description |
|---|---|---|
--owner | string | Owner program (base58, default: system program) |
multilayer
register-sidechain
Register a new sidechain layer.
qorechaind tx multilayer register-sidechain <layer-id> <description> [flags]
| Flag | Type | Description |
|---|---|---|
--block-time-ms | uint | Target block time in ms (default 2000) |
--domains | string | Comma-separated supported domains (default defi) |
--max-tx | uint | Max transactions per block (default 1000) |
--min-validators | uint32 | Minimum validator set size (default 1) |
--settlement-interval | uint | Settlement interval in blocks (default 100) |
--vm-types | string | Comma-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]
| Flag | Type | Description |
|---|---|---|
--max-tx | uint | Max transactions per block (default 5000) |
--settlement-interval | uint | Settlement 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]
| Flag | Type | Description |
|---|---|---|
--target-layer | string | Force 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]
| Flag | Type | Description |
|---|---|---|
--settlement-type | string | optimistic, zk, pessimistic, sovereign |
--profile | string | Preset: defi, gaming, nft, enterprise, custom |
--stake | string | Operator stake amount |
--da-enabled | bool | Enable 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]
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]
| Flag | Type | Description |
|---|---|---|
--btc-tx-hash | string | Bitcoin transaction hash as proof |
abstractaccount
create
Create an abstract account with programmable spending rules.
qorechaind tx abstractaccount create [flags]
| Flag | Type | Description |
|---|---|---|
--spending-rules | string | JSON 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]
| Flag | Type | Description |
|---|---|---|
--throughput-weight | string | Weight for throughput reward |
--latency-weight | string | Weight for latency reward |
--security-weight | string | Weight for security reward |