XCM, the Cross(X)-Consensus Message format, is a messaging protocol that enables communication between blockchain networks with different consensus models, not just Polkadot Parachains. XCM supports arbitrary message passing, asset transfer, and remote function calls, facilitating interoperability between different chains. This means that developers can use XCM to build not only Parachain-native dApps, but also true multi-chain dApps that span multiple blockchains.
With XCM, developers can create decentralized applications that execute functions across multiple chains, improving the user experience and creating new opportunities for cooperation and integration with other projects. XCM enables the development of cross-chain DEXs and other applications that require communication across multiple blockchain networks.
While XCM is only one message format supported by the Polkadot network, it offers significant benefits over other message passing systems. For example, XCMP (sometimes known as HRMP) is a highly scalable and protocol-agnostic transport system for horizontal message passing between parachains that supports all arbitrary messages. In contrast, VMP (Vertical Message Passing) involves message passing between the Relay Chain and a parachain, where all message data exists on the Relay Chain. This makes VMP less scalable than XCMP.
Readers and developers are encouraged to go over the official documentation to learn more about XCM and the protocols, before diving in on the specific usage of XCM on Astar and Shiden Networks:
- Learn Cross-chain
- XCM articles by Gavin Wood: part 1, part 2, and part 3.
- XCM format (consult while reading the articles)
- Sub0 - Getting Started with XCM
- How to make a cross-chain transfer
📄️ Using XCM
Astar Network stands as a flexible and highly interoperable decentralized application hub supporting not only WebAssembly and EVM smart contracts, but cross-VM communications (XVM), as well.
🗃️ Building with XCM
📄️ XCM Asset List
Q: Is there a way to see my DOT/SDN balance (on Astar/Shiden) on the Polkadot.js?