XGR.NETWORK / DOCUMENTATION

Interchain CLI

Interchain CLI reference

Documentation index. Source: public xgr-node command/ibft/interchain/. The command family is separate from ordinary node/server/staking CLI.

Invocation

Inherited --grpc-address is accepted by the IBFT command family; these local Interchain control commands use their data-directory queues/secrets as described below. It does not override compiled source-chain RPC policy.

All commands below use the xgrchain ibft interchain prefix. --json selects machine-readable command output; read the returned error as well as the process result. The local data-directory commands communicate with the running worker through its storage/queue model; supplying a different directory does not select another chain RPC. Public transfer users do not need a validator data directory or a validator BLS key.

bootstrap-proof

Creates a possession/bootstrap proof from an existing validator ECDSA/BLS identity. It reads secrets and signs the bootstrap payload locally; it does not register a token route or broadcast a destination deployment.

Flag Type/default Requirement and meaning
--data-dir string, empty Local secrets-manager directory; mutually exclusive with --config
--config string, empty Cloud secrets-manager configuration; exactly one of these two is required
--origin-chain-id uint64, 0 Required nonzero XGR origin chain identity
--destination-domain uint32, 0 Required nonzero destination domain
--json boolean, false Structured output
xgrchain ibft interchain bootstrap-proof \
  --data-dir /ABS/VALIDATOR_DATA \
  --origin-chain-id 1643 --destination-domain 8453 --json

Result fields: validator (ECDSA address), originChainId, destinationDomain, blsPublicKey (compressed public key), blsPublicKeyEIP2537, payload and possessionProof (EIP-2537 representation). The payload binds identity and target domain. Both secret keys must already exist; missing/unparseable secrets or failed key conversion produce an error. The output contains public proof material, not private keys. Verify it against the intended destination Registry bootstrap interface before use.

set-active

Requests activation/deactivation of this validator on an already configured destination. This is validator membership management, not permission to create asset routes. The worker validates canonical XGR eligibility, collects membership quorum, sends the destination transaction where needed and checks final state.

Flag Type/default Meaning
--data-dir string, empty Required running validator directory
--chain string, empty Required configured destination name, e.g. base or arbitrum
--active string, empty Required explicit true or false; no implicit default
--timeout duration, 2m Positive wait for quorum, receipt and final-state verification
--json boolean, false Structured output
xgrchain ibft interchain set-active \
  --chain base --active true --data-dir /ABS/VALIDATOR_DATA --timeout 2m --json
xgrchain ibft interchain set-active \
  --chain base --active false --data-dir /ABS/VALIDATOR_DATA --timeout 2m --json

Result fields: validator, normalized chain, requestedActive, finalActive, changed, setId, optional transactionHash, destinationCommitted. A matching pre-existing state can return changed:false without a new destination transaction. A timeout is not proof that no transaction was sent: inspect destination state and worker outcome before retrying. Reject empty directory/chain, unspecified or invalid active string and nonpositive timeout.

fee create

Builds a positive, source-native fee proposal for the entire configured source chain. Creation does not sign approval. The command reads current destination membership set and confirmed source fee nonce, constructs the proposal and queues it to the worker.

Flag Type/default Meaning
--data-dir string, empty Required running validator directory
--source string, empty Required configured source-chain name
--fee-wei decimal string, empty Required positive uint256 in the source native currency's smallest unit
--nonce uint64, 0 0 auto-detects confirmed nonce+1; explicit value must equal the next nonce
--ttl duration, 5m Positive proposal lifetime, maximum 10m
--timeout duration, 2m Worker response wait
--json boolean, false Structured output
# Example amount only: 1,000,000,000 wei. Select the intended economic fee yourself.
xgrchain ibft interchain fee create \
  --source base --fee-wei 1000000000 --ttl 5m \
  --data-dir /ABS/VALIDATOR_DATA --json

The proposal binds sourceChainId, sourceDomain, source Registry, current setId, next nonce, Unix validUntil and validatorFeeWei. Result: proposalId, approved and quorum. approved:false is expected from unsigned creation. Errors include invalid/zero/out-of-range fee, invalid TTL, missing chain bindings, unreadable membership/nonce, explicit nonce mismatch and nonce exhaustion. Do not interpret the example amount as the deployed current fee.

fee approve

Explicitly approves an existing source-fee proposal with this validator's BLS key. This is the signing step and must follow inspection of the actual proposal's source, Registry, set, nonce, expiry and amount.

Flag Type/default Meaning
--data-dir string, empty Required running validator directory
--proposal-id 0x-prefixed bytes32, empty Required nonzero 32-byte proposal hash
--timeout duration, 2m Worker response wait
--json boolean, false Structured output
xgrchain ibft interchain fee approve \
  --proposal-id "$PROPOSAL_ID" --data-dir /ABS/VALIDATOR_DATA --json

Result: proposalId, approved, quorum. One approval is not a completed 2/3 quorum. Invalid hash syntax, zero hash, missing local storage/proposal, ineligible identity or worker validation failure is an error. This command does not create or approve a route registration.

fee execute

Submits an existing completed source-fee quorum on chain and confirms the resulting nonce. It does not sign another validator's vote and does not create routes.

Flag Type/default Meaning
--data-dir string, empty Required local running validator directory
--proposal-id nonzero bytes32, empty Existing completed source-fee proposal
--timeout positive duration, 6m On-chain execution wait
--json boolean, false Structured output
xgrchain ibft interchain fee execute \
  --proposal-id "$PROPOSAL_ID" --data-dir /ABS/VALIDATOR_DATA --timeout 6m --json

Result: proposalId, transactionHash, confirmed nonce. The source Registry rejects an invalid quorum, wrong current set, stale/nonconsecutive nonce, expired proposal, wrong binding or invalid fee. Execution requires source-chain availability and transaction gas. After a timeout inspect the canonical transaction/nonce before another submission.

storage-status

Read-only offline measurement of persisted Interchain state. It does not enqueue work, sign, delete files, rebuild proofs or contact a destination.

Flag Type/default Meaning
--data-dir string, empty Required node directory to inspect
--json boolean, false Structured measurement
xgrchain ibft interchain storage-status --data-dir /ABS/VALIDATOR_DATA --json

The result reports persisted file/byte totals and attestation, local-vote, quorum-request and governance categories. A missing directory/file permission failure is not an empty healthy database. Size measurements do not prove source finality, quorum completeness, delivery or a recoverable backup.

Storage result schema

storage-status --json reports baseDir, totalFiles, totalBytes, attestationFiles, localVoteFiles, requestFiles, governanceFiles, otherFiles. It walks regular files under <data-dir>/interchain; symlinks and nonregular entries are not counted as regular data. The category totals are file counts; only totalBytes is the aggregate byte count.

Node-wide CLI

For all other node subcommands and flags use the complete source-derived node CLI inventory and the existing node operations runbook. ibft interchain --help is the executable entry point; do not infer older route-admission commands from historical prose.