xchainjs / xchainjs-lib

Lightweight typescript library for cross-chain wallets. Connect with multiple blockchains via a common interface, with support for the minimum features necessary.
MIT License
112 stars 95 forks source link
binance bitcoin bitcoincash blockchain cosmos ethereum litecoin thorchain wallet
[![Contributors][contributors-shield]][contributors-url] [![Forks][forks-shield]][forks-url] [![Stargazers][stars-shield]][stars-url] [![Issues][issues-shield]][issues-url] [![MIT License][license-shield]][license-url]
xchainjs logo

XChainJS


Explore the docs »

Discord · Telegram · Report Bug · Request Feature


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.

Purpose

Scope

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.

Key Features

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.

Examples

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:

Documentation

More information about how to use each XChainJS package can be found on documentation

Packages

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.

Client packages

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  ✅ npm
@xchainjs/xchain-ethereum  ✅ npm
@xchainjs/xchain-thorchain  ✅ npm
@xchainjs/xchain-mayachain  ✅ npm
@xchainjs/xchain-bitcoincash  ✅ npm
@xchainjs/xchain-litecoin  ✅ npm
@xchainjs/xchain-doge  ✅ npm
@xchainjs/xchain-dash  ✅ npm
@xchainjs/xchain-avax  ✅ npm
@xchainjs/xchain-arbitrum  ✅ npm
@xchainjs/xchain-bsc  ✅ npm
@xchainjs/xchain-kujira  ✅ npm
@xchainjs/xchain-cosmos  ✅ npm
@xchainjs/xchain-solana  ✅ npm
@xchainjs/xchain-binance  ✅ npm
@xchainjs/xchain-base  ✅ npm

Utility packages

Utility packages

Name Download
@xchainjs/xchain-util npm
@xchainjs/xchain-client npm
@xchainjs/xchain-crypto npm

Data provider packages

Data providers to retrieve blockchain data

Name Download
@xchainjs/xchain-utxo-providers npm
@xchainjs/xchain-evm-providers npm

Protocol packages

Thorchain

Packages to interact with Thorchain

Name Download
@xchainjs/xchain-thornode npm
@xchainjs/xchain-midgard npm
@xchainjs/xchain-thorchain-query npm
@xchainjs/xchain-thorchain-amm npm

Mayachain

Packages to interact with Mayachain

Name Download
@xchainjs/xchain-mayanode npm
@xchainjs/xchain-mayamidgard npm
@xchainjs/xchain-mayachain-query npm
@xchainjs/xchain-mayachain-amm npm

Really cool packages

Poweful tool to build whatever you want...

Name Download
@xchainjs/xchain-wallet npm
@xchainjs/xchain-aggregator npm

Tools

TxJammer

Tx Jammer is a script which pushes a random amount of different types of transactions to stagenet to verify new stagenet releases

Contributing

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.