I use api.derive.crowdloan.ownContributions to get my contribution amount to an already active crowdloan and it works. But to get the contribution on a parachain which has already leased a slot such as ACALA (paraId:2000), the api returns 0.

Is there another API to fetch it?

That part of the code is:

const paraIds = auction.crowdloans.map((c: Crowdloan) => c.fund.paraId);
const myHexAddress = getHexEncodedAddress(api, chain, address, settings);
const myAccountsHex = [myHexAddress];
Promise.all(paraIds.map((id) => api.derive.crowdloan.ownContributions(id, myAccountsHex)))
.then((myContributions) => {
     const myContibutionsMap: Map<number, Balance> = new Map();
     myContributions.forEach((m, index) => myContibutionMap.set(paraIds[index], m[myHexAddress] as Balance));

Then for example myContributions.get(2102) on Kusama (for Pichiu) returns a correct value but myContributions.get(2000) on Polkadot (for Acala) returns 0 which is not correct!

The complete code is here.

P.S. Even Polkawallet does not show the ACALA contribution correctly.

  • are you sure? I use a similar code here and it seems to work fine: github.com/kianenigma/polkadot-portfolio/blob/master/src/fetch/…. Better if you post a code example, with expected output.
    – kianenigma
    Commented Apr 7, 2022 at 11:27
  • @kianenigma the code and a description are added. thank you.
    – Kami
    Commented Apr 7, 2022 at 12:19
  • recently @shawn-tabrizi had a twit about some changes regarding crwodloans deposit address modifiation....
    – Kami
    Commented Apr 7, 2022 at 12:19
  • I don't think this specific API should be affected, but it is possible that 0.9.18 did change something in a breaking way. Are you able to share your address and expected result?
    – Shawn Tabrizi
    Commented Apr 7, 2022 at 13:39
  • @ShawnTabrizi, sure ,a Polkadot address which had contribution to Acala and a Kusama address which has contribution to Pichu, those addresses can be found at the bottom of the page here: github.com/Nick-1979/polkadot-Js-Plus-extension#to-support thank you
    – Kami
    Commented Apr 7, 2022 at 14:13

1 Answer 1


Thanks to @shawnTabrizi, he explained to me why this issue arose, and I share it with the community that might help someone.

Acala had two options during the Crowdloan,

  1. lock your DOT and get ACA, or
  2. lock your DOT and get "ACA and LCDOT".

In the latter case, it was not the usual contribution, but kind of "Centralized Crowdloan". In fact In that case a contributor sends DOTs to an address which is not controlled by the Crowdloan pallet but Acala team (and probably they transferred all these type of contributions to crowdloan pallet related address themselves to win the auction). I contributed via Polkawallet, chose the second option, that's why I can not fetch my Acala contribution via the code.

  • 1
    Yes, this is correct. Glad we could figure it out.
    – Shawn Tabrizi
    Commented Apr 22, 2022 at 7:22

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.