---
title: "Chain Interactions Overview"
description: "Learn how to query data, send transactions, enable cross-chain communication, and manage accounts across the Polkadot ecosystem."
categories: "Chain Interactions"
url: "https://developers.polkadot.com/chain-interactions/"
word_count: 730
token_estimate: 1239
version_hash: "sha256:3625f84145005241593d2bc81cf37753c52c238a74b6bba01cf50ef55fb0c106"
last_updated: "2026-11-13T11:04:04+00:00"
---

# Chain Interactions

## Introduction

Chain interactions form the foundation of building applications on Polkadot. Whether you're querying on-chain data, executing transactions, enabling cross-chain communication, or managing accounts, understanding how to interact with Polkadot-based chains is essential for application developers.

This section provides comprehensive guidance on the various ways to interact with Polkadot chains, from basic queries to complex cross-chain operations. You'll learn how to:

- Query on-chain state and subscribe to blockchain events.
- Send transactions and manage their lifecycle.
- Enable interoperability between parachains through XCM.
- Manage tokens and perform token operations.
- Create and manage accounts programmatically.

Whether you're building a frontend application, a backend service, or integrating with the Polkadot ecosystem, these guides will equip you with the knowledge and tools to effectively interact with chains across the network.

## Core Interaction Patterns

### Query On-Chain Data

Accessing blockchain state is fundamental to building responsive applications. Polkadot offers several methods to query on-chain data, each suited for different use cases.

| Title | Description |
|---|---|
| [Read Chain State with SDKs](/chain-interactions/query-data/query-sdks/) | Programmatically read blockchain state using PAPI, Polkadot.js, Dedot, Python Substrate Interface, and Subxt. |
| [Read Chain State via REST API](/chain-interactions/query-data/query-rest/) | Query chain data through standardized REST endpoints for simpler integration. |
| [Call Runtime APIs](/chain-interactions/query-data/runtime-api-calls/) | Execute runtime APIs directly for specialized queries and operations. |

### Send Transactions

Transactions are the primary mechanism for modifying blockchain state. Understanding transaction construction, signing, and submission is crucial for building interactive applications.

| Title | Description |
|---|---|
| [Send a Transaction with SDKs](/chain-interactions/send-transactions/with-sdks/) | Build transactions using various SDKs with proper encoding and formatting. |
| [Calculate Transaction Fees](/chain-interactions/send-transactions/calculate-transaction-fees/) | Calculate transaction fees to ensure sufficient balance and optimize costs. |
| [Pay Transaction Fees with Different Tokens](/chain-interactions/send-transactions/pay-fees-with-different-tokens/) | Pay transaction fees with different tokens on supported chains. |

### Send Cross-Chain Transactions

Polkadot enables native cross-chain capabilities through Cross-Consensus Messaging (XCM), allowing chains to securely communicate and transfer assets across the ecosystem.

| Title | Description |
|---|---|
| [Transfer Assets into Polkadot](/chain-interactions/send-transactions/interoperability/transfer-assets-into-polkadot/) | Bridge assets from Ethereum to Polkadot using the ParaSpell XCM SDK and Snowbridge. |
| [Transfer Assets Between Parachains](/chain-interactions/send-transactions/interoperability/transfer-assets-parachains/) | Construct and send XCM messages using ParaSpell XCM SDK and Polkadot API (PAPI). |
| [Estimate XCM Transfer Fees](/chain-interactions/send-transactions/interoperability/estimate-xcm-fees/) | Estimate fees for teleporting assets between chains on the Polkadot network. |
| [Debug and Preview XCM Messages](/chain-interactions/send-transactions/interoperability/debug-and-preview-xcms/) | Replay and dry-run XCMs using Chopsticks to diagnose issues and debug cross-chain interactions. |

### Manage Tokens

Polkadot Hub provides a unified platform for managing assets across the ecosystem. Understanding token operations is essential for DeFi applications and multi-chain asset management.

| Title | Description |
|---|---|
| [Register a Local Asset](/chain-interactions/token-operations/register-local-asset/) | Register assets created in Asset Hub on Polkadot Hub. |
| [Register a Foreign Asset](/chain-interactions/token-operations/register-foreign-asset/) | Register assets created outside of Asset Hub on Polkadot Hub. |
| [Convert Assets](/chain-interactions/token-operations/convert-assets/) | Convert, swap, and manage assets on-chain using the Asset Conversion pallet. |

### Manage Accounts

Account management forms the basis of user identity and authentication in blockchain applications. Learn how to create, manage, and query accounts programmatically.

| Title | Description |
|---|---|
| [Create an Account](/chain-interactions/accounts/create-account/) | Generate accounts using various SDKs in Rust, Python, and JavaScript. |
| [Query Accounts Information](/chain-interactions/accounts/query-accounts/) | Retrieve account information including balances, nonces, and metadata. |

## Development Tools and SDKs

The Polkadot ecosystem offers a rich set of tools and libraries to facilitate chain interactions:

| Tool | Description |
|------|-------------|
| [Polkadot API (PAPI)](/reference/tools/papi/) | Modern, type-safe TypeScript library with full metadata support. |
| [Polkadot.js](/reference/tools/polkadot-js-api/) | Comprehensive JavaScript library with extensive ecosystem support. |
| [Dedot](/reference/tools/dedot/) | Lightweight TypeScript library optimized for performance. |
| [Python Substrate Interface](/reference/tools/py-substrate-interface/) | Polkadot Substrate Interface for streamlined development. |
| [Subxt](/reference/tools/subxt/) | Rust library for building robust substrate-based applications. |
| [Polkadot.js Apps](https://polkadot.js.org/apps/) | Web-based interface for exploring and interacting with chains. |

Each tool has its strengths, and choosing the right one depends on your project requirements, programming language preference, and specific use cases.
