XChainJS is a comprehensive toolkit designed to facilitate blockchain development by providing developers with a wide range of utilities, modules, and functionalities. Its purpose is to streamline the process of building decentralized applications (DApps), interacting with blockchain networks, and integrating blockchain technology into various projects.
The library aims to abstract away the complexities of blockchain development, allowing developers to focus on building innovative solutions without getting bogged down in low-level implementation details.
-
Simplify Blockchain Development: The primary purpose of the XchainJS library is to simplify blockchain development by providing developers with high-level abstractions and ready-to-use tools for common blockchain tasks.
-
Promote Interoperability: The library aims to promote interoperability by offering support for multiple blockchain protocols and standards, enabling developers to build applications that can interact seamlessly with different blockchain networks.
-
Empower Developers: By abstracting away the complexities of blockchain technology, the XchainJS library empowers developers of all skill levels to leverage the potential of blockchain in their projects, regardless of their expertise in cryptography or distributed systems.
Blockchain Interaction: The XchainJS library covers a wide range of functionalities related to interacting with blockchain networks, including transaction handling, wallet management, protocols interactions, and data querying. Protocol Support: It provides support for various blockchain protocols and standards, such as THORChain and MAYAProtocol.
Utilities and Tools: The library offers a collection of utilities and tools for common blockchain tasks, including cryptographic operations, address formatting, transaction parsing, and fetching data.
Modularity: The xchain library is modular, allowing developers to pick and choose the modules and functionalities they need for their specific use cases. This modular approach promotes flexibility and scalability in blockchain development.
Abstraction: It abstracts away the complexities of blockchain technology, providing developers with high-level interfaces and abstractions that shield them from low-level implementation details.
Protocol Agnosticism: The library is designed to be protocol-agnostic, meaning it can support multiple blockchain protocols and standards. This allows developers to build applications that are not tied to a specific blockchain network.
Community Support: The xchain library is supported by a vibrant community of developers and contributors who actively maintain and improve the library, ensuring its relevance and usability in the rapidly evolving blockchain landscape.
To show different use cases and to facilitate developers experience with XChainJS, we have created a few examples on CodeSandbox where you will be able to see and fork our examples to create yours.
Follow the examples instructions to be able to start working with the library in just a few minutes.
Examples:
- Estimate Thorchain swap
- THORChain swap
- Liquidity and savers
- Loans
- THORChain transaction status
- MAYAChain swap
More information about how to use each XChainJS package can be found on documentation
XChainJS is a library made up of different packages through which you can interact with different blockchains, data providers and protocols, or use its utility functions to simplify blockchain development.
Blockchain clients with whom you can prepare, make and broadcast transactions, estimate transactions fees and get address balances.
Name | Keystore support | Ledger support | Download |
---|---|---|---|
@xchainjs/xchain-bitcoin | ✅ | ✅ | |
@xchainjs/xchain-ethereum | ✅ | ✅ | |
@xchainjs/xchain-thorchain | ✅ | ✅ | |
@xchainjs/xchain-mayachain | ✅ | ❌ | |
@xchainjs/xchain-bitcoincash | ✅ | ✅ | |
@xchainjs/xchain-litecoin | ✅ | ✅ | |
@xchainjs/xchain-doge | ✅ | ✅ | |
@xchainjs/xchain-dash | ✅ | ✅ | |
@xchainjs/xchain-avax | ✅ | ✅ | |
@xchainjs/xchain-arbitrum | ✅ | ❌ | |
@xchainjs/xchain-bsc | ✅ | ✅ | |
@xchainjs/xchain-kujira | ✅ | ❌ | |
@xchainjs/xchain-cosmos | ✅ | ✅ | |
@xchainjs/xchain-solana | ✅ | ❌ | |
@xchainjs/xchain-binance | ✅ | ❌ | |
@xchainjs/xchain-base | ✅ | ✅ |
Utility packages
Name | Download |
---|---|
@xchainjs/xchain-util | |
@xchainjs/xchain-client | |
@xchainjs/xchain-crypto |
Data providers to retrieve blockchain data
Name | Download |
---|---|
@xchainjs/xchain-utxo-providers | |
@xchainjs/xchain-evm-providers |
Packages to interact with Thorchain
Name | Download |
---|---|
@xchainjs/xchain-thornode | |
@xchainjs/xchain-midgard | |
@xchainjs/xchain-thorchain-query | |
@xchainjs/xchain-thorchain-amm |
Packages to interact with Mayachain
Name | Download |
---|---|
@xchainjs/xchain-mayanode | |
@xchainjs/xchain-mayamidgard | |
@xchainjs/xchain-mayachain-query | |
@xchainjs/xchain-mayachain-amm |
Poweful tool to build whatever you want...
Name | Download |
---|---|
@xchainjs/xchain-wallet | |
@xchainjs/xchain-aggregator |
Tx Jammer is a script which pushes a random amount of different types of transactions to stagenet to verify new stagenet releases
What to become a XChainJS contributor? Read our CONTRIBUTING.md and be part of our contributor member. It's people like you that make XChainJS better.