--rpc-url <URL> (-s), --header <NAME=VALUE>, and --json (-j) flags. JSON mode emits a single envelope ({ ok, command, timestamp, result | error }).
Two surfaces: gen wallet and gen client
The activation commands are mirrored under both gen wallet and gen client:
gen wallet <cmd>resolves the signing wallet via the usual precedence (positionalNAME,--wallet, then the active wallet recorded in~/.gen/wallets/config.toml).gen client <cmd>is the lower-level form. It accepts the same flags but does not fall back to the active wallet for commands that need one.
Lifecycle in one flow
The longest possible flow uses every command in sequence:sign-and-submit-activation.
build-activation
Construct an unsigned activation against a component method. The output is the canonical pre-image bytes; nothing has been signed and nothing has touched the network.
--component-id+--method+--paramsor--args(one of--params/--args).--request <JSON_OBJECT>: a single JSON blob withcomponent_id,function, and one ofparamsorargs.--request-file <PATH>: the same JSON blob read from a file.
[NAME](positional) or--wallet <NAME>selects the wallet whose public key is used as the signer (and, by default, the target).
gen client build-activation accepts the same flags but does not fall back to the active wallet.
The output is the unsigned activation bytes (0x-prefixed hex by default; or inside the JSON envelope under --json). Treat it as opaque: pass it to sign-activation or simulate-activation unchanged.
simulate-activation
Dry-run an unsigned activation against the validator without broadcasting. Returns the same execution result the network would produce: per-operation storage changes, emitted events, continuations, and the outcome.
--unsigned-activation <HEX_OR_BASE64>: bytes inline.--unsigned-activation-file <PATH>: bytes read from a file (hex or base64 text).
--block-index <BLOCK_INDEX>: simulate against state at a specific block. Defaults to the latest finalized block.
sign-activation
Sign an unsigned activation with a wallet’s private key. The signature covers the 82-byte pre-image derived from the activation; see What is signed.
--unsigned-activation <HEX_OR_BASE64>: bytes inline.--unsigned-activation-file <PATH>: bytes read from a file.
[NAME](positional) or--wallet <NAME>: signing wallet. Defaults to the active wallet.--activation-tag <U32>: override thetagfield before signing. Use this when you need to resubmit a structurally identical activation without tripping replay protection. Two activations with the same signer, target, and operations but different tags get different IDs.
submit-activation.
gen client sign-activation is the same command without the active-wallet fallback.
submit-activation
Send a pre-signed activation to the network.
--signed-activation <HEX_OR_BASE64>: bytes inline.--signed-activation-file <PATH>: bytes read from a file.
--no-wait: return as soon as the validator acknowledges the submission, instead of waiting for the activation to complete. The response still contains theactivation_id; follow up withget-activationto confirm the final outcome.
submit-activation does not need a wallet: the activation is already signed, and the signer is recorded in the signed bytes. This is the command you run on an internet-connected machine after signing on an isolated one.
sign-and-submit-activation
Sign and submit in a single call. Convenience for the common in-process flow.
--unsigned-activation <HEX_OR_BASE64>--unsigned-activation-file <PATH>
[NAME](positional) or--wallet <NAME>: signing wallet. Defaults to the active wallet forgen wallet; required forgen client.--activation-tag <U32>: override thetagbefore signing.--no-wait: return after the validator acknowledges submission.
gen client sign-and-submit-activation is the same call without the active-wallet fallback.
get-activation
Fetch the on-chain record for an activation: status, gas used, emitted events, and the block range it occupied.
--activation-id <0x...>: activation ID (128 hex characters,0x-prefixed).
status:success,failed, orpending.start_block/end_block: the block range the activation occupied.end_blockis final oncestatusissuccessorfailed.gas_used:{ cpu, network, storage_io }, each as a decimalu128string. See Gas and fees.events: domain events emitted during execution, with payloads as base64.continuations: the IDs of any follow-up activations this one triggered.from/to: signer entity and target entity.
get-activation returns a JSON-RPC NOT_FOUND error if the ID is unknown.
Tracing
get-trace
A trace groups an activation with every continuation it produced across entities. Use it when you need the full graph an activation kicked off, not just the activation itself. See Traces for the concept.
--trace-id <0x...>: trace ID (128 hex characters,0x-prefixed).
get-activation to assemble the per-step detail.
When to use which
- Online, single machine. Use
sign-and-submit-activationdirectly, or skip the activation primitives entirely and use the wrappers in Sending transfers. - Sign offline, submit elsewhere.
build-activationon the online machine, copy the unsigned bytes to the air-gapped signer,sign-activationthere, copy the signed bytes back,submit-activationfrom anywhere on the network. - Dry-run first. Insert
simulate-activationbetweenbuild-activationandsign-activation. Cheap and signature-free, and it surfaces ABI mismatches and reverts before you commit to broadcasting. - Submit and poll. Pass
--no-waittosubmit-activationorsign-and-submit-activationwhen you want the activation ID immediately and will check the final state later withget-activation. - Resubmit an identical-looking activation. Override the tag with
--activation-tag <U32>onsign-activationorsign-and-submit-activation. This produces a different activation ID and bypasses dedup.
See also
- Activations: the developer model.
- Activation structure: byte layout, signed pre-image, and the validity window.
- Traces: the spawn-tree returned by
get-trace. - Sending transfers: high-level wrappers for the most common operations.
- Client queries: the read-side surface, including
viewfor read-only calls. - JSON-RPC API:
gen_submitActivation,gen_simulateActivation,gen_getActivation,gen_getTrace.

