For pallet_proxy:

A module allowing accounts to give permission to other accounts to dispatch types of calls from their signed origin. The accounts to which permission is delegated may be requied to announce the action that they wish to execute some duration prior to execution happens. In this case, the target account may reject the announcement and in doing so, veto the execution.

And pallet_membership:

Allows control of membership of a set of AccountIds, useful for managing membership of of a collective. A prime member may be set.

I would like more information on the use cases of these pallets. I don't understand what's meant by "useful for managing membership of of a collective. A prime member may be set.". For pallet_proxyI understand that it's basically equivalent to a stash-controller relationship, and I was wondering more about the type of calls. What is meant by this? Can a user give specific permission regarding which call or calls they want a proxy to dispatch on their behalf? How do these work out in practice?

1 Answer 1


In practice, what pallet_membership does is allows you to create "collectives" of accounts, specify the types of actions the collective can take, and with what threshold. For instance, this is used in Polkadot and Kusama governance via the Council and Technical Committee bodies - in both cases the membership, abilities, and method of selection of members are different, but they use the same underlying mechanism to dispatch calls.

pallet_proxy gives users the ability to configure accounts which can issue transactions on behalf of another account. They can configure time delays for each proxy and set restrictions on the types of transactions that each proxy can issue. pallet_proxy also enables users to create "anonymous proxies" (which is a terrible name). Anonymous proxies are accounts that have no private key and can only act via one of their configured proxies.

  • 1. If pallet_membership creates collectives, then why not just have pallet_collective? Doesn't pallet_collective work the same way? 2. I can see that information in the docs as well, so am I correct to understand that stash-controller's controller is a kind of proxy account for stash? But I still don't see why would someone want this? What's possible with a proxy account that's not possible with my own account? Mar 24, 2022 at 8:34
  • 1
    This is likely a design decision to make the code more modular. And it's for a practical reason too: pallet_membership can be used to manage memberships in general, not necessarily only for collectives. And pallet_collective provides a totally different functionality, i.e. its used as defining some origin. Mar 24, 2022 at 11:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.