xcm-tools icon indicating copy to clipboard operation
xcm-tools copied to clipboard

Support Westend, Paseo and their system chains

Open Tbaut opened this issue 9 months ago • 4 comments

Hello there, I'd like to use paraspell sdk, but I need to be able to test it first. From what I can see, there's no 'WestendPeople' or 'Westend' chains available. I'd be interrested in Westend, Paseo and their system chains.

Thanks

Tbaut avatar Mar 07 '25 18:03 Tbaut

Thanks for reaching out, @Tbaut. The Testnet implementation is due next month. We will focus exactly on Testnet Relays and system chains at first and then slowly scale with other testnet chains.

Will include this issue into PR that will bring this so you get notified about it. Thanks!

Meanwhile, there is a way to use testnet Relays and testnet System chains, as they are 1:1 copies of each other.

You can do this simply like this:

//Relay to Para
await Builder(/*pass testnet relay API here*/)
      .from(RELAY_NODE) //Polkadot
      .to(NODE, customParaId)  // Destination testnet Parachain //You can use custom ParachainID eg. .to('Basilisk', 2024) to use the basilisk testnet chain with custom ParaID
      .currency({symbol: 'DOT', amount: amount}) //Doesn't need to be changed, only amount parameter needs to be added
      .address(address) // AccountId32 or AccountKey20 address or custom Multilocation
      .build()  // Function called to build call
//Para to Relay
await Builder(/*pass testnet chain API here*/)
      .from(NODE) //Testnet system Parachain
      .to(RELAY_NODE) //Polkadot
      .currency({symbol: 'DOT', amount: amount}) //Doesn't need to be changed, only amount parameter needs to be added
      .address(address) // AccountId32 or AccountKey20 address or custom Multilocation
      .build()  // Function called to build call
//Para to Para
await Builder(/*pass testnet chain API here*/)
      .from(NODE) // Origin system testnet Parachain
      .to(NODE, customParaId)  // Destination testnet system Parachain //You can use custom ParachainID eg. .to('Basilisk', 2024) to use the basilisk testnet chain with custom ParaID
      .currency({id: currencyID, amount: amount} | {symbol: currencySymbol, amount: amount} | {symbol: Native('currencySymbol'), amount: amount} | {symbol: Foreign('currencySymbol'), amount: amount} | {symbol: ForeignAbstract('currencySymbol'), amount: amount} | {multilocation: AssetMultilocationString, amount: amount | AssetMultilocationJson, amount: amount} | {multilocation: Override('Custom Multilocation'), amount: amount} | {multiasset: {currencySelection, isFeeAsset?: true /* for example symbol: symbol or id: id, or multilocation: multilocation*/, amount: amount}}) //Needs to be 1:1 equivalent of main net asset (Has to share same symbol or id, or id must exist origin)
      .address(address) // AccountId32 or AccountKey20 address or custom Multilocation
      .build() // Function called to build call

With kind regards, Team ParaSpell

dudo50 avatar Mar 07 '25 22:03 dudo50

Thanks a lot Dudo, so if I understand correctly, say from Westend relay, to its People chain, the trick is to

  • pass a testnet api to Builder(westendApi)
  • use from('Polkadot') and not bother about it
  • pass a curstom parachain id, for the to('PeoplePolkadot', 1004) to override the identifier (here PeoplePolkadot) with 1004, the ParachainSystem.SelfParaId from the Westend people chain
  • use the right symbol, in our case it's native, {symbol: Native('WND'), amount: amount}

Is that right?

edit: Now I understand what you mean with 1:1. I saw that all the people chains have the id 1004, so I probably don't even need to override anything.

Tbaut avatar Mar 08 '25 19:03 Tbaut

@Tbaut , thanks for your questions!

pass a curstom parachain id, for the to('PeoplePolkadot', 1004) to override the identifier (here PeoplePolkadot) with 1004, the ParachainSystem.SelfParaId from the Westend people chain

This is not needed as People chain has id 1004 throughout testnets.

use the right symbol, in our case it's native, {symbol: Native('WND'), amount: amount}

Should still be DOT as it needs to be an asset that is registered on main net chain.

{symbol: Native('DOT'), amount: amount}

The rest is exactly as you wrote 🙂.

Hope this helps.

If you have any other questions, feel free to ask.

With kind regards, Team ParaSpell✨

dudo50 avatar Mar 08 '25 21:03 dudo50

Thanks I'm trying this out. I'll keep this issue open until it's implemented officially.

Tbaut avatar Mar 10 '25 11:03 Tbaut

@dudo50 hi, when will paseo XCM transfers come live and which parachains on paseo will it cover?

flipchan avatar Jun 08 '25 16:06 flipchan

Hey @flipchan ,

Thanks for pinging us regarding this issue. We will add it more priority.

Currently, we are very busy with main net upgrades, but this is definitely planned.

We are unable to give you an ETA, but we will do our best to do it as soon as possible. Hopefully, this month or at the beginning of next month.

I'll be sure to ping you then.

With kind regards, Team ParaSpell✨

dudo50 avatar Jun 08 '25 19:06 dudo50

I’m also very much looking forward to Paraspell integrating with the Paseo and Westend relay chains, as well as the parachains running on Paseo/Westend.

CocDap avatar Jun 17 '25 09:06 CocDap

Thanks @CocDap, we have now moved the task up the pipeline to be right after the task we will be working on next (One click cross-chain swaps). So Testnets should be implemented this month!

With kind regards, Team ParaSpell✨

dudo50 avatar Jun 17 '25 09:06 dudo50

Hey @Tbaut , @CocDap, @flipchan we have just released testnet support.

Here is the list of chains we now support for both Passeo and Westend

Feel free to ping us if you have any additional questions.

Thanks!

With kind regards, Team ParaSpell✨

dudo50 avatar Jul 04 '25 17:07 dudo50

Cool @dudo50

CocDap avatar Jul 04 '25 23:07 CocDap