The Multisig module implements distributed threshold cryptography for Axelar validators. It manages the full lifecycle of multi-party key generation (keygen) and signing sessions used to authorize gateway command batches on EVM chains. When a validator set needs to sign a new command batch or rotate the active gateway key, this module coordinates the distributed signing ceremony across all participating validators.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/axelarnetwork/axelar-core/llms.txt
Use this file to discover all available pages before exploring further.
Key Generation
Runs distributed keygen sessions where validators collectively produce a shared key without any single party holding the full secret.
Signing Sessions
Aggregates individual validator signatures into threshold-valid multisig proofs that can be verified on EVM chains.
Key Rotation
Supports rotating the active key for any chain, allowing the validator set composition to change while maintaining gateway operatorship.
Opt-In / Opt-Out
Validators can opt into or out of specific keygen sessions, controlling their participation in chain-specific signing duties.
Key Concepts
KeyID
AKeyID is a unique string identifier for a generated key. It is assigned at the start of a keygen session and referenced throughout signing and rotation.
KeygenSession
AKeygenSession represents an active distributed key generation ceremony:
Pending until enough validators submit public keys, then transitions to Completed.
SigningSession
ASigningSession collects individual signature shares from validators for a specific payload hash:
SigningThreshold of validators have submitted their signatures, the session completes and the aggregated signature is available for broadcast.
Key
AKey holds the aggregated public key material produced by a completed keygen session, along with the snapshot of validators that participated and their signing threshold.
KeyEpoch
KeyEpoch tracks key rotation history — each chain can have multiple historical keys, and a new epoch is created each time rotate is called:
Keygen Lifecycle
Start Keygen
A governance-authorized account starts a new keygen session for a specific key ID. The current validator snapshot is taken as the participant set.
Opt-In / Opt-Out
Validators may opt in to participate in the keygen or opt out if they choose not to.
Submit Public Keys
Each participating validator’s vald process submits its public key contribution to the session.
Signing Flow
When the EVM module callssign-commands, the Multisig module creates a new signing session:
- A
SigningSessionis created with the current active key for the target chain. - Each validator’s
valdprocess observes the session and submits its signature share. - Once the
SigningThresholdof validators have signed, the session completes. - The aggregated
CommandBatchsignature is stored and can be queried for submission to the gateway.
Signing sessions have a
SigningTimeout (default 50 blocks = 10 × 5 for 1s block time) and a SigningGracePeriod (default 3 blocks) after expiry during which late submissions are still accepted.Key Rotation
Rotate a chain to use a newly generated key. This also triggers atransferOperatorship command on the gateway:
sign-commands calls on that chain.
Module Parameters
Multisig Parameters
Multisig Parameters
Minimum fraction of validators that must submit public keys for a keygen session to complete. Default:
80/100.Minimum fraction of the keygen participants that must submit signatures for a signing session to complete. Default:
60/100.Number of blocks before a keygen session expires. Default:
50 blocks (10 × 5 for 1s block time).Number of blocks after
KeygenTimeout during which late public key submissions are still accepted. Default: 3.Number of blocks before a signing session expires. Default:
50 blocks.Number of blocks after
SigningTimeout during which late signatures are still accepted. Default: 3.Number of past key epochs retained in active state. Older epochs are archived. Default:
5.