x/msdcheck enforces a minimum self-delegation floor for validator creation and proposed MinSelfDelegation updates across all transaction entry points: Cosmos SDK transactions, API routes, and the EVM staking precompile. The enforced minimum is:

Scope and semantics

  • The rule applies to the validator operator’s self-delegation only.
  • It does not depend on delegations from other users.
  • A validator can only set or raise MinSelfDelegation through create/edit flows.
  • EditValidator is not blocked solely because current validator tokens fell below the threshold after creation; the restriction applies to the proposed MinSelfDelegation value.
  • If an operator later reduces self-delegation below the minimum, for example through undelegation, the staking module’s native behavior jails the validator and removes it from the active set.
  • x/msdcheck does not block undelegate or redelegate.

Default genesis

x/msdcheck does not have an independent module genesis section in app_state. Practical implications:
  • There is no app_state.msdcheck object to configure.
  • Staking genesis (app_state.staking) still applies as usual.
  • The minimum self-delegation check is enforced by module logic, not by msdcheck-specific genesis params.

Covered scenarios

Test commands