3.52.0-Mainnet API Changes
API changes for runtime users
pallet-balances
Extrinsics
transfer > transferAllowDeath
/transferKeepAlive
pallet-staking
Extrinsics
If a validator has more than
maxExposurePageSize
nominators (512 in our case) thenpayoutStakers
will need to be called multiple times to repay all of the nominators. The extrinsic only pays out the top one page (512) nominators at a time.Alternatively, if you know which page your nominator stash belongs to, you can perform
payoutStakersByPage
and specify the page (0, 1, 2, etc) to pay out specific nominators that belong to that page. This can be used to avoid paying transaction fees while unintentionally paying out other accounts.
Storage Calls
erasstakers > erasStakersPaged
Use the old API for eras up to the runtime upgrade, and the new api for eras after iterasStakersClipped > erasStakersOverview
Use the old API for eras up to the runtime upgrade, and the new api for eras after itclaimedRewards
inside theledger
storage item has been deprecated and changed tolegacyClaimedRewards
. It will only reflect the rewards claimed before the runtime upgrade. Users should use the newstaking.claimedRewards
storage call to get the history of claimed paged rewards by era and validator
Storage Constants
maxNominatorRewardedPerValidator > maxExposurePageSize
pallet-nomination-pools
Added the ability to configure who can claim commission from nomination pools.
Previously, only the pool's root role was allowed to call
claim_commission
. This was limiting for use cases where pools wanted to allow third-party bots, external accounts, or anyone to claim commission on their behalf. This change allows pool operators to configure this behavior.A new
claim_permission
field has been added to theCommission
struct insideBondedPool
.If
claim_permission
is set to:Permissionless
: anyone can callclaim_commission
Account(some_account)
: only the specified account can callclaim_commission
None
: falls back to current behavior (only the pool's root can call it)
This change introduces a migration to extend existing pools with the new optional field. All existing pools will default to
None
, preserving the current behavior unless explicitly updated.To enable permissionless claiming or delegate it to another account, the pool's root role must update the
claim_permission
field accordingly. This could be done by:Extrinsics >
nominationPools
>setCommissionClaimPermission
provide
pool_id
and enableCommissionClaimPermission
option, and set it either toPermissionless
or specify anAccount
that will have the permission to withdraw commissions
No action is required unless the pools want to change this behavior.
Last updated