# Hooks Other modules may register operations to execute when a certain event has occurred within staking. These events can be registered to execute either right `Before` or `After` the staking event (as per the hook name). The following hooks can registered with staking: - `AfterValidatorCreated(Context, ValAddress)` - called when a validator is created - `BeforeValidatorModified(Context, ValAddress)` - called when a validator's state is changed - `AfterValidatorRemoved(Context, ConsAddress, ValAddress)` - called when a validator is deleted - `AfterValidatorBonded(Context, ConsAddress, ValAddress)` - called when a validator is bonded - `AfterValidatorBeginUnbonding(Context, ConsAddress, ValAddress)` - called when a validator begins unbonding - `BeforeDelegationCreated(Context, AccAddress, ValAddress)` - called when a delegation is created - `BeforeDelegationSharesModified(Context, AccAddress, ValAddress)` - called when a delegation's shares are modified - `BeforeDelegationRemoved(Context, AccAddress, ValAddress)` - called when a delegation is removed